diff --git a/.babelrc b/.babelrc index 1a24d54..0d2fcfc 100644 --- a/.babelrc +++ b/.babelrc @@ -1,5 +1,5 @@ { - "presets": ["@babel/env"], + "presets": ["@babel/env", "@babel/preset-typescript"], "plugins": [ [ "babel-plugin-inline-import", diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 7e8d9d1..0000000 --- a/.eslintrc +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": ["eslint:recommended"], - "plugins": [ - "promise" - ], - "rules": { - "no-var": 2, - "object-curly-spacing": [2, "always"], - "object-shorthand": 2, - "prefer-const": 2, - "max-len": 2 - }, - "parserOptions": { - "ecmaVersion": 2017, - "sourceType": "module" - }, - "env": { - "es6": true, - "mocha": true, - "node": true - } -} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..a04abb7 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,36 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:@typescript-eslint/recommended-requiring-type-checking', + ], + + parserOptions: { + tsconfigRootDir: __dirname, + project: ['./tsconfig.json'], + }, + + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/strict-boolean-expressions': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/no-unsafe-assignment': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-unsafe-return': 'off', + '@typescript-eslint/no-empty-interface': 'off', + 'no-var': 'error', + 'object-curly-spacing': ['error', 'always'], + 'object-shorthand': 'error', + 'prefer-const': 'error', + 'max-len': 'error', + }, + env: { + es6: true, + mocha: true, + node: true, + }, +} diff --git a/.gitignore b/.gitignore index e405e72..26555c2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dist/ .vscode .idea /Foo.sol +coverage/ diff --git a/.mocharc.js b/.mocharc.js new file mode 100644 index 0000000..faca9c0 --- /dev/null +++ b/.mocharc.js @@ -0,0 +1,3 @@ +module.exports = { + require: ["source-map-support/register"], +} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..2496fc5 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +src/lib/**/* +*.sol diff --git a/.travis.yml b/.travis.yml index 15fcdd5..d85e506 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: - - "10" + - "14" script: - npm run lint diff --git a/README.md b/README.md index d67851c..41e77ed 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ parser.visit(ast, { ## Usage in the browser -A browser-friendly version is available in `dist/solidity-parser.js` in the published version. +A browser-friendly version is available in `dist/index.iife.js` (along with its sourcemaps file) in the published version. If you are using webpack, keep in mind that minimizing your bundle will mangle function names, breaking the parser. To fix this you can just set `optimization.minimize` to `false`. @@ -98,7 +98,7 @@ This project is dependant on the [@solidity-parser/antlr](https://github.com/sol git clone --recursive ``` -If you have already cloned this repo, you can load the submodule with +If you have already cloned this repo, you can load the submodule with ``` git submodule update --init diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index fd1afdc..0000000 --- a/index.d.ts +++ /dev/null @@ -1,711 +0,0 @@ -// Type definitions for solidity-parser-antlr 0.2 -// Project: https://github.com/federicobond/solidity-parser-antlr -// Definitions by: Leonid Logvinov -// Alex Browne -// Xiao Liang -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.1 -export interface LineColumn { - line: number; - column: number; -} -export interface Location { - start: LineColumn; - end: LineColumn; -} -// Note: This should be consistent with the definition of type ASTNode -export type ASTNodeTypeString = - | 'SourceUnit' - | 'PragmaDirective' - | 'PragmaName' - | 'PragmaValue' - | 'ImportDirective' - | 'ContractDefinition' - | 'InheritanceSpecifier' - | 'StateVariableDeclaration' - | 'UsingForDeclaration' - | 'StructDefinition' - | 'ModifierDefinition' - | 'ModifierInvocation' - | 'FunctionDefinition' - | 'EventDefinition' - | 'EnumValue' - | 'EnumDefinition' - | 'VariableDeclaration' - | 'UserDefinedTypeName' - | 'Mapping' - | 'ArrayTypeName' - | 'FunctionTypeName' - | 'StorageLocation' - | 'StateMutability' - | 'Block' - | 'ExpressionStatement' - | 'IfStatement' - | 'WhileStatement' - | 'ForStatement' - | 'InlineAssemblyStatement' - | 'DoWhileStatement' - | 'ContinueStatement' - | 'Break' - | 'Continue' - | 'BreakStatement' - | 'ReturnStatement' - | 'EmitStatement' - | 'ThrowStatement' - | 'VariableDeclarationStatement' - | 'IdentifierList' - | 'ElementaryTypeName' - | 'FunctionCall' - | 'AssemblyBlock' - | 'AssemblyItem' - | 'AssemblyCall' - | 'AssemblyLocalDefinition' - | 'AssemblyAssignment' - | 'AssemblyStackAssignment' - | 'LabelDefinition' - | 'AssemblySwitch' - | 'AssemblyCase' - | 'AssemblyFunctionDefinition' - | 'AssemblyFunctionReturns' - | 'AssemblyFor' - | 'AssemblyIf' - | 'AssemblyLiteral' - | 'SubAssembly' - | 'TupleExpression' - | 'TypeNameExpression' - | 'NameValueExpression' - | 'BooleanLiteral' - | 'NumberLiteral' - | 'Identifier' - | 'BinaryOperation' - | 'UnaryOperation' - | 'Conditional' - | 'StringLiteral' - | 'HexLiteral' - | 'HexNumber' - | 'DecimalNumber' - | 'MemberAccess' - | 'IndexAccess' - | 'NameValueList'; -export interface BaseASTNode { - type: ASTNodeTypeString; - range?: [number, number]; - loc?: Location; -} -export interface SourceUnit extends BaseASTNode { - type: 'SourceUnit'; - children: ASTNode[]; // TODO: Can be more precise -} // tslint:disable-line:no-empty-interface -export interface PragmaDirective extends BaseASTNode { - type: 'PragmaDirective'; - name: string; - value: string; -} -export interface ImportDirective extends BaseASTNode { - type: 'ImportDirective'; - path: string; - unitAlias: string, - symbolAliases: Array<[string, string]>; -} -export interface ContractDefinition extends BaseASTNode { - type: 'ContractDefinition'; - name: string; - baseContracts: InheritanceSpecifier[]; - kind: string; - subNodes: ASTNode[]; // TODO: Can be more precise -} -export interface InheritanceSpecifier extends BaseASTNode { - type: 'InheritanceSpecifier'; - baseName: UserDefinedTypeName; - arguments: Expression[]; -} -export interface StateVariableDeclaration extends BaseASTNode { - type: 'StateVariableDeclaration'; - variables: StateVariableDeclarationVariable[]; - initialValue?: Expression; -} -export interface UsingForDeclaration extends BaseASTNode { - type: 'UsingForDeclaration'; - typeName: TypeName; - libraryName: string; -} -export interface StructDefinition extends BaseASTNode { - type: 'StructDefinition'; - name: string; - members: VariableDeclaration[]; -} -export interface ModifierDefinition extends BaseASTNode { - type: 'ModifierDefinition'; - name: string; - parameters: null | VariableDeclaration[]; - isVirtual: boolean; - override: null | UserDefinedTypeName[]; - body: Block; -} -export interface ModifierInvocation extends BaseASTNode { - type: 'ModifierInvocation'; - name: string; - arguments: Expression[] | null; -} -export interface FunctionDefinition extends BaseASTNode { - type: 'FunctionDefinition'; - name?: string; - parameters: VariableDeclaration[]; - modifiers: ModifierInvocation[]; - stateMutability?: 'pure' | 'constant' | 'payable' | 'view' - visibility: 'default' | 'external' | 'internal' | 'public' | 'private'; - returnParameters?: VariableDeclaration[]; - body?: Block; - override: null | UserDefinedTypeName[]; - isConstructor: boolean; - isReceiveEther: boolean; - isFallback: boolean; - isVirtual: boolean; -} -export interface EventDefinition extends BaseASTNode { - type: 'EventDefinition'; - name: string; - parameters: VariableDeclaration[]; -} -export interface EnumValue extends BaseASTNode { - type: 'EnumValue'; - name: string; -} -export interface EnumDefinition extends BaseASTNode { - type: 'EnumDefinition'; - name: string; - members: EnumValue[]; -} -export interface VariableDeclaration extends BaseASTNode { - type: 'VariableDeclaration'; - isIndexed: boolean; - isStateVar: boolean; - typeName: TypeName; - name: string; - isDeclaredConst?: boolean; - storageLocation?: string; - expression?: Expression; - visibility?: 'public' | 'private' | 'internal' | 'default'; -} -export interface StateVariableDeclarationVariable extends VariableDeclaration { - override: null | UserDefinedTypeName[]; - isImmutable: boolean; -} -export interface UserDefinedTypeName extends BaseASTNode { - type: 'UserDefinedTypeName'; - namePath: string; -} -export interface ArrayTypeName extends BaseASTNode { - type: 'ArrayTypeName'; - baseTypeName: TypeName; - length?: Expression; -} -export interface Mapping extends BaseASTNode { - type: 'Mapping'; - keyType: ElementaryTypeName; - valueType: TypeName; -} -export interface FunctionTypeName extends BaseASTNode { - type: 'FunctionTypeName'; - parameterTypes: TypeName[]; - returnTypes: TypeName[]; - visibility: string; - stateMutability: string; -} -export interface Block extends BaseASTNode { - type: 'Block'; - statements: Statement[] -} -export interface ExpressionStatement extends BaseASTNode { - type: 'ExpressionStatement'; - expression: Expression; -} -export interface IfStatement extends BaseASTNode { - type: 'IfStatement'; - condition: Expression; - trueBody: Statement; - falseBody?: Statement; -} -export interface WhileStatement extends BaseASTNode { - type: 'WhileStatement'; - body: Statement; -} -export interface ForStatement extends BaseASTNode { - type: 'ForStatement'; - initExpression?: SimpleStatement; - conditionExpression?: Expression; - loopExpression?: ExpressionStatement; - body: Statement; -} -export interface InlineAssemblyStatement extends BaseASTNode { - type: 'InlineAssemblyStatement'; - language: string; - body: AssemblyBlock; -} -export interface DoWhileStatement extends BaseASTNode { - type: 'DoWhileStatement'; - condition: Expression; - body: Statement; -} -export interface ContinueStatement extends BaseASTNode { - type: 'ContinueStatement'; -} -export interface Break extends BaseASTNode { - type: 'Break'; -} -export interface Continue extends BaseASTNode { - type: 'Continue'; -} -export interface BreakStatement extends BaseASTNode { - type: 'BreakStatement'; -} -export interface ReturnStatement extends BaseASTNode { - type: 'ReturnStatement'; - expression: Expression | null; -} -export interface EmitStatement extends BaseASTNode { - type: 'EmitStatement'; - eventCall: FunctionCall; -} -export interface ThrowStatement extends BaseASTNode { - type: 'ThrowStatement'; -} -export interface VariableDeclarationStatement extends BaseASTNode { - type: 'VariableDeclarationStatement'; - variables: ASTNode[]; - initialValue?: Expression; -} -export interface ElementaryTypeName extends BaseASTNode { - type: 'ElementaryTypeName'; - name: string; -} -export interface FunctionCall extends BaseASTNode { - type: 'FunctionCall'; - expression: Expression; - arguments: Expression[]; - names: string[]; -} -export interface AssemblyBlock extends BaseASTNode { - type: 'AssemblyBlock'; - operations: AssemblyItem[] -} -export interface AssemblyCall extends BaseASTNode { - type: 'AssemblyCall'; - functionName: string, - arguments: AssemblyExpression[]; -} -export interface AssemblyLocalDefinition extends BaseASTNode { - type: 'AssemblyLocalDefinition'; -} -export interface AssemblyAssignment extends BaseASTNode { - type: 'AssemblyAssignment'; - expression: AssemblyExpression; - names: Identifier[] -} -export interface AssemblyStackAssignment extends BaseASTNode { - type: 'AssemblyStackAssignment'; -} -export interface LabelDefinition extends BaseASTNode { - type: 'LabelDefinition'; -} -export interface AssemblySwitch extends BaseASTNode { - type: 'AssemblySwitch'; -} -export interface AssemblyCase extends BaseASTNode { - type: 'AssemblyCase'; -} -export interface AssemblyFunctionDefinition extends BaseASTNode { - type: 'AssemblyFunctionDefinition'; -} -export interface AssemblyFunctionReturns extends BaseASTNode { - type: 'AssemblyFunctionReturns'; -} -export interface AssemblyFor extends BaseASTNode { - type: 'AssemblyFor'; -} -export interface AssemblyIf extends BaseASTNode { - type: 'AssemblyIf'; -} -export interface AssemblyLiteral extends BaseASTNode { - type: 'AssemblyLiteral'; -} -export interface SubAssembly extends BaseASTNode { - type: 'SubAssembly'; -} -export interface TupleExpression extends BaseASTNode { - type: 'TupleExpression'; - components: Expression[]; - isArray: boolean; -} -export interface TypeNameExpression extends BaseASTNode { - type: 'TypeNameExpression'; - typeName: ElementaryTypeName | UserDefinedTypeName; -} -export interface NameValueExpression extends BaseASTNode { - type: 'NameValueExpression'; - expression: Expression; - arguments: {[name: string]: Expression}; -} -export interface NumberLiteral extends BaseASTNode { - type: 'NumberLiteral'; - number: string; - subdenomination: - | null - | 'wei' - | 'szabo' - | 'finney' - | 'ether' - | 'seconds' - | 'minutes' - | 'hours' - | 'days' - | 'weeks' - | 'years'; -} -export interface BooleanLiteral extends BaseASTNode { - type: 'BooleanLiteral'; - value: boolean; -} -export interface HexLiteral extends BaseASTNode { - type: 'HexLiteral'; - value: string; - parts: string[]; -} -export interface StringLiteral extends BaseASTNode { - type: 'StringLiteral'; - value: string; - parts: string[]; -} -export interface Identifier extends BaseASTNode { - type: 'Identifier'; - name: string; -} -export type BinOp = - | '+' - | '-' - | '*' - | '/' - | '**' - | '%' - | '<<' - | '>>' - | '&&' - | '||' - | '&' - | '|' - | '^' - | '<' - | '>' - | '<=' - | '>=' - | '==' - | '!=' - | '=' - | '|=' - | '^=' - | '&=' - | '<<=' - | '>>=' - | '+=' - | '-=' - | '*=' - | '/=' - | '%='; -export type UnaryOp = - | '-' - | '+' - | '++' - | '~' - | 'after' - | 'delete' - | '!'; -export interface BinaryOperation extends BaseASTNode { - type: 'BinaryOperation'; - left: Expression; - right: Expression; - operator: BinOp; -} -export interface UnaryOperation extends BaseASTNode { - type: 'UnaryOperation'; - operator: UnaryOp; - subExpression: Expression; - isPrefix: boolean; -} -export interface Conditional extends BaseASTNode { - type: 'Conditional'; - trueExpression: ASTNode; - falseExpression: ASTNode; -} -export interface IndexAccess extends BaseASTNode { - type: 'IndexAccess'; - base: Expression; - index: Expression; -} -export interface MemberAccess extends BaseASTNode { - type: 'MemberAccess'; - expression: Expression; - memberName: string; -} -export interface HexNumber extends BaseASTNode { - type: 'HexNumber'; - value: string; -} -export interface DecimalNumber extends BaseASTNode { - type: 'DecimalNumber'; - value: string; -} -export interface NameValueList extends BaseASTNode { - type: 'NameValueList'; - names: string[]; - args: Expression[]; -} -export type ASTNode = - | SourceUnit - | PragmaDirective - | ImportDirective - | ContractDefinition - | InheritanceSpecifier - | StateVariableDeclaration - | UsingForDeclaration - | StructDefinition - | ModifierDefinition - | ModifierInvocation - | FunctionDefinition - | EventDefinition - | EnumValue - | EnumDefinition - | VariableDeclaration - | TypeName - | UserDefinedTypeName - | Mapping - | FunctionTypeName - | Block - | ExpressionStatement - | IfStatement - | WhileStatement - | ForStatement - | InlineAssemblyStatement - | DoWhileStatement - | ContinueStatement - | BreakStatement - | ReturnStatement - | EmitStatement - | ThrowStatement - | VariableDeclarationStatement - | ElementaryTypeName - | AssemblyBlock - | AssemblyCall - | AssemblyLocalDefinition - | AssemblyAssignment - | AssemblyStackAssignment - | LabelDefinition - | AssemblySwitch - | AssemblyCase - | AssemblyFunctionDefinition - | AssemblyFunctionReturns - | AssemblyFor - | AssemblyIf - | AssemblyLiteral - | SubAssembly - | TupleExpression - | TypeNameExpression - | BinaryOperation - | Conditional - | IndexAccess - | AssemblyItem - | Expression; -export type AssemblyItem = - | Identifier - | AssemblyBlock - | AssemblyExpression - | AssemblyLocalDefinition - | AssemblyAssignment - | AssemblyStackAssignment - | LabelDefinition - | AssemblySwitch - | AssemblyFunctionDefinition - | AssemblyFor - | AssemblyIf - | Break - | Continue - | SubAssembly - | NumberLiteral - | StringLiteral - | HexNumber - | HexLiteral - | DecimalNumber; -export type AssemblyExpression = - | AssemblyCall - | AssemblyLiteral -export type Expression = - | IndexAccess - | TupleExpression - | BinaryOperation - | Conditional - | MemberAccess - | FunctionCall - | UnaryOperation - | PrimaryExpression; -export type PrimaryExpression = - | BooleanLiteral - | NumberLiteral - | Identifier - | TupleExpression - | TypeNameExpression; -export type SimpleStatement = - | VariableDeclarationStatement - | ExpressionStatement; -export type TypeName = - | ElementaryTypeName - | UserDefinedTypeName - | Mapping - | ArrayTypeName - | FunctionTypeName; -export type Statement = - | IfStatement - | WhileStatement - | ForStatement - | Block - | InlineAssemblyStatement - | DoWhileStatement - | ContinueStatement - | BreakStatement - | ReturnStatement - | EmitStatement - | ThrowStatement - | SimpleStatement - | VariableDeclarationStatement; -export interface Visitor { - SourceUnit?: (node: SourceUnit) => any; - PragmaDirective?: (node: PragmaDirective) => any; - ImportDirective?: (node: ImportDirective) => any; - ContractDefinition?: (node: ContractDefinition) => any; - InheritanceSpecifier?: (node: InheritanceSpecifier) => any; - StateVariableDeclaration?: (node: StateVariableDeclaration) => any; - UsingForDeclaration?: (node: UsingForDeclaration) => any; - StructDefinition?: (node: StructDefinition) => any; - ModifierDefinition?: (node: ModifierDefinition) => any; - ModifierInvocation?: (node: ModifierInvocation) => any; - FunctionDefinition?: (node: FunctionDefinition) => any; - EventDefinition?: (node: EventDefinition) => any; - EnumValue?: (node: EnumValue) => any; - EnumDefinition?: (node: EnumDefinition) => any; - VariableDeclaration?: (node: VariableDeclaration) => any; - UserDefinedTypeName?: (node: UserDefinedTypeName) => any; - Mapping?: (node: Mapping) => any; - ArrayTypeName?: (node: ArrayTypeName) => any; - FunctionTypeName?: (node: FunctionTypeName) => any; - Block?: (node: Block) => any; - ExpressionStatement?: (node: ExpressionStatement) => any; - IfStatement?: (node: IfStatement) => any; - WhileStatement?: (node: WhileStatement) => any; - ForStatement?: (node: ForStatement) => any; - InlineAssemblyStatement?: (node: InlineAssemblyStatement) => any; - DoWhileStatement?: (node: DoWhileStatement) => any; - ContinueStatement?: (node: ContinueStatement) => any; - BreakStatement?: (node: BreakStatement) => any; - ReturnStatement?: (node: ReturnStatement) => any; - EmitStatement?: (node: EmitStatement) => any; - ThrowStatement?: (node: ThrowStatement) => any; - VariableDeclarationStatement?: (node: VariableDeclarationStatement) => any; - ElementaryTypeName?: (node: ElementaryTypeName) => any; - AssemblyBlock?: (node: AssemblyBlock) => any; - AssemblyCall?: (node: AssemblyCall) => any; - AssemblyLocalDefinition?: (node: AssemblyLocalDefinition) => any; - AssemblyAssignment?: (node: AssemblyAssignment) => any; - AssemblyStackAssignment?: (node: AssemblyStackAssignment) => any; - LabelDefinition?: (node: LabelDefinition) => any; - AssemblySwitch?: (node: AssemblySwitch) => any; - AssemblyCase?: (node: AssemblyCase) => any; - AssemblyFunctionDefinition?: (node: AssemblyFunctionDefinition) => any; - AssemblyFunctionReturns?: (node: AssemblyFunctionReturns) => any; - AssemblyFor?: (node: AssemblyFor) => any; - AssemblyIf?: (node: AssemblyIf) => any; - AssemblyLiteral?: (node: AssemblyLiteral) => any; - SubAssembly?: (node: SubAssembly) => any; - TupleExpression?: (node: TupleExpression) => any; - TypeNameExpression?: (node: TypeNameExpression) => any; - NumberLiteral?: (node: NumberLiteral) => any; - BooleanLiteral?: (node: BooleanLiteral) => any; - Identifier?: (node: Identifier) => any; - BinaryOperation?: (node: BinaryOperation) => any; - Conditional?: (node: Conditional) => any; - IndexAccess?: (node: IndexAccess) => any; - MemberAccess?: (node: MemberAccess) => any; - Break?: (node: Break) => any; - HexNumber?: (node: HexNumber) => any; - DecimalNumber?: (node: DecimalNumber) => any; - Continue?: (node: Continue) => any; - // Start of :exit handler for each type. Must be consistent with above - 'SourceUnit:exit'?: (node: SourceUnit) => any; - 'PragmaDirective:exit'?: (node: PragmaDirective) => any; - 'ImportDirective:exit'?: (node: ImportDirective) => any; - 'ContractDefinition:exit'?: (node: ContractDefinition) => any; - 'InheritanceSpecifier:exit'?: (node: InheritanceSpecifier) => any; - 'StateVariableDeclaration:exit'?: (node: StateVariableDeclaration) => any; - 'UsingForDeclaration:exit'?: (node: UsingForDeclaration) => any; - 'StructDefinition:exit'?: (node: StructDefinition) => any; - 'ModifierDefinition:exit'?: (node: ModifierDefinition) => any; - 'ModifierInvocation:exit'?: (node: ModifierInvocation) => any; - 'FunctionDefinition:exit'?: (node: FunctionDefinition) => any; - 'EventDefinition:exit'?: (node: EventDefinition) => any; - 'EnumValue:exit'?: (node: EnumValue) => any; - 'EnumDefinition:exit'?: (node: EnumDefinition) => any; - 'VariableDeclaration:exit'?: (node: VariableDeclaration) => any; - 'UserDefinedTypeName:exit'?: (node: UserDefinedTypeName) => any; - 'Mapping:exit'?: (node: Mapping) => any; - 'ArrayTypeName:exit'?: (node: ArrayTypeName) => any; - 'FunctionTypeName:exit'?: (node: FunctionTypeName) => any; - 'Block:exit'?: (node: Block) => any; - 'ExpressionStatement:exit'?: (node: ExpressionStatement) => any; - 'IfStatement:exit'?: (node: IfStatement) => any; - 'WhileStatement:exit'?: (node: WhileStatement) => any; - 'ForStatement:exit'?: (node: ForStatement) => any; - 'InlineAssemblyStatement:exit'?: (node: InlineAssemblyStatement) => any; - 'DoWhileStatement:exit'?: (node: DoWhileStatement) => any; - 'ContinueStatement:exit'?: (node: ContinueStatement) => any; - 'BreakStatement:exit'?: (node: BreakStatement) => any; - 'ReturnStatement:exit'?: (node: ReturnStatement) => any; - 'EmitStatement:exit'?: (node: EmitStatement) => any; - 'ThrowStatement:exit'?: (node: ThrowStatement) => any; - 'VariableDeclarationStatement:exit'?: (node: VariableDeclarationStatement) => any; - 'ElementaryTypeName:exit'?: (node: ElementaryTypeName) => any; - 'AssemblyBlock:exit'?: (node: AssemblyBlock) => any; - 'AssemblyCall:exit'?: (node: AssemblyCall) => any; - 'AssemblyLocalDefinition:exit'?: (node: AssemblyLocalDefinition) => any; - 'AssemblyAssignment:exit'?: (node: AssemblyAssignment) => any; - 'AssemblyStackAssignment:exit'?: (node: AssemblyStackAssignment) => any; - 'LabelDefinition:exit'?: (node: LabelDefinition) => any; - 'AssemblySwitch:exit'?: (node: AssemblySwitch) => any; - 'AssemblyCase:exit'?: (node: AssemblyCase) => any; - 'AssemblyFunctionDefinition:exit'?: ( - node: AssemblyFunctionDefinition - ) => any; - 'AssemblyFunctionReturns:exit'?: (node: AssemblyFunctionReturns) => any; - 'AssemblyFor:exit'?: (node: AssemblyFor) => any; - 'AssemblyIf:exit'?: (node: AssemblyIf) => any; - 'AssemblyLiteral:exit'?: (node: AssemblyLiteral) => any; - 'SubAssembly:exit'?: (node: SubAssembly) => any; - 'TupleExpression:exit'?: (node: TupleExpression) => any; - 'TypeNameExpression:exit'?: ( - node: TypeNameExpression - ) => any; - 'NumberLiteral:exit'?: (node: NumberLiteral) => any; - 'BooleanLiteral:exit'?: (node: BooleanLiteral) => any; - 'Identifier:exit'?: (node: Identifier) => any; - 'BinaryOperation:exit'?: (node: BinaryOperation) => any; - 'Conditional:exit'?: (node: Conditional) => any; - 'IndexAccess:exit'?: (node: IndexAccess) => any; - 'MemberAccess:exit'?: (node: MemberAccess) => any; - 'HexNumber:exit'?: (node: HexNumber) => any; - 'DecimalNumber:exit'?: (node: DecimalNumber) => any; - 'Break:exit'?: (node: Break) => any; - 'Continue:exit'?: (node: Continue) => any; -} -export interface ParserOpts { - tolerant?: boolean; - range?: boolean; - loc?: boolean; -} -export function parse(sourceCode: string, parserOpts: ParserOpts): ASTNode; -export function visit(ast: ASTNode, visitor: Visitor): void; diff --git a/package.json b/package.json index bc9fa00..47ce6d0 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,23 @@ { "name": "@solidity-parser/parser", - "version": "0.9.1", + "version": "0.10.0", "description": "A Solidity parser built from a robust ANTLR 4 grammar", - "main": "dist/index.js", - "types": "./index.d.ts", + "main": "dist/index.cjs.js", + "browser": "dist/index.iife.js", + "files": [ + "dist/**/*", + "src/**/*" + ], + "types": "dist/index.d.ts", "scripts": { "antlr": "sh scripts/antlr.sh", - "build": "rm -rf dist && babel --out-dir=dist src --copy-files", - "build:browser": "webpack", - "prepare": "yarn build && yarn build:browser", - "prettier": "find src -name *.js | egrep -v '^src/(lib|antlr4)/' | xargs prettier --no-semi --single-quote --write", + "build": "rollup -c rollup.config.js", + "generate-types": "tsc", + "prettier": "prettier --write 'src/**/*' 'test/**/*'", + "prepack": "npm run build && npm run generate-types", "eslint": "eslint src", - "lint": "eslint src && tslint-config-prettier-check ./tslint.json", - "test": "nyc mocha --require @babel/register", - "tslint": "tslint-config-prettier-check ./tslint.json" + "lint": "eslint src", + "test": "npm run build && nyc mocha" }, "authors": [ "Franco Victorio", @@ -31,33 +35,36 @@ "@babel/cli": "^7.12.1", "@babel/core": "^7.9.0", "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-transform-typescript": "^7.12.1", "@babel/preset-env": "^7.12.1", + "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", + "@rollup/plugin-babel": "^5.2.2", + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-node-resolve": "^11.0.0", + "@typescript-eslint/eslint-plugin": "^4.9.0", + "@typescript-eslint/parser": "^4.9.0", + "antlr4": "^4.9.0", "babel-loader": "^8.1.0", "babel-plugin-inline-import": "^3.0.0", "chai": "^4.2.0", - "eslint": "^6.2.2", + "eslint": "^7.15.0", "eslint-plugin-import": "^2.18.2", "eslint-plugin-node": "^9.2.0", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-standard": "^4.0.1", "mocha": "^6.2.0", "nyc": "^14.1.1", - "prettier": "^1.18.2", + "prettier": "^2.2.1", "raw-loader": "^4.0.0", - "tslint": "5.19.0", - "tslint-config-prettier": "^1.18.0", - "typescript": "3.6.2", - "webpack": "^4.42.1", - "webpack-cli": "^3.3.11", + "rollup": "^2.34.2", + "rollup-plugin-node-polyfills": "^0.2.1", + "typescript": "^4.1.2", "yarn": "^1.17.3" }, "nyc": { "include": [ "src/*.js" ] - }, - "dependencies": { - "antlr4": "^4.8.0" } } diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..e658ec3 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,33 @@ +import babel from '@rollup/plugin-babel' +import commonjs from '@rollup/plugin-commonjs' +import resolve from '@rollup/plugin-node-resolve' +import pkg from './package.json'; +import nodePolyfills from 'rollup-plugin-node-polyfills'; + +const extensions = [ + '.js', '.ts', +]; + +export default { + input: './src/index.ts', + output: [{ + file: pkg.main, + format: 'cjs', + sourcemap: true + }, { + file: pkg.browser, + format: 'iife', + name: 'SolidityParser', + sourcemap: true, + }], + plugins: [ + nodePolyfills(), + resolve({ extensions }), + commonjs(), + babel({ + babelHelpers: 'bundled', + extensions, + include: 'src/**/*' + }), + ] +} diff --git a/src/ASTBuilder.js b/src/ASTBuilder.ts similarity index 60% rename from src/ASTBuilder.js rename to src/ASTBuilder.ts index bf3fddd..ba29655 100644 --- a/src/ASTBuilder.js +++ b/src/ASTBuilder.ts @@ -1,13 +1,18 @@ -const antlr4 = require('antlr4') +import antlr4 from 'antlr4' +import { ParseOptions } from './types' +import * as ASTTypes from './ast-types' +import { BaseASTNode } from './ast-types' -function toText(ctx) { +type Ctx = any + +function toText(ctx: Ctx | null) { if (ctx !== null) { return ctx.getText() } return null } -function mapCommasToNulls(children) { +function mapCommasToNulls(children: Ctx[]) { if (children.length === 0) { return [] } @@ -38,7 +43,7 @@ function mapCommasToNulls(children) { return values } -function isBinOp(op) { +function isBinOp(op: string): boolean { const binOps = [ '+', '-', @@ -69,87 +74,90 @@ function isBinOp(op) { '-=', '*=', '/=', - '%=' + '%=', ] return binOps.includes(op) } const transformAST = { - SourceUnit(ctx) { + SourceUnit(ctx: Ctx): ASTTypes.SourceUnit { // last element is EOF terminal node return { - children: this.visit(ctx.children.slice(0, -1)) + type: 'SourceUnit', + children: (this as any).visit(ctx.children.slice(0, -1)), } }, - EnumDefinition(ctx) { + EnumDefinition(ctx: Ctx): ASTTypes.EnumDefinition { return { + type: 'EnumDefinition', name: toText(ctx.identifier()), - members: this.visit(ctx.enumValue()) + members: (this as any).visit(ctx.enumValue()), } }, - EnumValue(ctx) { + EnumValue(ctx: Ctx) { return { - name: toText(ctx.identifier()) + name: toText(ctx.identifier()), } }, - UsingForDeclaration(ctx) { + UsingForDeclaration(ctx: Ctx) { let typeName = null if (toText(ctx.getChild(3)) !== '*') { - typeName = this.visit(ctx.getChild(3)) + typeName = (this as any).visit(ctx.getChild(3)) } return { typeName, - libraryName: toText(ctx.identifier()) + libraryName: toText(ctx.identifier()), } }, - PragmaDirective(ctx) { + PragmaDirective(ctx: Ctx) { // this converts something like >= 0.5.0 <0.7.0 // in >=0.5.0 <0.7.0 const value = ctx .pragmaValue() - .children[0].children.map(x => toText(x)) + .children[0].children.map((x: any) => toText(x)) .join(' ') return { name: toText(ctx.pragmaName()), - value + value, } }, - ContractDefinition(ctx) { + ContractDefinition(ctx: Ctx) { const name = toText(ctx.identifier()) const kind = toText(ctx.getChild(0)) - this._currentContract = name + ;(this as any)._currentContract = name return { name, - baseContracts: this.visit(ctx.inheritanceSpecifier()), - subNodes: this.visit(ctx.contractPart()), - kind + baseContracts: (this as any).visit(ctx.inheritanceSpecifier()), + subNodes: (this as any).visit(ctx.contractPart()), + kind, } }, - InheritanceSpecifier(ctx) { + InheritanceSpecifier(ctx: Ctx) { const exprList = ctx.expressionList() - const args = exprList != null ? this.visit(exprList.expression()) : [] + const args = + exprList != null ? (this as any).visit(exprList.expression()) : [] return { - baseName: this.visit(ctx.userDefinedTypeName()), - arguments: args + baseName: (this as any).visit(ctx.userDefinedTypeName()), + arguments: args, } }, - ContractPart(ctx) { - return this.visit(ctx.children[0]) + ContractPart(ctx: Ctx) { + return (this as any).visit(ctx.children[0]) }, - FunctionDefinition(ctx) { + FunctionDefinition(ctx: Ctx) { let isConstructor = false let isFallback = false let isReceiveEther = false @@ -161,13 +169,13 @@ const transformAST = { let block = null if (ctx.block()) { - block = this.visit(ctx.block()) + block = (this as any).visit(ctx.block()) } const modifiers = ctx .modifierList() .modifierInvocation() - .map(mod => this.visit(mod)) + .map((mod: any) => (this as any).visit(mod)) let stateMutability = null if (ctx.modifierList().stateMutability(0)) { @@ -177,14 +185,11 @@ const transformAST = { // see what type of function we're dealing with switch (toText(ctx.functionDescriptor().getChild(0))) { case 'constructor': - parameters = this.visit(ctx.parameterList()) + parameters = (this as any).visit(ctx.parameterList()) if ( ctx.returnParameters() && - ctx - .returnParameters() - .parameterList() - .parameter().length > 0 + ctx.returnParameters().parameterList().parameter().length > 0 ) { throw new Error('Constructors cannot have return parameters') } @@ -207,10 +212,7 @@ const transformAST = { if ( ctx.returnParameters() && - ctx - .returnParameters() - .parameterList() - .parameter().length > 0 + ctx.returnParameters().parameterList().parameter().length > 0 ) { throw new Error('Fallback functions cannot have return parameters') } @@ -230,10 +232,7 @@ const transformAST = { if ( ctx.returnParameters() && - ctx - .returnParameters() - .parameterList() - .parameter().length > 0 + ctx.returnParameters().parameterList().parameter().length > 0 ) { throw new Error( 'Receive Ether functions cannot have return parameters' @@ -251,10 +250,7 @@ const transformAST = { // error out on incorrect function payability if ( !ctx.modifierList().stateMutability(0) || - !ctx - .modifierList() - .stateMutability(0) - .PayableKeyword(0) + !ctx.modifierList().stateMutability(0).PayableKeyword(0) ) { throw new Error( 'Receive Ether functions have to be declared "payable"' @@ -264,12 +260,13 @@ const transformAST = { isReceiveEther = true break case 'function': - name = ctx.functionDescriptor().identifier(0) - ? toText(ctx.functionDescriptor().identifier(0)) - : '' + name = + ctx.functionDescriptor().identifier(0) + ? toText(ctx.functionDescriptor().identifier(0)) + : '' - parameters = this.visit(ctx.parameterList()) - returnParameters = this.visit(ctx.returnParameters()) + parameters = (this as any).visit(ctx.parameterList()) + returnParameters = (this as any).visit(ctx.returnParameters()) // parse function visibility if (ctx.modifierList().ExternalKeyword(0)) { @@ -287,7 +284,7 @@ const transformAST = { isVirtual = true } - isConstructor = name === this._currentContract + isConstructor = name === (this as any)._currentContract isFallback = name === '' break } @@ -297,7 +294,7 @@ const transformAST = { if (overrideSpecifier.length === 0) { override = null } else { - override = this.visit(overrideSpecifier[0].userDefinedTypeName()) + override = (this as any).visit(overrideSpecifier[0].userDefinedTypeName()) } return { @@ -312,16 +309,16 @@ const transformAST = { isReceiveEther, isFallback, isVirtual, - stateMutability + stateMutability, } }, - ModifierInvocation(ctx) { + ModifierInvocation(ctx: Ctx) { const exprList = ctx.expressionList() let args if (exprList != null) { - args = this.visit(exprList.expression()) + args = (this as any).visit(exprList.expression()) } else if (ctx.children.length > 1) { args = [] } else { @@ -330,55 +327,55 @@ const transformAST = { return { name: toText(ctx.identifier()), - arguments: args + arguments: args, } }, - TypeNameExpression(ctx) { + TypeNameExpression(ctx: Ctx) { let typeName = ctx.elementaryTypeName() - if (typeName === null) { + if (!typeName) { typeName = ctx.userDefinedTypeName() } return { - typeName: this.visit(typeName) + typeName: (this as any).visit(typeName), } }, - TypeName(ctx) { + TypeName(ctx: Ctx) { if (ctx.children.length > 2) { let length = null if (ctx.children.length === 4) { - length = this.visit(ctx.getChild(2)) + length = (this as any).visit(ctx.getChild(2)) } return { type: 'ArrayTypeName', - baseTypeName: this.visit(ctx.typeName()), - length + baseTypeName: (this as any).visit(ctx.typeName()), + length, } } if (ctx.children.length === 2) { return { type: 'ElementaryTypeName', name: toText(ctx.getChild(0)), - stateMutability: toText(ctx.getChild(1)) + stateMutability: toText(ctx.getChild(1)), } } - return this.visit(ctx.getChild(0)) + return (this as any).visit(ctx.getChild(0)) }, - FunctionTypeName(ctx) { + FunctionTypeName(ctx: Ctx) { const parameterTypes = ctx .functionTypeParameterList(0) .functionTypeParameter() - .map(typeCtx => this.visit(typeCtx)) + .map((typeCtx: any) => (this as any).visit(typeCtx)) let returnTypes = [] if (ctx.functionTypeParameterList(1)) { returnTypes = ctx .functionTypeParameterList(1) .functionTypeParameter() - .map(typeCtx => this.visit(typeCtx)) + .map((typeCtx: any) => (this as any).visit(typeCtx)) } let visibility = 'default' @@ -397,26 +394,26 @@ const transformAST = { parameterTypes, returnTypes, visibility, - stateMutability + stateMutability, } }, - ReturnStatement(ctx) { + ReturnStatement(ctx: Ctx) { let expression = null if (ctx.expression()) { - expression = this.visit(ctx.expression()) + expression = (this as any).visit(ctx.expression()) } return { expression } }, - EmitStatement(ctx) { + EmitStatement(ctx: Ctx) { return { - eventCall: this.visit(ctx.functionCall()) + eventCall: (this as any).visit(ctx.functionCall()), } }, - FunctionCall(ctx) { + FunctionCall(ctx: Ctx) { let args = [] const names = [] @@ -425,44 +422,44 @@ const transformAST = { args = ctxArgs .expressionList() .expression() - .map(exprCtx => this.visit(exprCtx)) + .map((exprCtx: any) => (this as any).visit(exprCtx)) } else if (ctxArgs.nameValueList()) { for (const nameValue of ctxArgs.nameValueList().nameValue()) { - args.push(this.visit(nameValue.expression())) + args.push((this as any).visit(nameValue.expression())) names.push(toText(nameValue.identifier())) } } return { - expression: this.visit(ctx.expression()), + expression: (this as any).visit(ctx.expression()), arguments: args, - names + names, } }, - StructDefinition(ctx) { + StructDefinition(ctx: Ctx) { return { name: toText(ctx.identifier()), - members: this.visit(ctx.variableDeclaration()) + members: (this as any).visit(ctx.variableDeclaration()), } }, - VariableDeclaration(ctx) { + VariableDeclaration(ctx: Ctx) { let storageLocation = null if (ctx.storageLocation()) { storageLocation = toText(ctx.storageLocation()) } return { - typeName: this.visit(ctx.typeName()), + typeName: (this as any).visit(ctx.typeName()), name: toText(ctx.identifier()), storageLocation, isStateVar: false, - isIndexed: false + isIndexed: false, } }, - EventParameter(ctx) { + EventParameter(ctx: Ctx) { let storageLocation = null if (ctx.storageLocation(0)) { storageLocation = toText(ctx.storageLocation(0)) @@ -470,15 +467,15 @@ const transformAST = { return { type: 'VariableDeclaration', - typeName: this.visit(ctx.typeName()), + typeName: (this as any).visit(ctx.typeName()), name: toText(ctx.identifier()), storageLocation, isStateVar: false, - isIndexed: !!ctx.IndexedKeyword(0) + isIndexed: !!ctx.IndexedKeyword(0), } }, - FunctionTypeParameter(ctx) { + FunctionTypeParameter(ctx: Ctx) { let storageLocation = null if (ctx.storageLocation()) { storageLocation = toText(ctx.storageLocation()) @@ -486,63 +483,65 @@ const transformAST = { return { type: 'VariableDeclaration', - typeName: this.visit(ctx.typeName()), + typeName: (this as any).visit(ctx.typeName()), name: null, storageLocation, isStateVar: false, - isIndexed: false + isIndexed: false, } }, - WhileStatement(ctx) { + WhileStatement(ctx: Ctx) { return { - condition: this.visit(ctx.expression()), - body: this.visit(ctx.statement()) + condition: (this as any).visit(ctx.expression()), + body: (this as any).visit(ctx.statement()), } }, - DoWhileStatement(ctx) { + DoWhileStatement(ctx: Ctx) { return { - condition: this.visit(ctx.expression()), - body: this.visit(ctx.statement()) + condition: (this as any).visit(ctx.expression()), + body: (this as any).visit(ctx.statement()), } }, - IfStatement(ctx) { - const trueBody = this.visit(ctx.statement(0)) + IfStatement(ctx: Ctx) { + const trueBody = (this as any).visit(ctx.statement(0)) let falseBody = null if (ctx.statement().length > 1) { - falseBody = this.visit(ctx.statement(1)) + falseBody = (this as any).visit(ctx.statement(1)) } return { - condition: this.visit(ctx.expression()), + condition: (this as any).visit(ctx.expression()), trueBody, - falseBody + falseBody, } }, - TryStatement(ctx) { + TryStatement(ctx: Ctx) { let returnParameters = null if (ctx.returnParameters()) { - returnParameters = this.visit(ctx.returnParameters()) + returnParameters = (this as any).visit(ctx.returnParameters()) } - const catchClauses = ctx.catchClause().map(exprCtx => this.visit(exprCtx)) + const catchClauses = ctx + .catchClause() + .map((exprCtx: any) => (this as any).visit(exprCtx)) return { - expression: this.visit(ctx.expression()), + expression: (this as any).visit(ctx.expression()), returnParameters, - body: this.visit(ctx.block()), - catchClauses + body: (this as any).visit(ctx.block()), + catchClauses, } }, - CatchClause(ctx) { + CatchClause(ctx: Ctx) { let parameters = null if (ctx.parameterList()) { - parameters = this.visit(ctx.parameterList()) + parameters = (this as any).visit(ctx.parameterList()) } if (ctx.identifier() && toText(ctx.identifier()) !== 'Error') { @@ -550,39 +549,38 @@ const transformAST = { } return { - isReasonStringType: !!( - ctx.identifier() && toText(ctx.identifier()) === 'Error' - ), + isReasonStringType: + !!ctx.identifier() && toText(ctx.identifier()) === 'Error', parameters, - body: this.visit(ctx.block()) + body: (this as any).visit(ctx.block()), } }, - UserDefinedTypeName(ctx) { + UserDefinedTypeName(ctx: Ctx) { return { - namePath: toText(ctx) + namePath: toText(ctx), } }, - ElementaryTypeName(ctx) { + ElementaryTypeName(ctx: Ctx) { return { - name: toText(ctx) + name: toText(ctx), } }, - Block(ctx) { + Block(ctx: Ctx) { return { - statements: this.visit(ctx.statement()) + statements: (this as any).visit(ctx.statement()), } }, - ExpressionStatement(ctx) { + ExpressionStatement(ctx: Ctx) { return { - expression: this.visit(ctx.expression()) + expression: (this as any).visit(ctx.expression()), } }, - NumberLiteral(ctx) { + NumberLiteral(ctx: Ctx) { const number = toText(ctx.getChild(0)) let subdenomination = null @@ -592,15 +590,15 @@ const transformAST = { return { number, - subdenomination + subdenomination, } }, - MappingKey(ctx) { + MappingKey(ctx: Ctx) { if (ctx.elementaryTypeName()) { - return this.visit(ctx.elementaryTypeName()) + return (this as any).visit(ctx.elementaryTypeName()) } else if (ctx.userDefinedTypeName()) { - return this.visit(ctx.userDefinedTypeName()) + return (this as any).visit(ctx.userDefinedTypeName()) } else { throw new Error( 'Expected MappingKey to have either ' + @@ -609,17 +607,17 @@ const transformAST = { } }, - Mapping(ctx) { + Mapping(ctx: Ctx) { return { - keyType: this.visit(ctx.mappingKey()), - valueType: this.visit(ctx.typeName()) + keyType: (this as any).visit(ctx.mappingKey()), + valueType: (this as any).visit(ctx.typeName()), } }, - ModifierDefinition(ctx) { + ModifierDefinition(ctx: Ctx) { let parameters = null if (ctx.parameterList()) { - parameters = this.visit(ctx.parameterList()) + parameters = (this as any).visit(ctx.parameterList()) } let isVirtual = false @@ -632,33 +630,33 @@ const transformAST = { if (overrideSpecifier.length === 0) { override = null } else { - override = this.visit(overrideSpecifier[0].userDefinedTypeName()) + override = (this as any).visit(overrideSpecifier[0].userDefinedTypeName()) } return { name: toText(ctx.identifier()), parameters, - body: this.visit(ctx.block()), + body: (this as any).visit(ctx.block()), isVirtual, - override + override, } }, - Statement(ctx) { - return this.visit(ctx.getChild(0)) + Statement(ctx: Ctx) { + return (this as any).visit(ctx.getChild(0)) }, - SimpleStatement(ctx) { - return this.visit(ctx.getChild(0)) + SimpleStatement(ctx: Ctx) { + return (this as any).visit(ctx.getChild(0)) }, - Expression(ctx) { + Expression(ctx: Ctx): ASTTypes.Expression { let op switch (ctx.children.length) { case 1: // primary expression - return this.visit(ctx.getChild(0)) + return (this as any).visit(ctx.getChild(0)) case 2: op = toText(ctx.getChild(0)) @@ -667,7 +665,7 @@ const transformAST = { if (op === 'new') { return { type: 'NewExpression', - typeName: this.visit(ctx.typeName()) + typeName: (this as any).visit(ctx.typeName()), } } @@ -676,8 +674,8 @@ const transformAST = { return { type: 'UnaryOperation', operator: op, - subExpression: this.visit(ctx.getChild(1)), - isPrefix: true + subExpression: (this as any).visit(ctx.getChild(1)), + isPrefix: true, } } @@ -688,8 +686,8 @@ const transformAST = { return { type: 'UnaryOperation', operator: op, - subExpression: this.visit(ctx.getChild(0)), - isPrefix: false + subExpression: (this as any).visit(ctx.getChild(0)), + isPrefix: false, } } break @@ -702,8 +700,8 @@ const transformAST = { ) { return { type: 'TupleExpression', - components: [this.visit(ctx.getChild(1))], - isArray: false + components: [(this as any).visit(ctx.getChild(1))], + isArray: false, } } @@ -717,9 +715,9 @@ const transformAST = { type: 'TypeNameExpression', typeName: { type: 'ArrayTypeName', - baseTypeName: this.visit(ctx.getChild(0)), - length: null - } + baseTypeName: (this as any).visit(ctx.getChild(0)), + length: null, + }, } } @@ -730,10 +728,10 @@ const transformAST = { return { type: 'TupleExpression', components: [ - this.visit(ctx.getChild(0)), - this.visit(ctx.getChild(2)) + (this as any).visit(ctx.getChild(0)), + (this as any).visit(ctx.getChild(2)), ], - isArray: false + isArray: false, } } @@ -741,8 +739,8 @@ const transformAST = { if (op === '.') { return { type: 'MemberAccess', - expression: this.visit(ctx.getChild(0)), - memberName: toText(ctx.getChild(2)) + expression: (this as any).visit(ctx.getChild(0)), + memberName: toText(ctx.getChild(2)), } } @@ -750,8 +748,8 @@ const transformAST = { return { type: 'BinaryOperation', operator: op, - left: this.visit(ctx.getChild(0)), - right: this.visit(ctx.getChild(2)) + left: (this as any).visit(ctx.getChild(0)), + right: (this as any).visit(ctx.getChild(2)), } } break @@ -770,19 +768,19 @@ const transformAST = { args = ctxArgs .expressionList() .expression() - .map(exprCtx => this.visit(exprCtx)) + .map((exprCtx: any) => (this as any).visit(exprCtx)) } else if (ctxArgs.nameValueList()) { for (const nameValue of ctxArgs.nameValueList().nameValue()) { - args.push(this.visit(nameValue.expression())) + args.push((this as any).visit(nameValue.expression())) names.push(toText(nameValue.identifier())) } } return { type: 'FunctionCall', - expression: this.visit(ctx.getChild(0)), + expression: (this as any).visit(ctx.getChild(0)), arguments: args, - names + names, } } @@ -793,8 +791,8 @@ const transformAST = { ) { return { type: 'IndexAccess', - base: this.visit(ctx.getChild(0)), - index: this.visit(ctx.getChild(2)) + base: (this as any).visit(ctx.getChild(0)), + index: (this as any).visit(ctx.getChild(2)), } } @@ -805,8 +803,8 @@ const transformAST = { ) { return { type: 'NameValueExpression', - expression: this.visit(ctx.getChild(0)), - arguments: this.visit(ctx.getChild(2)) + expression: (this as any).visit(ctx.getChild(0)), + arguments: (this as any).visit(ctx.getChild(2)), } } @@ -820,9 +818,9 @@ const transformAST = { ) { return { type: 'Conditional', - condition: this.visit(ctx.getChild(0)), - trueExpression: this.visit(ctx.getChild(2)), - falseExpression: this.visit(ctx.getChild(4)) + condition: (this as any).visit(ctx.getChild(0)), + trueExpression: (this as any).visit(ctx.getChild(2)), + falseExpression: (this as any).visit(ctx.getChild(4)), } } @@ -834,9 +832,8 @@ const transformAST = { ) { return { type: 'IndexRangeAccess', - base: this.visit(ctx.getChild(0)), - indexStart: null, - indexEnd: this.visit(ctx.getChild(3)) + base: (this as any).visit(ctx.getChild(0)), + indexEnd: (this as any).visit(ctx.getChild(3)), } } else if ( toText(ctx.getChild(1)) === '[' && @@ -845,9 +842,8 @@ const transformAST = { ) { return { type: 'IndexRangeAccess', - base: this.visit(ctx.getChild(0)), - indexStart: this.visit(ctx.getChild(2)), - indexEnd: null + base: (this as any).visit(ctx.getChild(0)), + indexStart: (this as any).visit(ctx.getChild(2)), } } break @@ -861,9 +857,9 @@ const transformAST = { ) { return { type: 'IndexRangeAccess', - base: this.visit(ctx.getChild(0)), - indexStart: this.visit(ctx.getChild(2)), - indexEnd: this.visit(ctx.getChild(4)) + base: (this as any).visit(ctx.getChild(0)), + indexStart: (this as any).visit(ctx.getChild(2)), + indexEnd: (this as any).visit(ctx.getChild(4)), } } break @@ -872,30 +868,30 @@ const transformAST = { throw new Error('Unrecognized expression') }, - NameValueList(ctx) { + NameValueList(ctx: Ctx) { const names = [] const args = [] for (const nameValue of ctx.nameValue()) { names.push(toText(nameValue.identifier())) - args.push(this.visit(nameValue.expression())) + args.push((this as any).visit(nameValue.expression())) } return { type: 'NameValueList', names, - arguments: args + arguments: args, } }, - StateVariableDeclaration(ctx) { - const type = this.visit(ctx.typeName()) + StateVariableDeclaration(ctx: Ctx) { + const type = (this as any).visit(ctx.typeName()) const iden = ctx.identifier() const name = toText(iden) let expression = null if (ctx.expression()) { - expression = this.visit(ctx.expression()) + expression = (this as any).visit(ctx.expression()) } let visibility = 'default' @@ -917,7 +913,7 @@ const transformAST = { if (overrideSpecifier.length === 0) { override = null } else { - override = this.visit(overrideSpecifier[0].userDefinedTypeName()) + override = (this as any).visit(overrideSpecifier[0].userDefinedTypeName()) } let isImmutable = false @@ -925,7 +921,7 @@ const transformAST = { isImmutable = true } - const decl = this.createNode( + const decl = (this as any).createNode( { type: 'VariableDeclaration', typeName: type, @@ -936,80 +932,80 @@ const transformAST = { isDeclaredConst, isIndexed: false, isImmutable, - override + override, }, iden ) return { variables: [decl], - initialValue: expression + initialValue: expression, } }, - FileLevelConstant(ctx) { - const type = this.visit(ctx.typeName()) + FileLevelConstant(ctx: Ctx) { + const type = (this as any).visit(ctx.typeName()) const iden = ctx.identifier() const name = toText(iden) let expression = null if (ctx.expression()) { - expression = this.visit(ctx.expression()) + expression = (this as any).visit(ctx.expression()) } return { typeName: type, name, - initialValue: expression + initialValue: expression, } }, - ForStatement(ctx) { - let conditionExpression = this.visit(ctx.expressionStatement()) + ForStatement(ctx: Ctx) { + let conditionExpression = (this as any).visit(ctx.expressionStatement()) if (conditionExpression) { conditionExpression = conditionExpression.expression } return { - initExpression: this.visit(ctx.simpleStatement()), + initExpression: (this as any).visit(ctx.simpleStatement()), conditionExpression, loopExpression: { type: 'ExpressionStatement', - expression: this.visit(ctx.expression()) + expression: (this as any).visit(ctx.expression()), }, - body: this.visit(ctx.statement()) + body: (this as any).visit(ctx.statement()), } }, - HexLiteral(ctx) { + HexLiteral(ctx: Ctx) { const parts = ctx .HexLiteralFragment() .map(toText) - .map(x => x.substring(4, x.length - 1)) + .map((x: any) => x.substring(4, x.length - 1)) return { type: 'HexLiteral', value: parts.join(''), - parts + parts, } }, - PrimaryExpression(ctx) { + PrimaryExpression(ctx: Ctx) { if (ctx.BooleanLiteral()) { return { type: 'BooleanLiteral', - value: toText(ctx.BooleanLiteral()) === 'true' + value: toText(ctx.BooleanLiteral()) === 'true', } } if (ctx.hexLiteral()) { - return this.visit(ctx.hexLiteral()) + return (this as any).visit(ctx.hexLiteral()) } if (ctx.stringLiteral()) { const parts = ctx .stringLiteral() .StringLiteralFragment() - .map(stringLiteralFragmentCtx => { + .map((stringLiteralFragmentCtx: any) => { const text = toText(stringLiteralFragmentCtx) const singleQuotes = text[0] === "'" const textWithoutQuotes = text.substring(1, text.length - 1) @@ -1023,14 +1019,14 @@ const transformAST = { return { type: 'StringLiteral', value: parts.join(''), - parts + parts, } } if (ctx.TypeKeyword()) { return { type: 'Identifier', - name: 'type' + name: 'type', } } @@ -1039,87 +1035,87 @@ const transformAST = { toText(ctx.getChild(1)) === '[' && toText(ctx.getChild(2)) === ']' ) { - let node = this.visit(ctx.getChild(0)) + let node = (this as any).visit(ctx.getChild(0)) if (node.type === 'Identifier') { node = { type: 'UserDefinedTypeName', - namePath: node.name + namePath: node.name, } } else if (node.type == 'TypeNameExpression') { node = node.typeName } else { node = { type: 'ElementaryTypeName', - name: toText(ctx.getChild(0)) + name: toText(ctx.getChild(0)), } } const typeName = { type: 'ArrayTypeName', baseTypeName: node, - length: null + length: null, } return { type: 'TypeNameExpression', - typeName + typeName, } } - return this.visit(ctx.getChild(0)) + return (this as any).visit(ctx.getChild(0)) }, - Identifier(ctx) { + Identifier(ctx: Ctx) { return { - name: toText(ctx) + name: toText(ctx), } }, - TupleExpression(ctx) { + TupleExpression(ctx: Ctx) { // remove parentheses const children = ctx.children.slice(1, -1) - const components = mapCommasToNulls(children).map(expr => { + const components = mapCommasToNulls(children).map((expr) => { // add a null for each empty value - if (expr === null) { + if (!expr) { return null } - return this.visit(expr) + return (this as any).visit(expr) }) return { components, - isArray: toText(ctx.getChild(0)) === '[' + isArray: toText(ctx.getChild(0)) === '[', } }, - IdentifierList(ctx) { + IdentifierList(ctx: Ctx) { // remove parentheses const children = ctx.children.slice(1, -1) - return mapCommasToNulls(children).map(iden => { + return mapCommasToNulls(children).map((iden) => { // add a null for each empty value - if (iden === null) { + if (!iden) { return null } - return this.createNode( + return (this as any).createNode( { type: 'VariableDeclaration', name: toText(iden), storageLocation: null, typeName: null, isStateVar: false, - isIndexed: false + isIndexed: false, }, iden ) }) }, - VariableDeclarationList(ctx) { + VariableDeclarationList(ctx: Ctx) { // remove parentheses - return mapCommasToNulls(ctx.children).map(decl => { + return mapCommasToNulls(ctx.children).map((decl) => { // add a null for each empty value - if (decl === null) { + if (!decl) { return null } @@ -1128,48 +1124,48 @@ const transformAST = { storageLocation = toText(decl.storageLocation()) } - return this.createNode( + return (this as any).createNode( { type: 'VariableDeclaration', name: toText(decl.identifier()), - typeName: this.visit(decl.typeName()), + typeName: (this as any).visit(decl.typeName()), storageLocation, isStateVar: false, - isIndexed: false + isIndexed: false, }, decl ) }) }, - VariableDeclarationStatement(ctx) { + VariableDeclarationStatement(ctx: Ctx) { let variables if (ctx.variableDeclaration()) { - variables = [this.visit(ctx.variableDeclaration())] + variables = [(this as any).visit(ctx.variableDeclaration())] } else if (ctx.identifierList()) { - variables = this.visit(ctx.identifierList()) + variables = (this as any).visit(ctx.identifierList()) } else if (ctx.variableDeclarationList()) { - variables = this.visit(ctx.variableDeclarationList()) + variables = (this as any).visit(ctx.variableDeclarationList()) } let initialValue = null if (ctx.expression()) { - initialValue = this.visit(ctx.expression()) + initialValue = (this as any).visit(ctx.expression()) } return { variables, - initialValue + initialValue, } }, - ImportDirective(ctx) { + ImportDirective(ctx: Ctx) { const pathString = toText(ctx.StringLiteralFragment()) let unitAlias = null let symbolAliases = null if (ctx.importDeclaration().length > 0) { - symbolAliases = ctx.importDeclaration().map(decl => { + symbolAliases = ctx.importDeclaration().map((decl: any) => { const symbol = toText(decl.identifier(0)) let alias = null if (decl.identifier(1)) { @@ -1186,48 +1182,48 @@ const transformAST = { return { path: pathString.substring(1, pathString.length - 1), unitAlias, - symbolAliases + symbolAliases, } }, - EventDefinition(ctx) { + EventDefinition(ctx: Ctx) { return { name: toText(ctx.identifier()), - parameters: this.visit(ctx.eventParameterList()), - isAnonymous: !!ctx.AnonymousKeyword() + parameters: (this as any).visit(ctx.eventParameterList()), + isAnonymous: !!ctx.AnonymousKeyword(), } }, - EventParameterList(ctx) { - return ctx.eventParameter().map(function(paramCtx) { - const type = this.visit(paramCtx.typeName()) + EventParameterList(ctx: Ctx) { + return ctx.eventParameter().map((paramCtx: any) => { + const type = (this as any).visit(paramCtx.typeName()) let name = null if (paramCtx.identifier()) { name = toText(paramCtx.identifier()) } - return this.createNode( + return (this as any).createNode( { type: 'VariableDeclaration', typeName: type, name, isStateVar: false, - isIndexed: !!paramCtx.IndexedKeyword(0) + isIndexed: !!paramCtx.IndexedKeyword(0), }, paramCtx ) }, this) }, - ReturnParameters(ctx) { - return this.visit(ctx.parameterList()) + ReturnParameters(ctx: Ctx) { + return (this as any).visit(ctx.parameterList()) }, - ParameterList(ctx) { - return ctx.parameter().map(paramCtx => this.visit(paramCtx)) + ParameterList(ctx: Ctx) { + return ctx.parameter().map((paramCtx: any) => (this as any).visit(paramCtx)) }, - Parameter(ctx) { + Parameter(ctx: Ctx) { let storageLocation = null if (ctx.storageLocation()) { storageLocation = toText(ctx.storageLocation()) @@ -1240,15 +1236,15 @@ const transformAST = { return { type: 'VariableDeclaration', - typeName: this.visit(ctx.typeName()), + typeName: (this as any).visit(ctx.typeName()), name, storageLocation, isStateVar: false, - isIndexed: false + isIndexed: false, } }, - InlineAssemblyStatement(ctx) { + InlineAssemblyStatement(ctx: Ctx) { let language = null if (ctx.StringLiteralFragment()) { language = toText(ctx.StringLiteralFragment()) @@ -1257,21 +1253,23 @@ const transformAST = { return { language, - body: this.visit(ctx.assemblyBlock()) + body: (this as any).visit(ctx.assemblyBlock()), } }, - AssemblyBlock(ctx) { - const operations = ctx.assemblyItem().map(it => this.visit(it)) + AssemblyBlock(ctx: Ctx) { + const operations = ctx + .assemblyItem() + .map((it: any) => (this as any).visit(it)) return { operations } }, - AssemblyItem(ctx) { + AssemblyItem(ctx: Ctx) { let text if (ctx.hexLiteral()) { - return this.visit(ctx.hexLiteral()) + return (this as any).visit(ctx.hexLiteral()) } if (ctx.stringLiteral()) { @@ -1280,40 +1278,42 @@ const transformAST = { return { type: 'StringLiteral', value, - parts: [value] + parts: [value], } } if (ctx.BreakKeyword()) { return { - type: 'Break' + type: 'Break', } } if (ctx.ContinueKeyword()) { return { - type: 'Continue' + type: 'Continue', } } - return this.visit(ctx.getChild(0)) + return (this as any).visit(ctx.getChild(0)) }, - AssemblyExpression(ctx) { - return this.visit(ctx.getChild(0)) + AssemblyExpression(ctx: Ctx) { + return (this as any).visit(ctx.getChild(0)) }, - AssemblyCall(ctx) { + AssemblyCall(ctx: Ctx) { const functionName = toText(ctx.getChild(0)) - const args = ctx.assemblyExpression().map(arg => this.visit(arg)) + const args = ctx + .assemblyExpression() + .map((arg: any) => (this as any).visit(arg)) return { functionName, - arguments: args + arguments: args, } }, - AssemblyLiteral(ctx) { + AssemblyLiteral(ctx: Ctx) { let text if (ctx.stringLiteral()) { @@ -1322,44 +1322,44 @@ const transformAST = { return { type: 'StringLiteral', value, - parts: [value] + parts: [value], } } if (ctx.DecimalNumber()) { return { type: 'DecimalNumber', - value: toText(ctx) + value: toText(ctx), } } if (ctx.HexNumber()) { return { type: 'HexNumber', - value: toText(ctx) + value: toText(ctx), } } if (ctx.hexLiteral()) { - return this.visit(ctx.hexLiteral()) + return (this as any).visit(ctx.hexLiteral()) } }, - AssemblySwitch(ctx) { + AssemblySwitch(ctx: Ctx) { return { - expression: this.visit(ctx.assemblyExpression()), - cases: ctx.assemblyCase().map(c => this.visit(c)) + expression: (this as any).visit(ctx.assemblyExpression()), + cases: ctx.assemblyCase().map((c: any) => (this as any).visit(c)), } }, - AssemblyCase(ctx) { + AssemblyCase(ctx: Ctx) { let value = null if (toText(ctx.getChild(0)) === 'case') { - value = this.visit(ctx.assemblyLiteral()) + value = (this as any).visit(ctx.assemblyLiteral()) } - const node = { block: this.visit(ctx.assemblyBlock()) } - if (value !== null) { + const node: any = { block: (this as any).visit(ctx.assemblyBlock()) } + if (value) { node.value = value } else { node.default = true @@ -1368,145 +1368,148 @@ const transformAST = { return node }, - AssemblyLocalDefinition(ctx) { + AssemblyLocalDefinition(ctx: Ctx) { let names = ctx.assemblyIdentifierOrList() if (names.identifier()) { - names = [this.visit(names.identifier())] + names = [(this as any).visit(names.identifier())] } else if (names.assemblyMember()) { - names = [this.visit(names.assemblyMember())] + names = [(this as any).visit(names.assemblyMember())] } else { - names = this.visit(names.assemblyIdentifierList().identifier()) + names = (this as any).visit(names.assemblyIdentifierList().identifier()) } return { names, - expression: this.visit(ctx.assemblyExpression()) + expression: (this as any).visit(ctx.assemblyExpression()), } }, - AssemblyFunctionDefinition(ctx) { + AssemblyFunctionDefinition(ctx: Ctx) { let args = ctx.assemblyIdentifierList() - args = args ? this.visit(args.identifier()) : [] + args = args ? (this as any).visit(args.identifier()) : [] let returnArgs = ctx.assemblyFunctionReturns() - returnArgs = returnArgs - ? this.visit(returnArgs.assemblyIdentifierList().identifier()) - : [] + returnArgs = + returnArgs + ? (this as any).visit(returnArgs.assemblyIdentifierList().identifier()) + : [] return { name: toText(ctx.identifier()), arguments: args, returnArguments: returnArgs, - body: this.visit(ctx.assemblyBlock()) + body: (this as any).visit(ctx.assemblyBlock()), } }, - AssemblyAssignment(ctx) { + AssemblyAssignment(ctx: Ctx) { let names = ctx.assemblyIdentifierOrList() if (names.identifier()) { - names = [this.visit(names.identifier())] + names = [(this as any).visit(names.identifier())] } else if (names.assemblyMember()) { - names = [this.visit(names.assemblyMember())] + names = [(this as any).visit(names.assemblyMember())] } else { - names = this.visit(names.assemblyIdentifierList().identifier()) + names = (this as any).visit(names.assemblyIdentifierList().identifier()) } return { names, - expression: this.visit(ctx.assemblyExpression()) + expression: (this as any).visit(ctx.assemblyExpression()), } }, - AssemblyMember(ctx) { + AssemblyMember(ctx: Ctx) { const [accessed, member] = ctx.identifier() return { type: 'AssemblyMemberAccess', - expression: this.visit(accessed), - memberName: this.visit(member) + expression: (this as any).visit(accessed), + memberName: (this as any).visit(member), } }, - LabelDefinition(ctx) { + LabelDefinition(ctx: Ctx) { return { - name: toText(ctx.identifier()) + name: toText(ctx.identifier()), } }, - AssemblyStackAssignment(ctx) { + AssemblyStackAssignment(ctx: Ctx) { return { - name: toText(ctx.identifier()) + name: toText(ctx.identifier()), } }, - AssemblyFor(ctx) { + AssemblyFor(ctx: Ctx) { return { - pre: this.visit(ctx.getChild(1)), - condition: this.visit(ctx.getChild(2)), - post: this.visit(ctx.getChild(3)), - body: this.visit(ctx.getChild(4)) + pre: (this as any).visit(ctx.getChild(1)), + condition: (this as any).visit(ctx.getChild(2)), + post: (this as any).visit(ctx.getChild(3)), + body: (this as any).visit(ctx.getChild(4)), } }, - AssemblyIf(ctx) { + AssemblyIf(ctx: Ctx) { return { - condition: this.visit(ctx.assemblyExpression()), - body: this.visit(ctx.assemblyBlock()) + condition: (this as any).visit(ctx.assemblyExpression()), + body: (this as any).visit(ctx.assemblyBlock()), } - } + }, } class ASTBuilder extends antlr4.tree.ParseTreeVisitor { - constructor(options) { + public options: ParseOptions + + constructor(options: ParseOptions) { super(options) this.options = options } - _loc(ctx) { + _loc(ctx: Ctx) { const sourceLocation = { start: { line: ctx.start.line, - column: ctx.start.column + column: ctx.start.column, }, end: { line: ctx.stop ? ctx.stop.line : ctx.start.line, - column: ctx.stop ? ctx.stop.column : ctx.start.column - } + column: ctx.stop ? ctx.stop.column : ctx.start.column, + }, } return { loc: sourceLocation } } - _range(ctx) { + _range(ctx: Ctx) { return { range: [ctx.start.start, ctx.stop.stop] } } - meta(ctx) { - const ret = {} - if (this.options.loc) { + meta(ctx: Ctx) { + const ret: any = {} + if (this.options.loc === true) { Object.assign(ret, this._loc(ctx)) } - if (this.options.range) { + if (this.options.range === true) { Object.assign(ret, this._range(ctx)) } return ret } - createNode(obj, ctx) { + createNode(obj: any, ctx: any) { return Object.assign(obj, this.meta(ctx)) } - visit(ctx) { - if (ctx == null) { + visit(ctx: Ctx): BaseASTNode | BaseASTNode[] | null { + if (!ctx) { return null } if (Array.isArray(ctx)) { - return ctx.map(function(child) { - return this.visit(child) + return ctx.map((child) => { + return (this as any).visit(child) }, this) } - let name = ctx.constructor.name + let name: string = ctx.constructor.name if (name.endsWith('Context')) { name = name.substring(0, name.length - 'Context'.length) } @@ -1514,15 +1517,15 @@ class ASTBuilder extends antlr4.tree.ParseTreeVisitor { const node = { type: name } if (name in transformAST) { - const visited = transformAST[name].call(this, ctx) + const visited = (transformAST as any)[name].call(this, ctx) if (Array.isArray(visited)) { return visited } Object.assign(node, visited) } - return this.createNode(node, ctx) + return (this as any).createNode(node, ctx) } } -module.exports = ASTBuilder +export default ASTBuilder diff --git a/src/ErrorListener.js b/src/ErrorListener.ts similarity index 52% rename from src/ErrorListener.js rename to src/ErrorListener.ts index 012dd36..24e658d 100644 --- a/src/ErrorListener.js +++ b/src/ErrorListener.ts @@ -1,17 +1,25 @@ -const antlr4 = require('antlr4') +import antlr4 from 'antlr4' class ErrorListener extends antlr4.error.ErrorListener { + private _errors: any[] + constructor() { super() this._errors = [] } - syntaxError(recognizer, offendingSymbol, line, column, message) { + syntaxError( + recognizer: any, + offendingSymbol: any, + line: number, + column: number, + message: string + ) { this._errors.push({ message, line, column }) } - getErrors() { + getErrors(): any[] { return this._errors } @@ -20,4 +28,4 @@ class ErrorListener extends antlr4.error.ErrorListener { } } -module.exports = ErrorListener +export default ErrorListener diff --git a/src/ast-types.ts b/src/ast-types.ts new file mode 100644 index 0000000..8c0ebfd --- /dev/null +++ b/src/ast-types.ts @@ -0,0 +1,585 @@ +// Base on the original type definitions for solidity-parser-antlr 0.2 +// by Leonid Logvinov +// Alex Browne +// Xiao Liang + +import { Token } from './types' + +export type AST = { + errors?: any[] + tokens?: Token[] +} & ASTNode + +export interface BaseASTNode { + type: ASTNodeTypeString + range?: [number, number] + loc?: Location +} + +export type ASTNodeTypeString = + | 'SourceUnit' + | 'PragmaDirective' + | 'PragmaName' + | 'PragmaValue' + | 'ImportDirective' + | 'ContractDefinition' + | 'InheritanceSpecifier' + | 'StateVariableDeclaration' + | 'UsingForDeclaration' + | 'StructDefinition' + | 'ModifierDefinition' + | 'ModifierInvocation' + | 'FunctionDefinition' + | 'EventDefinition' + | 'EnumValue' + | 'EnumDefinition' + | 'VariableDeclaration' + | 'UserDefinedTypeName' + | 'Mapping' + | 'ArrayTypeName' + | 'FunctionTypeName' + | 'StorageLocation' + | 'StateMutability' + | 'Block' + | 'ExpressionStatement' + | 'IfStatement' + | 'WhileStatement' + | 'ForStatement' + | 'InlineAssemblyStatement' + | 'DoWhileStatement' + | 'ContinueStatement' + | 'Break' + | 'Continue' + | 'BreakStatement' + | 'ReturnStatement' + | 'EmitStatement' + | 'ThrowStatement' + | 'VariableDeclarationStatement' + | 'IdentifierList' + | 'ElementaryTypeName' + | 'FunctionCall' + | 'AssemblyBlock' + | 'AssemblyItem' + | 'AssemblyCall' + | 'AssemblyLocalDefinition' + | 'AssemblyAssignment' + | 'AssemblyStackAssignment' + | 'LabelDefinition' + | 'AssemblySwitch' + | 'AssemblyCase' + | 'AssemblyFunctionDefinition' + | 'AssemblyFunctionReturns' + | 'AssemblyFor' + | 'AssemblyIf' + | 'AssemblyLiteral' + | 'SubAssembly' + | 'TupleExpression' + | 'TypeNameExpression' + | 'NameValueExpression' + | 'BooleanLiteral' + | 'NumberLiteral' + | 'Identifier' + | 'BinaryOperation' + | 'UnaryOperation' + | 'NewExpression' + | 'Conditional' + | 'StringLiteral' + | 'HexLiteral' + | 'HexNumber' + | 'DecimalNumber' + | 'MemberAccess' + | 'IndexAccess' + | 'IndexRangeAccess' + | 'NameValueList' +export interface BaseASTNode { + type: ASTNodeTypeString + range?: [number, number] + loc?: Location +} +export interface SourceUnit extends BaseASTNode { + type: 'SourceUnit' + children: ASTNode[] // TODO: Can be more precise +} // tslint:disable-line:no-empty-interface +export interface PragmaDirective extends BaseASTNode { + type: 'PragmaDirective' + name: string + value: string +} +export interface ImportDirective extends BaseASTNode { + type: 'ImportDirective' + path: string + unitAlias: string + symbolAliases: Array<[string, string]> +} +export interface ContractDefinition extends BaseASTNode { + type: 'ContractDefinition' + name: string + baseContracts: InheritanceSpecifier[] + kind: string + subNodes: ASTNode[] // TODO: Can be more precise +} +export interface InheritanceSpecifier extends BaseASTNode { + type: 'InheritanceSpecifier' + baseName: UserDefinedTypeName + arguments: Expression[] +} +export interface StateVariableDeclaration extends BaseASTNode { + type: 'StateVariableDeclaration' + variables: StateVariableDeclarationVariable[] + initialValue?: Expression +} +export interface UsingForDeclaration extends BaseASTNode { + type: 'UsingForDeclaration' + typeName: TypeName + libraryName: string +} +export interface StructDefinition extends BaseASTNode { + type: 'StructDefinition' + name: string + members: VariableDeclaration[] +} +export interface ModifierDefinition extends BaseASTNode { + type: 'ModifierDefinition' + name: string + parameters: null | VariableDeclaration[] + isVirtual: boolean + override: null | UserDefinedTypeName[] + body: Block +} +export interface ModifierInvocation extends BaseASTNode { + type: 'ModifierInvocation' + name: string + arguments: Expression[] | null +} +export interface FunctionDefinition extends BaseASTNode { + type: 'FunctionDefinition' + name?: string + parameters: VariableDeclaration[] + modifiers: ModifierInvocation[] + stateMutability?: 'pure' | 'constant' | 'payable' | 'view' + visibility: 'default' | 'external' | 'internal' | 'public' | 'private' + returnParameters?: VariableDeclaration[] + body?: Block + override: null | UserDefinedTypeName[] + isConstructor: boolean + isReceiveEther: boolean + isFallback: boolean + isVirtual: boolean +} +export interface EventDefinition extends BaseASTNode { + type: 'EventDefinition' + name: string + parameters: VariableDeclaration[] +} +export interface EnumValue extends BaseASTNode { + type: 'EnumValue' + name: string +} +export interface EnumDefinition extends BaseASTNode { + type: 'EnumDefinition' + name: string + members: EnumValue[] +} +export interface VariableDeclaration extends BaseASTNode { + type: 'VariableDeclaration' + isIndexed: boolean + isStateVar: boolean + typeName: TypeName + name: string + isDeclaredConst?: boolean + storageLocation?: string + expression?: Expression + visibility?: 'public' | 'private' | 'internal' | 'default' +} +export interface StateVariableDeclarationVariable extends VariableDeclaration { + override: null | UserDefinedTypeName[] + isImmutable: boolean +} +export interface UserDefinedTypeName extends BaseASTNode { + type: 'UserDefinedTypeName' + namePath: string +} +export interface ArrayTypeName extends BaseASTNode { + type: 'ArrayTypeName' + baseTypeName: TypeName + length: Expression | null +} +export interface Mapping extends BaseASTNode { + type: 'Mapping' + keyType: ElementaryTypeName + valueType: TypeName +} +export interface FunctionTypeName extends BaseASTNode { + type: 'FunctionTypeName' + parameterTypes: TypeName[] + returnTypes: TypeName[] + visibility: string + stateMutability: string +} +export interface Block extends BaseASTNode { + type: 'Block' + statements: Statement[] +} +export interface ExpressionStatement extends BaseASTNode { + type: 'ExpressionStatement' + expression: Expression +} +export interface IfStatement extends BaseASTNode { + type: 'IfStatement' + condition: Expression + trueBody: Statement + falseBody?: Statement +} +export interface WhileStatement extends BaseASTNode { + type: 'WhileStatement' + body: Statement +} +export interface ForStatement extends BaseASTNode { + type: 'ForStatement' + initExpression?: SimpleStatement + conditionExpression?: Expression + loopExpression?: ExpressionStatement + body: Statement +} +export interface InlineAssemblyStatement extends BaseASTNode { + type: 'InlineAssemblyStatement' + language: string + body: AssemblyBlock +} +export interface DoWhileStatement extends BaseASTNode { + type: 'DoWhileStatement' + condition: Expression + body: Statement +} +export interface ContinueStatement extends BaseASTNode { + type: 'ContinueStatement' +} +export interface Break extends BaseASTNode { + type: 'Break' +} +export interface Continue extends BaseASTNode { + type: 'Continue' +} +export interface BreakStatement extends BaseASTNode { + type: 'BreakStatement' +} +export interface ReturnStatement extends BaseASTNode { + type: 'ReturnStatement' + expression: Expression | null +} +export interface EmitStatement extends BaseASTNode { + type: 'EmitStatement' + eventCall: FunctionCall +} +export interface ThrowStatement extends BaseASTNode { + type: 'ThrowStatement' +} +export interface VariableDeclarationStatement extends BaseASTNode { + type: 'VariableDeclarationStatement' + variables: ASTNode[] + initialValue?: Expression +} +export interface ElementaryTypeName extends BaseASTNode { + type: 'ElementaryTypeName' + name: string +} +export interface FunctionCall extends BaseASTNode { + type: 'FunctionCall' + expression: Expression + arguments: Expression[] + names: string[] +} +export interface AssemblyBlock extends BaseASTNode { + type: 'AssemblyBlock' + operations: AssemblyItem[] +} +export interface AssemblyCall extends BaseASTNode { + type: 'AssemblyCall' + functionName: string + arguments: AssemblyExpression[] +} +export interface AssemblyLocalDefinition extends BaseASTNode { + type: 'AssemblyLocalDefinition' +} +export interface AssemblyAssignment extends BaseASTNode { + type: 'AssemblyAssignment' + expression: AssemblyExpression + names: Identifier[] +} +export interface AssemblyStackAssignment extends BaseASTNode { + type: 'AssemblyStackAssignment' +} +export interface LabelDefinition extends BaseASTNode { + type: 'LabelDefinition' +} +export interface AssemblySwitch extends BaseASTNode { + type: 'AssemblySwitch' +} +export interface AssemblyCase extends BaseASTNode { + type: 'AssemblyCase' +} +export interface AssemblyFunctionDefinition extends BaseASTNode { + type: 'AssemblyFunctionDefinition' +} +export interface AssemblyFunctionReturns extends BaseASTNode { + type: 'AssemblyFunctionReturns' +} +export interface AssemblyFor extends BaseASTNode { + type: 'AssemblyFor' +} +export interface AssemblyIf extends BaseASTNode { + type: 'AssemblyIf' +} +export interface AssemblyLiteral extends BaseASTNode { + type: 'AssemblyLiteral' +} +export interface SubAssembly extends BaseASTNode { + type: 'SubAssembly' +} +export interface NewExpression extends BaseASTNode { + type: 'NewExpression' + typeName: TypeName +} +export interface TupleExpression extends BaseASTNode { + type: 'TupleExpression' + components: Expression[] + isArray: boolean +} +export interface TypeNameExpression extends BaseASTNode { + type: 'TypeNameExpression' + typeName: ElementaryTypeName | UserDefinedTypeName | ArrayTypeName +} +export interface NameValueExpression extends BaseASTNode { + type: 'NameValueExpression' + expression: Expression + arguments: { [name: string]: Expression } +} +export interface NumberLiteral extends BaseASTNode { + type: 'NumberLiteral' + number: string + subdenomination: + | null + | 'wei' + | 'szabo' + | 'finney' + | 'ether' + | 'seconds' + | 'minutes' + | 'hours' + | 'days' + | 'weeks' + | 'years' +} +export interface BooleanLiteral extends BaseASTNode { + type: 'BooleanLiteral' + value: boolean +} +export interface HexLiteral extends BaseASTNode { + type: 'HexLiteral' + value: string + parts: string[] +} +export interface StringLiteral extends BaseASTNode { + type: 'StringLiteral' + value: string + parts: string[] +} +export interface Identifier extends BaseASTNode { + type: 'Identifier' + name: string +} +export type BinOp = + | '+' + | '-' + | '*' + | '/' + | '**' + | '%' + | '<<' + | '>>' + | '&&' + | '||' + | '&' + | '|' + | '^' + | '<' + | '>' + | '<=' + | '>=' + | '==' + | '!=' + | '=' + | '|=' + | '^=' + | '&=' + | '<<=' + | '>>=' + | '+=' + | '-=' + | '*=' + | '/=' + | '%=' +export type UnaryOp = '-' | '+' | '++' | '~' | 'after' | 'delete' | '!' +export interface BinaryOperation extends BaseASTNode { + type: 'BinaryOperation' + left: Expression + right: Expression + operator: BinOp +} +export interface UnaryOperation extends BaseASTNode { + type: 'UnaryOperation' + operator: UnaryOp + subExpression: Expression + isPrefix: boolean +} +export interface Conditional extends BaseASTNode { + type: 'Conditional' + condition: Expression + trueExpression: ASTNode + falseExpression: ASTNode +} +export interface IndexAccess extends BaseASTNode { + type: 'IndexAccess' + base: Expression + index: Expression +} +export interface IndexRangeAccess extends BaseASTNode { + type: 'IndexRangeAccess' + base: Expression + indexStart?: Expression + indexEnd?: Expression +} +export interface MemberAccess extends BaseASTNode { + type: 'MemberAccess' + expression: Expression + memberName: string +} +export interface HexNumber extends BaseASTNode { + type: 'HexNumber' + value: string +} +export interface DecimalNumber extends BaseASTNode { + type: 'DecimalNumber' + value: string +} +export interface NameValueList extends BaseASTNode { + type: 'NameValueList' + names: string[] + args: Expression[] +} +export type ASTNode = + | SourceUnit + | PragmaDirective + | ImportDirective + | ContractDefinition + | InheritanceSpecifier + | StateVariableDeclaration + | UsingForDeclaration + | StructDefinition + | ModifierDefinition + | ModifierInvocation + | FunctionDefinition + | EventDefinition + | EnumValue + | EnumDefinition + | VariableDeclaration + | TypeName + | UserDefinedTypeName + | Mapping + | FunctionTypeName + | Block + | ExpressionStatement + | IfStatement + | WhileStatement + | ForStatement + | InlineAssemblyStatement + | DoWhileStatement + | ContinueStatement + | BreakStatement + | ReturnStatement + | EmitStatement + | ThrowStatement + | VariableDeclarationStatement + | ElementaryTypeName + | AssemblyBlock + | AssemblyCall + | AssemblyLocalDefinition + | AssemblyAssignment + | AssemblyStackAssignment + | LabelDefinition + | AssemblySwitch + | AssemblyCase + | AssemblyFunctionDefinition + | AssemblyFunctionReturns + | AssemblyFor + | AssemblyIf + | AssemblyLiteral + | SubAssembly + | TupleExpression + | TypeNameExpression + | BinaryOperation + | Conditional + | IndexAccess + | IndexRangeAccess + | AssemblyItem + | Expression +export type AssemblyItem = + | Identifier + | AssemblyBlock + | AssemblyExpression + | AssemblyLocalDefinition + | AssemblyAssignment + | AssemblyStackAssignment + | LabelDefinition + | AssemblySwitch + | AssemblyFunctionDefinition + | AssemblyFor + | AssemblyIf + | Break + | Continue + | SubAssembly + | NumberLiteral + | StringLiteral + | HexNumber + | HexLiteral + | DecimalNumber +export type AssemblyExpression = AssemblyCall | AssemblyLiteral +export type Expression = + | IndexAccess + | IndexRangeAccess + | TupleExpression + | BinaryOperation + | Conditional + | MemberAccess + | FunctionCall + | UnaryOperation + | NewExpression + | PrimaryExpression + | NameValueExpression +export type PrimaryExpression = + | BooleanLiteral + | NumberLiteral + | Identifier + | TupleExpression + | TypeNameExpression +export type SimpleStatement = VariableDeclarationStatement | ExpressionStatement +export type TypeName = + | ElementaryTypeName + | UserDefinedTypeName + | Mapping + | ArrayTypeName + | FunctionTypeName +export type Statement = + | IfStatement + | WhileStatement + | ForStatement + | Block + | InlineAssemblyStatement + | DoWhileStatement + | ContinueStatement + | BreakStatement + | ReturnStatement + | EmitStatement + | ThrowStatement + | SimpleStatement + | VariableDeclarationStatement diff --git a/src/declarations.d.ts b/src/declarations.d.ts new file mode 100644 index 0000000..f4961a4 --- /dev/null +++ b/src/declarations.d.ts @@ -0,0 +1 @@ +declare module 'antlr4' diff --git a/src/index.js b/src/index.js deleted file mode 100644 index fe5eb9a..0000000 --- a/src/index.js +++ /dev/null @@ -1,119 +0,0 @@ -import SolidityLexer from './lib/SolidityLexer' -import SolidityParser from './lib/SolidityParser' - -const antlr4 = require('antlr4') -const ASTBuilder = require('./ASTBuilder') -const ErrorListener = require('./ErrorListener') -const { buildTokenList } = require('./tokens') - -function ParserError(args) { - const { message, line, column } = args.errors[0] - this.message = `${message} (${line}:${column})` - this.errors = args.errors - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor) - } else { - this.stack = new Error().stack - } -} - -ParserError.prototype = Object.create(Error.prototype) -ParserError.prototype.constructor = ParserError -ParserError.prototype.name = 'ParserError' - -function tokenize(input, options) { - options = options || {} - - const chars = new antlr4.InputStream(input) - const lexer = new SolidityLexer(chars) - const tokens = new antlr4.CommonTokenStream(lexer) - - return buildTokenList(tokens.tokenSource.getAllTokens(), options) -} - -function parse(input, options) { - options = options || {} - - const chars = new antlr4.InputStream(input) - - const listener = new ErrorListener() - - const lexer = new SolidityLexer(chars) - lexer.removeErrorListeners() - lexer.addErrorListener(listener) - - const tokens = new antlr4.CommonTokenStream(lexer) - - const parser = new SolidityParser(tokens) - - parser.removeErrorListeners() - parser.addErrorListener(listener) - parser.buildParseTrees = true - - const tree = parser.sourceUnit() - - let tokenList - if (options.tokens) { - const tokenSource = tokens.tokenSource - tokenSource.reset() - - tokenList = buildTokenList(tokenSource.getAllTokens(), options) - } - - if (!options.tolerant && listener.hasErrors()) { - throw new ParserError({ errors: listener.getErrors() }) - } - - const visitor = new ASTBuilder(options) - const ast = visitor.visit(tree) - - if (options.tolerant && listener.hasErrors()) { - ast.errors = listener.getErrors() - } - if (options.tokens) { - ast.tokens = tokenList - } - - return ast -} - -function _isASTNode(node) { - return ( - !!node && - typeof node === 'object' && - Object.prototype.hasOwnProperty.call(node, 'type') - ) -} - -function visit(node, visitor) { - if (Array.isArray(node)) { - node.forEach(child => visit(child, visitor)) - } - - if (!_isASTNode(node)) return - - let cont = true - - if (visitor[node.type]) { - cont = visitor[node.type](node) - } - - if (cont === false) return - - for (const prop in node) { - if (Object.prototype.hasOwnProperty.call(node, prop)) { - visit(node[prop], visitor) - } - } - - const selector = node.type + ':exit' - if (visitor[selector]) { - visitor[selector](node) - } -} - -exports.tokenize = tokenize -exports.parse = parse -exports.visit = visit -exports.ParserError = ParserError diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..3d7dc0e --- /dev/null +++ b/src/index.ts @@ -0,0 +1,121 @@ +import SolidityLexer from './lib/SolidityLexer' +import SolidityParser from './lib/SolidityParser' +import { Token, ParseOptions, TokenizeOptions } from './types' +import { AST, BaseASTNode } from './ast-types' + +import antlr4 from 'antlr4' +import { buildTokenList } from './tokens' +import ASTBuilder from './ASTBuilder' +import ErrorListener from './ErrorListener' + +interface ParserErrorItem { + message: string + line: number + column: number +} +export class ParserError extends Error { + public errors: ParserErrorItem[] + + constructor(args: { errors: ParserErrorItem[] }) { + super() + const { message, line, column } = args.errors[0] + this.message = `${message} (${line}:${column})` + this.errors = args.errors + + if (Error.captureStackTrace !== undefined) { + Error.captureStackTrace(this, this.constructor) + } else { + this.stack = new Error().stack + } + } +} + +export function tokenize( + input: string, + options: TokenizeOptions = {} +): Token[] { + const chars = new antlr4.InputStream(input) + const lexer = new SolidityLexer(chars) + const tokens = new antlr4.CommonTokenStream(lexer) + + return buildTokenList(tokens.tokenSource.getAllTokens(), options) +} + +export function parse(input: string, options: ParseOptions = {}): AST { + const chars = new antlr4.InputStream(input) + + const listener = new ErrorListener() + + const lexer: any = new SolidityLexer(chars) + lexer.removeErrorListeners() + lexer.addErrorListener(listener) + + const tokens = new antlr4.CommonTokenStream(lexer) + + const parser: any = new SolidityParser(tokens) + + parser.removeErrorListeners() + parser.addErrorListener(listener) + parser.buildParseTrees = true + + const tree = parser.sourceUnit() + + let tokenList: Token[] = [] + if (options.tokens === true) { + const tokenSource = tokens.tokenSource + tokenSource.reset() + + tokenList = buildTokenList(tokenSource.getAllTokens(), options) + } + + if (options.tolerant !== true && listener.hasErrors()) { + throw new ParserError({ errors: listener.getErrors() }) + } + + const visitor = new ASTBuilder(options) + const ast = visitor.visit(tree) as AST + + if (options.tolerant === true && listener.hasErrors()) { + ast.errors = listener.getErrors() + } + if (options.tokens === true) { + ast.tokens = tokenList + } + + return ast +} + +function _isASTNode(node: any): node is BaseASTNode { + return ( + node !== null && + typeof node === 'object' && + Object.prototype.hasOwnProperty.call(node, 'type') + ) +} + +export function visit(node: any, visitor: any): void { + if (Array.isArray(node)) { + node.forEach((child) => visit(child, visitor)) + } + + if (!_isASTNode(node)) return + + let cont = true + + if (visitor[node.type] !== undefined) { + cont = visitor[node.type](node) + } + + if (cont === false) return + + for (const prop in node) { + if (Object.prototype.hasOwnProperty.call(node, prop)) { + visit((node as any)[prop], visitor) + } + } + + const selector = node.type + ':exit' + if (visitor[selector] !== undefined) { + visitor[selector](node) + } +} diff --git a/src/lib/SolidityLexer.js b/src/lib/SolidityLexer.js index f30bb2a..7d9ea13 100644 --- a/src/lib/SolidityLexer.js +++ b/src/lib/SolidityLexer.js @@ -1,1378 +1,1704 @@ -// Generated from antlr/Solidity.g4 by ANTLR 4.8 +// Generated from antlr/Solidity.g4 by ANTLR 4.9 // jshint ignore: start -import antlr4 from 'antlr4'; +import antlr4 from 'antlr4' +const serializedATN = [ + '\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786', + '\u5964\u0002\u0084\u071b\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003', + '\u0004\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007', + '\t\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004', + '\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010', + '\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013', + '\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017', + '\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a', + '\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e', + '\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004"\t"\u0004#', + "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004'\t'\u0004(\t(\u0004)\t)\u0004", + '*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004', + '1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004', + '8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004', + '?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004', + 'F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004', + 'M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004', + 'T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004', + '[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004', + 'b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004', + 'i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004', + 'p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004', + 'w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004', + '~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004', + '\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t', + '\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004', + '\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0003\u0002\u0003', + '\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003', + '\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003', + '\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\b\u0003', + '\b\u0003\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0003', + '\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003', + '\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e', + '\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011', + '\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012', + '\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0003\u0013', + '\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013', + '\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014', + '\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0015\u0003\u0015', + '\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015', + '\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017\u0003\u0018', + '\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019', + '\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001b', + '\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b', + '\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c', + '\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001d', + '\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d', + '\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e', + '\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f', + '\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003 \u0003 \u0003!\u0003', + '!\u0003"\u0003"\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003', + '#\u0003$\u0003$\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003', + "%\u0003&\u0003&\u0003&\u0003'\u0003'\u0003'\u0003'\u0003'\u0003", + "'\u0003'\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003", + ')\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003*\u0003', + '*\u0003*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003', + ',\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003', + '.\u0003.\u0003.\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003', + '/\u0003/\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u00031\u0003', + '1\u00031\u00032\u00032\u00032\u00032\u00032\u00032\u00033\u00033\u0003', + '3\u00033\u00033\u00034\u00034\u00034\u00034\u00035\u00035\u00035\u0003', + '5\u00035\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00037\u0003', + '7\u00037\u00037\u00037\u00038\u00038\u00038\u00039\u00039\u00039\u0003', + ':\u0003:\u0003:\u0003:\u0003;\u0003;\u0003<\u0003<\u0003=\u0003=\u0003', + '>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003?\u0003', + '?\u0003?\u0003?\u0003@\u0003@\u0003A\u0003A\u0003A\u0003B\u0003B\u0003', + 'C\u0003C\u0003D\u0003D\u0003D\u0003E\u0003E\u0003E\u0003F\u0003F\u0003', + 'G\u0003G\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003J\u0003J\u0003', + 'J\u0003K\u0003K\u0003K\u0003L\u0003L\u0003M\u0003M\u0003M\u0003N\u0003', + 'N\u0003N\u0003O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003P\u0003Q\u0003', + 'Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003S\u0003S\u0003S\u0003T\u0003', + 'T\u0003T\u0003U\u0003U\u0003U\u0003V\u0003V\u0003V\u0003W\u0003W\u0003', + 'W\u0003W\u0003X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003', + 'Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003[\u0003[\u0003[\u0003[\u0003[\u0003', + '\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003]\u0003', + ']\u0003]\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003', + '^\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003', + '`\u0003`\u0005`\u036c\n`\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003', + 'a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0005a\u0445', + '\na\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003', + 'b\u0005b\u0523\nb\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003', + 'c\u0003c\u0003c\u0003c\u0003c\u0006c\u0531\nc\rc\u000ec\u0532\u0003', + 'c\u0003c\u0006c\u0537\nc\rc\u000ec\u0538\u0005c\u053b\nc\u0003d\u0003', + 'd\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003', + 'd\u0003d\u0003d\u0006d\u054b\nd\rd\u000ed\u054c\u0003d\u0003d\u0006', + 'd\u0551\nd\rd\u000ed\u0552\u0005d\u0555\nd\u0003e\u0003e\u0003e\u0003', + 'e\u0003e\u0003e\u0003e\u0003e\u0003e\u0005e\u0560\ne\u0003f\u0003f\u0005', + 'f\u0564\nf\u0003f\u0003f\u0005f\u0568\nf\u0003f\u0003f\u0005f\u056c', + '\nf\u0003g\u0003g\u0005g\u0570\ng\u0003g\u0007g\u0573\ng\fg\u000eg\u0576', + '\u000bg\u0003h\u0003h\u0003h\u0003h\u0003i\u0003i\u0005i\u057e\ni\u0003', + 'i\u0007i\u0581\ni\fi\u000ei\u0584\u000bi\u0003j\u0003j\u0003j\u0003', + 'j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003', + 'j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003', + 'j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003', + 'j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003', + 'j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0005j\u05ba', + '\nj\u0003k\u0003k\u0003k\u0003k\u0003k\u0003k\u0005k\u05c2\nk\u0003', + 'k\u0003k\u0003k\u0005k\u05c7\nk\u0003k\u0005k\u05ca\nk\u0003l\u0003', + 'l\u0003l\u0003m\u0003m\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003', + 'n\u0003n\u0005n\u0629\nn\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003', + 'o\u0003o\u0003o\u0003o\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003', + 'q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003r\u0003', + 'r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003s\u0003', + 's\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003t\u0003', + 't\u0003t\u0003t\u0003t\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003', + 'u\u0003u\u0003u\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003', + 'v\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003', + 'x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003y\u0003y\u0003', + 'y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003z\u0003z\u0003z\u0003', + 'z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003', + '{\u0003|\u0003|\u0003|\u0003|\u0003|\u0003}\u0003}\u0003}\u0003}\u0003', + '}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003\u007f\u0003\u007f\u0003\u007f', + '\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f', + '\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u0080\u0003\u0080\u0003\u0080', + '\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080', + '\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081', + '\u0003\u0081\u0003\u0081\u0003\u0082\u0003\u0082\u0007\u0082\u06c4\n', + '\u0082\f\u0082\u000e\u0082\u06c7\u000b\u0082\u0003\u0083\u0003\u0083', + '\u0003\u0084\u0003\u0084\u0003\u0085\u0003\u0085\u0007\u0085\u06cf\n', + '\u0085\f\u0085\u000e\u0085\u06d2\u000b\u0085\u0003\u0085\u0003\u0085', + '\u0003\u0085\u0007\u0085\u06d7\n\u0085\f\u0085\u000e\u0085\u06da\u000b', + '\u0085\u0003\u0085\u0005\u0085\u06dd\n\u0085\u0003\u0086\u0003\u0086', + '\u0003\u0086\u0005\u0086\u06e2\n\u0086\u0003\u0087\u0003\u0087\u0003', + '\u0087\u0005\u0087\u06e7\n\u0087\u0003\u0088\u0006\u0088\u06ea\n\u0088', + '\r\u0088\u000e\u0088\u06eb\u0003\u0088\u0003\u0088\u0006\u0088\u06f0', + '\n\u0088\r\u0088\u000e\u0088\u06f1\u0003\u0088\u0003\u0088\u0006\u0088', + '\u06f6\n\u0088\r\u0088\u000e\u0088\u06f7\u0005\u0088\u06fa\n\u0088\u0003', + '\u0089\u0006\u0089\u06fd\n\u0089\r\u0089\u000e\u0089\u06fe\u0003\u0089', + '\u0003\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0007\u008a', + '\u0707\n\u008a\f\u008a\u000e\u008a\u070a\u000b\u008a\u0003\u008a\u0003', + '\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003\u008b\u0003', + '\u008b\u0003\u008b\u0007\u008b\u0715\n\u008b\f\u008b\u000e\u008b\u0718', + '\u000b\u008b\u0003\u008b\u0003\u008b\u0003\u0708\u0002\u008c\u0003\u0003', + '\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f\t\u0011\n\u0013', + '\u000b\u0015\f\u0017\r\u0019\u000e\u001b\u000f\u001d\u0010\u001f\u0011', + "!\u0012#\u0013%\u0014'\u0015)\u0016+\u0017-\u0018/\u00191\u001a3\u001b", + '5\u001c7\u001d9\u001e;\u001f= ?!A"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]0_1a', + '2c3e4g5i6k7m8o9q:s;u{?}@\u007fA\u0081B\u0083C\u0085D\u0087E\u0089', + 'F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009d', + 'P\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1', + 'Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5', + 'd\u00c7e\u00c9f\u00cbg\u00cd\u0002\u00cfh\u00d1\u0002\u00d3i\u00d5j', + '\u00d7\u0002\u00d9\u0002\u00dbk\u00ddl\u00dfm\u00e1n\u00e3o\u00e5p\u00e7', + 'q\u00e9r\u00ebs\u00edt\u00efu\u00f1v\u00f3w\u00f5x\u00f7y\u00f9z\u00fb', + '{\u00fd|\u00ff}\u0101~\u0103\u007f\u0105\u0002\u0107\u0002\u0109\u0080', + '\u010b\u0002\u010d\u0002\u010f\u0081\u0111\u0082\u0113\u0083\u0115\u0084', + '\u0003\u0002\f\u0003\u00022;\u0004\u0002GGgg\u0004\u0002ZZzz\u0005\u0002', + '2;CHch\u0006\u0002&&C\\aac|\u0007\u0002&&2;C\\aac|\u0006\u0002\f\f\u000f', + '\u000f$$^^\u0006\u0002\f\f\u000f\u000f))^^\u0005\u0002\u000b\f\u000e', + '\u000f""\u0004\u0002\f\f\u000f\u000f\u0002\u07a9\u0002\u0003\u0003', + '\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002\u0007\u0003', + '\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002\u000b\u0003', + '\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002\u0002\u000f\u0003', + '\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002\u0013\u0003', + '\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0002\u0017\u0003', + '\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002\u0002\u001b\u0003', + '\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002\u0002\u001f\u0003', + '\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002\u0002#\u0003\u0002', + "\u0002\u0002\u0002%\u0003\u0002\u0002\u0002\u0002'\u0003\u0002\u0002", + '\u0002\u0002)\u0003\u0002\u0002\u0002\u0002+\u0003\u0002\u0002\u0002', + '\u0002-\u0003\u0002\u0002\u0002\u0002/\u0003\u0002\u0002\u0002\u0002', + '1\u0003\u0002\u0002\u0002\u00023\u0003\u0002\u0002\u0002\u00025\u0003', + '\u0002\u0002\u0002\u00027\u0003\u0002\u0002\u0002\u00029\u0003\u0002', + '\u0002\u0002\u0002;\u0003\u0002\u0002\u0002\u0002=\u0003\u0002\u0002', + '\u0002\u0002?\u0003\u0002\u0002\u0002\u0002A\u0003\u0002\u0002\u0002', + '\u0002C\u0003\u0002\u0002\u0002\u0002E\u0003\u0002\u0002\u0002\u0002', + 'G\u0003\u0002\u0002\u0002\u0002I\u0003\u0002\u0002\u0002\u0002K\u0003', + '\u0002\u0002\u0002\u0002M\u0003\u0002\u0002\u0002\u0002O\u0003\u0002', + '\u0002\u0002\u0002Q\u0003\u0002\u0002\u0002\u0002S\u0003\u0002\u0002', + '\u0002\u0002U\u0003\u0002\u0002\u0002\u0002W\u0003\u0002\u0002\u0002', + '\u0002Y\u0003\u0002\u0002\u0002\u0002[\u0003\u0002\u0002\u0002\u0002', + ']\u0003\u0002\u0002\u0002\u0002_\u0003\u0002\u0002\u0002\u0002a\u0003', + '\u0002\u0002\u0002\u0002c\u0003\u0002\u0002\u0002\u0002e\u0003\u0002', + '\u0002\u0002\u0002g\u0003\u0002\u0002\u0002\u0002i\u0003\u0002\u0002', + '\u0002\u0002k\u0003\u0002\u0002\u0002\u0002m\u0003\u0002\u0002\u0002', + '\u0002o\u0003\u0002\u0002\u0002\u0002q\u0003\u0002\u0002\u0002\u0002', + 's\u0003\u0002\u0002\u0002\u0002u\u0003\u0002\u0002\u0002\u0002w\u0003', + '\u0002\u0002\u0002\u0002y\u0003\u0002\u0002\u0002\u0002{\u0003\u0002', + '\u0002\u0002\u0002}\u0003\u0002\u0002\u0002\u0002\u007f\u0003\u0002', + '\u0002\u0002\u0002\u0081\u0003\u0002\u0002\u0002\u0002\u0083\u0003\u0002', + '\u0002\u0002\u0002\u0085\u0003\u0002\u0002\u0002\u0002\u0087\u0003\u0002', + '\u0002\u0002\u0002\u0089\u0003\u0002\u0002\u0002\u0002\u008b\u0003\u0002', + '\u0002\u0002\u0002\u008d\u0003\u0002\u0002\u0002\u0002\u008f\u0003\u0002', + '\u0002\u0002\u0002\u0091\u0003\u0002\u0002\u0002\u0002\u0093\u0003\u0002', + '\u0002\u0002\u0002\u0095\u0003\u0002\u0002\u0002\u0002\u0097\u0003\u0002', + '\u0002\u0002\u0002\u0099\u0003\u0002\u0002\u0002\u0002\u009b\u0003\u0002', + '\u0002\u0002\u0002\u009d\u0003\u0002\u0002\u0002\u0002\u009f\u0003\u0002', + '\u0002\u0002\u0002\u00a1\u0003\u0002\u0002\u0002\u0002\u00a3\u0003\u0002', + '\u0002\u0002\u0002\u00a5\u0003\u0002\u0002\u0002\u0002\u00a7\u0003\u0002', + '\u0002\u0002\u0002\u00a9\u0003\u0002\u0002\u0002\u0002\u00ab\u0003\u0002', + '\u0002\u0002\u0002\u00ad\u0003\u0002\u0002\u0002\u0002\u00af\u0003\u0002', + '\u0002\u0002\u0002\u00b1\u0003\u0002\u0002\u0002\u0002\u00b3\u0003\u0002', + '\u0002\u0002\u0002\u00b5\u0003\u0002\u0002\u0002\u0002\u00b7\u0003\u0002', + '\u0002\u0002\u0002\u00b9\u0003\u0002\u0002\u0002\u0002\u00bb\u0003\u0002', + '\u0002\u0002\u0002\u00bd\u0003\u0002\u0002\u0002\u0002\u00bf\u0003\u0002', + '\u0002\u0002\u0002\u00c1\u0003\u0002\u0002\u0002\u0002\u00c3\u0003\u0002', + '\u0002\u0002\u0002\u00c5\u0003\u0002\u0002\u0002\u0002\u00c7\u0003\u0002', + '\u0002\u0002\u0002\u00c9\u0003\u0002\u0002\u0002\u0002\u00cb\u0003\u0002', + '\u0002\u0002\u0002\u00cf\u0003\u0002\u0002\u0002\u0002\u00d3\u0003\u0002', + '\u0002\u0002\u0002\u00d5\u0003\u0002\u0002\u0002\u0002\u00db\u0003\u0002', + '\u0002\u0002\u0002\u00dd\u0003\u0002\u0002\u0002\u0002\u00df\u0003\u0002', + '\u0002\u0002\u0002\u00e1\u0003\u0002\u0002\u0002\u0002\u00e3\u0003\u0002', + '\u0002\u0002\u0002\u00e5\u0003\u0002\u0002\u0002\u0002\u00e7\u0003\u0002', + '\u0002\u0002\u0002\u00e9\u0003\u0002\u0002\u0002\u0002\u00eb\u0003\u0002', + '\u0002\u0002\u0002\u00ed\u0003\u0002\u0002\u0002\u0002\u00ef\u0003\u0002', + '\u0002\u0002\u0002\u00f1\u0003\u0002\u0002\u0002\u0002\u00f3\u0003\u0002', + '\u0002\u0002\u0002\u00f5\u0003\u0002\u0002\u0002\u0002\u00f7\u0003\u0002', + '\u0002\u0002\u0002\u00f9\u0003\u0002\u0002\u0002\u0002\u00fb\u0003\u0002', + '\u0002\u0002\u0002\u00fd\u0003\u0002\u0002\u0002\u0002\u00ff\u0003\u0002', + '\u0002\u0002\u0002\u0101\u0003\u0002\u0002\u0002\u0002\u0103\u0003\u0002', + '\u0002\u0002\u0002\u0109\u0003\u0002\u0002\u0002\u0002\u010f\u0003\u0002', + '\u0002\u0002\u0002\u0111\u0003\u0002\u0002\u0002\u0002\u0113\u0003\u0002', + '\u0002\u0002\u0002\u0115\u0003\u0002\u0002\u0002\u0003\u0117\u0003\u0002', + '\u0002\u0002\u0005\u011e\u0003\u0002\u0002\u0002\u0007\u0120\u0003\u0002', + '\u0002\u0002\t\u0122\u0003\u0002\u0002\u0002\u000b\u0124\u0003\u0002', + '\u0002\u0002\r\u0127\u0003\u0002\u0002\u0002\u000f\u0129\u0003\u0002', + '\u0002\u0002\u0011\u012b\u0003\u0002\u0002\u0002\u0013\u012e\u0003\u0002', + '\u0002\u0002\u0015\u0130\u0003\u0002\u0002\u0002\u0017\u0133\u0003\u0002', + '\u0002\u0002\u0019\u013a\u0003\u0002\u0002\u0002\u001b\u013c\u0003\u0002', + '\u0002\u0002\u001d\u0141\u0003\u0002\u0002\u0002\u001f\u0143\u0003\u0002', + '\u0002\u0002!\u0145\u0003\u0002\u0002\u0002#\u0147\u0003\u0002\u0002', + "\u0002%\u0150\u0003\u0002\u0002\u0002'\u0159\u0003\u0002\u0002\u0002", + ')\u0163\u0003\u0002\u0002\u0002+\u016b\u0003\u0002\u0002\u0002-\u016e', + '\u0003\u0002\u0002\u0002/\u0170\u0003\u0002\u0002\u00021\u0172\u0003', + '\u0002\u0002\u00023\u0178\u0003\u0002\u0002\u00025\u017c\u0003\u0002', + '\u0002\u00027\u0183\u0003\u0002\u0002\u00029\u018c\u0003\u0002\u0002', + '\u0002;\u0195\u0003\u0002\u0002\u0002=\u019d\u0003\u0002\u0002\u0002', + '?\u01a3\u0003\u0002\u0002\u0002A\u01a8\u0003\u0002\u0002\u0002C\u01aa', + '\u0003\u0002\u0002\u0002E\u01ac\u0003\u0002\u0002\u0002G\u01b4\u0003', + '\u0002\u0002\u0002I\u01b6\u0003\u0002\u0002\u0002K\u01be\u0003\u0002', + '\u0002\u0002M\u01c1\u0003\u0002\u0002\u0002O\u01c8\u0003\u0002\u0002', + '\u0002Q\u01d0\u0003\u0002\u0002\u0002S\u01d9\u0003\u0002\u0002\u0002', + 'U\u01dc\u0003\u0002\u0002\u0002W\u01e1\u0003\u0002\u0002\u0002Y\u01e5', + '\u0003\u0002\u0002\u0002[\u01eb\u0003\u0002\u0002\u0002]\u01f1\u0003', + '\u0002\u0002\u0002_\u01fa\u0003\u0002\u0002\u0002a\u01fd\u0003\u0002', + '\u0002\u0002c\u0204\u0003\u0002\u0002\u0002e\u020a\u0003\u0002\u0002', + '\u0002g\u020f\u0003\u0002\u0002\u0002i\u0213\u0003\u0002\u0002\u0002', + 'k\u0218\u0003\u0002\u0002\u0002m\u021f\u0003\u0002\u0002\u0002o\u0224', + '\u0003\u0002\u0002\u0002q\u0227\u0003\u0002\u0002\u0002s\u022a\u0003', + '\u0002\u0002\u0002u\u022e\u0003\u0002\u0002\u0002w\u0230\u0003\u0002', + '\u0002\u0002y\u0232\u0003\u0002\u0002\u0002{\u0234\u0003\u0002\u0002', + '\u0002}\u023a\u0003\u0002\u0002\u0002\u007f\u0241\u0003\u0002\u0002', + '\u0002\u0081\u0243\u0003\u0002\u0002\u0002\u0083\u0246\u0003\u0002\u0002', + '\u0002\u0085\u0248\u0003\u0002\u0002\u0002\u0087\u024a\u0003\u0002\u0002', + '\u0002\u0089\u024d\u0003\u0002\u0002\u0002\u008b\u0250\u0003\u0002\u0002', + '\u0002\u008d\u0252\u0003\u0002\u0002\u0002\u008f\u0254\u0003\u0002\u0002', + '\u0002\u0091\u0257\u0003\u0002\u0002\u0002\u0093\u025a\u0003\u0002\u0002', + '\u0002\u0095\u025d\u0003\u0002\u0002\u0002\u0097\u0260\u0003\u0002\u0002', + '\u0002\u0099\u0262\u0003\u0002\u0002\u0002\u009b\u0265\u0003\u0002\u0002', + '\u0002\u009d\u0268\u0003\u0002\u0002\u0002\u009f\u026b\u0003\u0002\u0002', + '\u0002\u00a1\u026f\u0003\u0002\u0002\u0002\u00a3\u0273\u0003\u0002\u0002', + '\u0002\u00a5\u0276\u0003\u0002\u0002\u0002\u00a7\u0279\u0003\u0002\u0002', + '\u0002\u00a9\u027c\u0003\u0002\u0002\u0002\u00ab\u027f\u0003\u0002\u0002', + '\u0002\u00ad\u0282\u0003\u0002\u0002\u0002\u00af\u0286\u0003\u0002\u0002', + '\u0002\u00b1\u0289\u0003\u0002\u0002\u0002\u00b3\u028c\u0003\u0002\u0002', + '\u0002\u00b5\u0293\u0003\u0002\u0002\u0002\u00b7\u0298\u0003\u0002\u0002', + '\u0002\u00b9\u02a0\u0003\u0002\u0002\u0002\u00bb\u02a3\u0003\u0002\u0002', + '\u0002\u00bd\u02ac\u0003\u0002\u0002\u0002\u00bf\u036b\u0003\u0002\u0002', + '\u0002\u00c1\u0444\u0003\u0002\u0002\u0002\u00c3\u0522\u0003\u0002\u0002', + '\u0002\u00c5\u053a\u0003\u0002\u0002\u0002\u00c7\u0554\u0003\u0002\u0002', + '\u0002\u00c9\u055f\u0003\u0002\u0002\u0002\u00cb\u0567\u0003\u0002\u0002', + '\u0002\u00cd\u056d\u0003\u0002\u0002\u0002\u00cf\u0577\u0003\u0002\u0002', + '\u0002\u00d1\u057b\u0003\u0002\u0002\u0002\u00d3\u05b9\u0003\u0002\u0002', + '\u0002\u00d5\u05bb\u0003\u0002\u0002\u0002\u00d7\u05cb\u0003\u0002\u0002', + '\u0002\u00d9\u05ce\u0003\u0002\u0002\u0002\u00db\u0628\u0003\u0002\u0002', + '\u0002\u00dd\u062a\u0003\u0002\u0002\u0002\u00df\u0634\u0003\u0002\u0002', + '\u0002\u00e1\u063a\u0003\u0002\u0002\u0002\u00e3\u0643\u0003\u0002\u0002', + '\u0002\u00e5\u064d\u0003\u0002\u0002\u0002\u00e7\u0656\u0003\u0002\u0002', + '\u0002\u00e9\u065c\u0003\u0002\u0002\u0002\u00eb\u0665\u0003\u0002\u0002', + '\u0002\u00ed\u066d\u0003\u0002\u0002\u0002\u00ef\u0676\u0003\u0002\u0002', + '\u0002\u00f1\u067e\u0003\u0002\u0002\u0002\u00f3\u0686\u0003\u0002\u0002', + '\u0002\u00f5\u068d\u0003\u0002\u0002\u0002\u00f7\u0695\u0003\u0002\u0002', + '\u0002\u00f9\u069a\u0003\u0002\u0002\u0002\u00fb\u069f\u0003\u0002\u0002', + '\u0002\u00fd\u06a4\u0003\u0002\u0002\u0002\u00ff\u06b0\u0003\u0002\u0002', + '\u0002\u0101\u06b9\u0003\u0002\u0002\u0002\u0103\u06c1\u0003\u0002\u0002', + '\u0002\u0105\u06c8\u0003\u0002\u0002\u0002\u0107\u06ca\u0003\u0002\u0002', + '\u0002\u0109\u06dc\u0003\u0002\u0002\u0002\u010b\u06e1\u0003\u0002\u0002', + '\u0002\u010d\u06e6\u0003\u0002\u0002\u0002\u010f\u06e9\u0003\u0002\u0002', + '\u0002\u0111\u06fc\u0003\u0002\u0002\u0002\u0113\u0702\u0003\u0002\u0002', + '\u0002\u0115\u0710\u0003\u0002\u0002\u0002\u0117\u0118\u0007r\u0002', + '\u0002\u0118\u0119\u0007t\u0002\u0002\u0119\u011a\u0007c\u0002\u0002', + '\u011a\u011b\u0007i\u0002\u0002\u011b\u011c\u0007o\u0002\u0002\u011c', + '\u011d\u0007c\u0002\u0002\u011d\u0004\u0003\u0002\u0002\u0002\u011e', + '\u011f\u0007=\u0002\u0002\u011f\u0006\u0003\u0002\u0002\u0002\u0120', + '\u0121\u0007`\u0002\u0002\u0121\b\u0003\u0002\u0002\u0002\u0122\u0123', + '\u0007\u0080\u0002\u0002\u0123\n\u0003\u0002\u0002\u0002\u0124\u0125', + '\u0007@\u0002\u0002\u0125\u0126\u0007?\u0002\u0002\u0126\f\u0003\u0002', + '\u0002\u0002\u0127\u0128\u0007@\u0002\u0002\u0128\u000e\u0003\u0002', + '\u0002\u0002\u0129\u012a\u0007>\u0002\u0002\u012a\u0010\u0003\u0002', + '\u0002\u0002\u012b\u012c\u0007>\u0002\u0002\u012c\u012d\u0007?\u0002', + '\u0002\u012d\u0012\u0003\u0002\u0002\u0002\u012e\u012f\u0007?\u0002', + '\u0002\u012f\u0014\u0003\u0002\u0002\u0002\u0130\u0131\u0007c\u0002', + '\u0002\u0131\u0132\u0007u\u0002\u0002\u0132\u0016\u0003\u0002\u0002', + '\u0002\u0133\u0134\u0007k\u0002\u0002\u0134\u0135\u0007o\u0002\u0002', + '\u0135\u0136\u0007r\u0002\u0002\u0136\u0137\u0007q\u0002\u0002\u0137', + '\u0138\u0007t\u0002\u0002\u0138\u0139\u0007v\u0002\u0002\u0139\u0018', + '\u0003\u0002\u0002\u0002\u013a\u013b\u0007,\u0002\u0002\u013b\u001a', + '\u0003\u0002\u0002\u0002\u013c\u013d\u0007h\u0002\u0002\u013d\u013e', + '\u0007t\u0002\u0002\u013e\u013f\u0007q\u0002\u0002\u013f\u0140\u0007', + 'o\u0002\u0002\u0140\u001c\u0003\u0002\u0002\u0002\u0141\u0142\u0007', + '}\u0002\u0002\u0142\u001e\u0003\u0002\u0002\u0002\u0143\u0144\u0007', + '.\u0002\u0002\u0144 \u0003\u0002\u0002\u0002\u0145\u0146\u0007\u007f', + '\u0002\u0002\u0146"\u0003\u0002\u0002\u0002\u0147\u0148\u0007c\u0002', + '\u0002\u0148\u0149\u0007d\u0002\u0002\u0149\u014a\u0007u\u0002\u0002', + '\u014a\u014b\u0007v\u0002\u0002\u014b\u014c\u0007t\u0002\u0002\u014c', + '\u014d\u0007c\u0002\u0002\u014d\u014e\u0007e\u0002\u0002\u014e\u014f', + '\u0007v\u0002\u0002\u014f$\u0003\u0002\u0002\u0002\u0150\u0151\u0007', + 'e\u0002\u0002\u0151\u0152\u0007q\u0002\u0002\u0152\u0153\u0007p\u0002', + '\u0002\u0153\u0154\u0007v\u0002\u0002\u0154\u0155\u0007t\u0002\u0002', + '\u0155\u0156\u0007c\u0002\u0002\u0156\u0157\u0007e\u0002\u0002\u0157', + '\u0158\u0007v\u0002\u0002\u0158&\u0003\u0002\u0002\u0002\u0159\u015a', + '\u0007k\u0002\u0002\u015a\u015b\u0007p\u0002\u0002\u015b\u015c\u0007', + 'v\u0002\u0002\u015c\u015d\u0007g\u0002\u0002\u015d\u015e\u0007t\u0002', + '\u0002\u015e\u015f\u0007h\u0002\u0002\u015f\u0160\u0007c\u0002\u0002', + '\u0160\u0161\u0007e\u0002\u0002\u0161\u0162\u0007g\u0002\u0002\u0162', + '(\u0003\u0002\u0002\u0002\u0163\u0164\u0007n\u0002\u0002\u0164\u0165', + '\u0007k\u0002\u0002\u0165\u0166\u0007d\u0002\u0002\u0166\u0167\u0007', + 't\u0002\u0002\u0167\u0168\u0007c\u0002\u0002\u0168\u0169\u0007t\u0002', + '\u0002\u0169\u016a\u0007{\u0002\u0002\u016a*\u0003\u0002\u0002\u0002', + '\u016b\u016c\u0007k\u0002\u0002\u016c\u016d\u0007u\u0002\u0002\u016d', + ',\u0003\u0002\u0002\u0002\u016e\u016f\u0007*\u0002\u0002\u016f.\u0003', + '\u0002\u0002\u0002\u0170\u0171\u0007+\u0002\u0002\u01710\u0003\u0002', + '\u0002\u0002\u0172\u0173\u0007w\u0002\u0002\u0173\u0174\u0007u\u0002', + '\u0002\u0174\u0175\u0007k\u0002\u0002\u0175\u0176\u0007p\u0002\u0002', + '\u0176\u0177\u0007i\u0002\u0002\u01772\u0003\u0002\u0002\u0002\u0178', + '\u0179\u0007h\u0002\u0002\u0179\u017a\u0007q\u0002\u0002\u017a\u017b', + '\u0007t\u0002\u0002\u017b4\u0003\u0002\u0002\u0002\u017c\u017d\u0007', + 'u\u0002\u0002\u017d\u017e\u0007v\u0002\u0002\u017e\u017f\u0007t\u0002', + '\u0002\u017f\u0180\u0007w\u0002\u0002\u0180\u0181\u0007e\u0002\u0002', + '\u0181\u0182\u0007v\u0002\u0002\u01826\u0003\u0002\u0002\u0002\u0183', + '\u0184\u0007o\u0002\u0002\u0184\u0185\u0007q\u0002\u0002\u0185\u0186', + '\u0007f\u0002\u0002\u0186\u0187\u0007k\u0002\u0002\u0187\u0188\u0007', + 'h\u0002\u0002\u0188\u0189\u0007k\u0002\u0002\u0189\u018a\u0007g\u0002', + '\u0002\u018a\u018b\u0007t\u0002\u0002\u018b8\u0003\u0002\u0002\u0002', + '\u018c\u018d\u0007h\u0002\u0002\u018d\u018e\u0007w\u0002\u0002\u018e', + '\u018f\u0007p\u0002\u0002\u018f\u0190\u0007e\u0002\u0002\u0190\u0191', + '\u0007v\u0002\u0002\u0191\u0192\u0007k\u0002\u0002\u0192\u0193\u0007', + 'q\u0002\u0002\u0193\u0194\u0007p\u0002\u0002\u0194:\u0003\u0002\u0002', + '\u0002\u0195\u0196\u0007t\u0002\u0002\u0196\u0197\u0007g\u0002\u0002', + '\u0197\u0198\u0007v\u0002\u0002\u0198\u0199\u0007w\u0002\u0002\u0199', + '\u019a\u0007t\u0002\u0002\u019a\u019b\u0007p\u0002\u0002\u019b\u019c', + '\u0007u\u0002\u0002\u019c<\u0003\u0002\u0002\u0002\u019d\u019e\u0007', + 'g\u0002\u0002\u019e\u019f\u0007x\u0002\u0002\u019f\u01a0\u0007g\u0002', + '\u0002\u01a0\u01a1\u0007p\u0002\u0002\u01a1\u01a2\u0007v\u0002\u0002', + '\u01a2>\u0003\u0002\u0002\u0002\u01a3\u01a4\u0007g\u0002\u0002\u01a4', + '\u01a5\u0007p\u0002\u0002\u01a5\u01a6\u0007w\u0002\u0002\u01a6\u01a7', + '\u0007o\u0002\u0002\u01a7@\u0003\u0002\u0002\u0002\u01a8\u01a9\u0007', + ']\u0002\u0002\u01a9B\u0003\u0002\u0002\u0002\u01aa\u01ab\u0007_\u0002', + '\u0002\u01abD\u0003\u0002\u0002\u0002\u01ac\u01ad\u0007c\u0002\u0002', + '\u01ad\u01ae\u0007f\u0002\u0002\u01ae\u01af\u0007f\u0002\u0002\u01af', + '\u01b0\u0007t\u0002\u0002\u01b0\u01b1\u0007g\u0002\u0002\u01b1\u01b2', + '\u0007u\u0002\u0002\u01b2\u01b3\u0007u\u0002\u0002\u01b3F\u0003\u0002', + '\u0002\u0002\u01b4\u01b5\u00070\u0002\u0002\u01b5H\u0003\u0002\u0002', + '\u0002\u01b6\u01b7\u0007o\u0002\u0002\u01b7\u01b8\u0007c\u0002\u0002', + '\u01b8\u01b9\u0007r\u0002\u0002\u01b9\u01ba\u0007r\u0002\u0002\u01ba', + '\u01bb\u0007k\u0002\u0002\u01bb\u01bc\u0007p\u0002\u0002\u01bc\u01bd', + '\u0007i\u0002\u0002\u01bdJ\u0003\u0002\u0002\u0002\u01be\u01bf\u0007', + '?\u0002\u0002\u01bf\u01c0\u0007@\u0002\u0002\u01c0L\u0003\u0002\u0002', + '\u0002\u01c1\u01c2\u0007o\u0002\u0002\u01c2\u01c3\u0007g\u0002\u0002', + '\u01c3\u01c4\u0007o\u0002\u0002\u01c4\u01c5\u0007q\u0002\u0002\u01c5', + '\u01c6\u0007t\u0002\u0002\u01c6\u01c7\u0007{\u0002\u0002\u01c7N\u0003', + '\u0002\u0002\u0002\u01c8\u01c9\u0007u\u0002\u0002\u01c9\u01ca\u0007', + 'v\u0002\u0002\u01ca\u01cb\u0007q\u0002\u0002\u01cb\u01cc\u0007t\u0002', + '\u0002\u01cc\u01cd\u0007c\u0002\u0002\u01cd\u01ce\u0007i\u0002\u0002', + '\u01ce\u01cf\u0007g\u0002\u0002\u01cfP\u0003\u0002\u0002\u0002\u01d0', + '\u01d1\u0007e\u0002\u0002\u01d1\u01d2\u0007c\u0002\u0002\u01d2\u01d3', + '\u0007n\u0002\u0002\u01d3\u01d4\u0007n\u0002\u0002\u01d4\u01d5\u0007', + 'f\u0002\u0002\u01d5\u01d6\u0007c\u0002\u0002\u01d6\u01d7\u0007v\u0002', + '\u0002\u01d7\u01d8\u0007c\u0002\u0002\u01d8R\u0003\u0002\u0002\u0002', + '\u01d9\u01da\u0007k\u0002\u0002\u01da\u01db\u0007h\u0002\u0002\u01db', + 'T\u0003\u0002\u0002\u0002\u01dc\u01dd\u0007g\u0002\u0002\u01dd\u01de', + '\u0007n\u0002\u0002\u01de\u01df\u0007u\u0002\u0002\u01df\u01e0\u0007', + 'g\u0002\u0002\u01e0V\u0003\u0002\u0002\u0002\u01e1\u01e2\u0007v\u0002', + '\u0002\u01e2\u01e3\u0007t\u0002\u0002\u01e3\u01e4\u0007{\u0002\u0002', + '\u01e4X\u0003\u0002\u0002\u0002\u01e5\u01e6\u0007e\u0002\u0002\u01e6', + '\u01e7\u0007c\u0002\u0002\u01e7\u01e8\u0007v\u0002\u0002\u01e8\u01e9', + '\u0007e\u0002\u0002\u01e9\u01ea\u0007j\u0002\u0002\u01eaZ\u0003\u0002', + '\u0002\u0002\u01eb\u01ec\u0007y\u0002\u0002\u01ec\u01ed\u0007j\u0002', + '\u0002\u01ed\u01ee\u0007k\u0002\u0002\u01ee\u01ef\u0007n\u0002\u0002', + '\u01ef\u01f0\u0007g\u0002\u0002\u01f0\\\u0003\u0002\u0002\u0002\u01f1', + '\u01f2\u0007c\u0002\u0002\u01f2\u01f3\u0007u\u0002\u0002\u01f3\u01f4', + '\u0007u\u0002\u0002\u01f4\u01f5\u0007g\u0002\u0002\u01f5\u01f6\u0007', + 'o\u0002\u0002\u01f6\u01f7\u0007d\u0002\u0002\u01f7\u01f8\u0007n\u0002', + '\u0002\u01f8\u01f9\u0007{\u0002\u0002\u01f9^\u0003\u0002\u0002\u0002', + '\u01fa\u01fb\u0007f\u0002\u0002\u01fb\u01fc\u0007q\u0002\u0002\u01fc', + '`\u0003\u0002\u0002\u0002\u01fd\u01fe\u0007t\u0002\u0002\u01fe\u01ff', + '\u0007g\u0002\u0002\u01ff\u0200\u0007v\u0002\u0002\u0200\u0201\u0007', + 'w\u0002\u0002\u0201\u0202\u0007t\u0002\u0002\u0202\u0203\u0007p\u0002', + '\u0002\u0203b\u0003\u0002\u0002\u0002\u0204\u0205\u0007v\u0002\u0002', + '\u0205\u0206\u0007j\u0002\u0002\u0206\u0207\u0007t\u0002\u0002\u0207', + '\u0208\u0007q\u0002\u0002\u0208\u0209\u0007y\u0002\u0002\u0209d\u0003', + '\u0002\u0002\u0002\u020a\u020b\u0007g\u0002\u0002\u020b\u020c\u0007', + 'o\u0002\u0002\u020c\u020d\u0007k\u0002\u0002\u020d\u020e\u0007v\u0002', + '\u0002\u020ef\u0003\u0002\u0002\u0002\u020f\u0210\u0007x\u0002\u0002', + '\u0210\u0211\u0007c\u0002\u0002\u0211\u0212\u0007t\u0002\u0002\u0212', + 'h\u0003\u0002\u0002\u0002\u0213\u0214\u0007d\u0002\u0002\u0214\u0215', + '\u0007q\u0002\u0002\u0215\u0216\u0007q\u0002\u0002\u0216\u0217\u0007', + 'n\u0002\u0002\u0217j\u0003\u0002\u0002\u0002\u0218\u0219\u0007u\u0002', + '\u0002\u0219\u021a\u0007v\u0002\u0002\u021a\u021b\u0007t\u0002\u0002', + '\u021b\u021c\u0007k\u0002\u0002\u021c\u021d\u0007p\u0002\u0002\u021d', + '\u021e\u0007i\u0002\u0002\u021el\u0003\u0002\u0002\u0002\u021f\u0220', + '\u0007d\u0002\u0002\u0220\u0221\u0007{\u0002\u0002\u0221\u0222\u0007', + 'v\u0002\u0002\u0222\u0223\u0007g\u0002\u0002\u0223n\u0003\u0002\u0002', + '\u0002\u0224\u0225\u0007-\u0002\u0002\u0225\u0226\u0007-\u0002\u0002', + '\u0226p\u0003\u0002\u0002\u0002\u0227\u0228\u0007/\u0002\u0002\u0228', + '\u0229\u0007/\u0002\u0002\u0229r\u0003\u0002\u0002\u0002\u022a\u022b', + '\u0007p\u0002\u0002\u022b\u022c\u0007g\u0002\u0002\u022c\u022d\u0007', + 'y\u0002\u0002\u022dt\u0003\u0002\u0002\u0002\u022e\u022f\u0007<\u0002', + '\u0002\u022fv\u0003\u0002\u0002\u0002\u0230\u0231\u0007-\u0002\u0002', + '\u0231x\u0003\u0002\u0002\u0002\u0232\u0233\u0007/\u0002\u0002\u0233', + 'z\u0003\u0002\u0002\u0002\u0234\u0235\u0007c\u0002\u0002\u0235\u0236', + '\u0007h\u0002\u0002\u0236\u0237\u0007v\u0002\u0002\u0237\u0238\u0007', + 'g\u0002\u0002\u0238\u0239\u0007t\u0002\u0002\u0239|\u0003\u0002\u0002', + '\u0002\u023a\u023b\u0007f\u0002\u0002\u023b\u023c\u0007g\u0002\u0002', + '\u023c\u023d\u0007n\u0002\u0002\u023d\u023e\u0007g\u0002\u0002\u023e', + '\u023f\u0007v\u0002\u0002\u023f\u0240\u0007g\u0002\u0002\u0240~\u0003', + '\u0002\u0002\u0002\u0241\u0242\u0007#\u0002\u0002\u0242\u0080\u0003', + '\u0002\u0002\u0002\u0243\u0244\u0007,\u0002\u0002\u0244\u0245\u0007', + ',\u0002\u0002\u0245\u0082\u0003\u0002\u0002\u0002\u0246\u0247\u0007', + '1\u0002\u0002\u0247\u0084\u0003\u0002\u0002\u0002\u0248\u0249\u0007', + "'\u0002\u0002\u0249\u0086\u0003\u0002\u0002\u0002\u024a\u024b\u0007", + '>\u0002\u0002\u024b\u024c\u0007>\u0002\u0002\u024c\u0088\u0003\u0002', + '\u0002\u0002\u024d\u024e\u0007@\u0002\u0002\u024e\u024f\u0007@\u0002', + '\u0002\u024f\u008a\u0003\u0002\u0002\u0002\u0250\u0251\u0007(\u0002', + '\u0002\u0251\u008c\u0003\u0002\u0002\u0002\u0252\u0253\u0007~\u0002', + '\u0002\u0253\u008e\u0003\u0002\u0002\u0002\u0254\u0255\u0007?\u0002', + '\u0002\u0255\u0256\u0007?\u0002\u0002\u0256\u0090\u0003\u0002\u0002', + '\u0002\u0257\u0258\u0007#\u0002\u0002\u0258\u0259\u0007?\u0002\u0002', + '\u0259\u0092\u0003\u0002\u0002\u0002\u025a\u025b\u0007(\u0002\u0002', + '\u025b\u025c\u0007(\u0002\u0002\u025c\u0094\u0003\u0002\u0002\u0002', + '\u025d\u025e\u0007~\u0002\u0002\u025e\u025f\u0007~\u0002\u0002\u025f', + '\u0096\u0003\u0002\u0002\u0002\u0260\u0261\u0007A\u0002\u0002\u0261', + '\u0098\u0003\u0002\u0002\u0002\u0262\u0263\u0007~\u0002\u0002\u0263', + '\u0264\u0007?\u0002\u0002\u0264\u009a\u0003\u0002\u0002\u0002\u0265', + '\u0266\u0007`\u0002\u0002\u0266\u0267\u0007?\u0002\u0002\u0267\u009c', + '\u0003\u0002\u0002\u0002\u0268\u0269\u0007(\u0002\u0002\u0269\u026a', + '\u0007?\u0002\u0002\u026a\u009e\u0003\u0002\u0002\u0002\u026b\u026c', + '\u0007>\u0002\u0002\u026c\u026d\u0007>\u0002\u0002\u026d\u026e\u0007', + '?\u0002\u0002\u026e\u00a0\u0003\u0002\u0002\u0002\u026f\u0270\u0007', + '@\u0002\u0002\u0270\u0271\u0007@\u0002\u0002\u0271\u0272\u0007?\u0002', + '\u0002\u0272\u00a2\u0003\u0002\u0002\u0002\u0273\u0274\u0007-\u0002', + '\u0002\u0274\u0275\u0007?\u0002\u0002\u0275\u00a4\u0003\u0002\u0002', + '\u0002\u0276\u0277\u0007/\u0002\u0002\u0277\u0278\u0007?\u0002\u0002', + '\u0278\u00a6\u0003\u0002\u0002\u0002\u0279\u027a\u0007,\u0002\u0002', + '\u027a\u027b\u0007?\u0002\u0002\u027b\u00a8\u0003\u0002\u0002\u0002', + '\u027c\u027d\u00071\u0002\u0002\u027d\u027e\u0007?\u0002\u0002\u027e', + "\u00aa\u0003\u0002\u0002\u0002\u027f\u0280\u0007'\u0002\u0002\u0280", + '\u0281\u0007?\u0002\u0002\u0281\u00ac\u0003\u0002\u0002\u0002\u0282', + '\u0283\u0007n\u0002\u0002\u0283\u0284\u0007g\u0002\u0002\u0284\u0285', + '\u0007v\u0002\u0002\u0285\u00ae\u0003\u0002\u0002\u0002\u0286\u0287', + '\u0007<\u0002\u0002\u0287\u0288\u0007?\u0002\u0002\u0288\u00b0\u0003', + '\u0002\u0002\u0002\u0289\u028a\u0007?\u0002\u0002\u028a\u028b\u0007', + '<\u0002\u0002\u028b\u00b2\u0003\u0002\u0002\u0002\u028c\u028d\u0007', + 'u\u0002\u0002\u028d\u028e\u0007y\u0002\u0002\u028e\u028f\u0007k\u0002', + '\u0002\u028f\u0290\u0007v\u0002\u0002\u0290\u0291\u0007e\u0002\u0002', + '\u0291\u0292\u0007j\u0002\u0002\u0292\u00b4\u0003\u0002\u0002\u0002', + '\u0293\u0294\u0007e\u0002\u0002\u0294\u0295\u0007c\u0002\u0002\u0295', + '\u0296\u0007u\u0002\u0002\u0296\u0297\u0007g\u0002\u0002\u0297\u00b6', + '\u0003\u0002\u0002\u0002\u0298\u0299\u0007f\u0002\u0002\u0299\u029a', + '\u0007g\u0002\u0002\u029a\u029b\u0007h\u0002\u0002\u029b\u029c\u0007', + 'c\u0002\u0002\u029c\u029d\u0007w\u0002\u0002\u029d\u029e\u0007n\u0002', + '\u0002\u029e\u029f\u0007v\u0002\u0002\u029f\u00b8\u0003\u0002\u0002', + '\u0002\u02a0\u02a1\u0007/\u0002\u0002\u02a1\u02a2\u0007@\u0002\u0002', + '\u02a2\u00ba\u0003\u0002\u0002\u0002\u02a3\u02a4\u0007e\u0002\u0002', + '\u02a4\u02a5\u0007c\u0002\u0002\u02a5\u02a6\u0007n\u0002\u0002\u02a6', + '\u02a7\u0007n\u0002\u0002\u02a7\u02a8\u0007d\u0002\u0002\u02a8\u02a9', + '\u0007c\u0002\u0002\u02a9\u02aa\u0007e\u0002\u0002\u02aa\u02ab\u0007', + 'm\u0002\u0002\u02ab\u00bc\u0003\u0002\u0002\u0002\u02ac\u02ad\u0007', + 'q\u0002\u0002\u02ad\u02ae\u0007x\u0002\u0002\u02ae\u02af\u0007g\u0002', + '\u0002\u02af\u02b0\u0007t\u0002\u0002\u02b0\u02b1\u0007t\u0002\u0002', + '\u02b1\u02b2\u0007k\u0002\u0002\u02b2\u02b3\u0007f\u0002\u0002\u02b3', + '\u02b4\u0007g\u0002\u0002\u02b4\u00be\u0003\u0002\u0002\u0002\u02b5', + '\u02b6\u0007k\u0002\u0002\u02b6\u02b7\u0007p\u0002\u0002\u02b7\u036c', + '\u0007v\u0002\u0002\u02b8\u02b9\u0007k\u0002\u0002\u02b9\u02ba\u0007', + 'p\u0002\u0002\u02ba\u02bb\u0007v\u0002\u0002\u02bb\u036c\u0007:\u0002', + '\u0002\u02bc\u02bd\u0007k\u0002\u0002\u02bd\u02be\u0007p\u0002\u0002', + '\u02be\u02bf\u0007v\u0002\u0002\u02bf\u02c0\u00073\u0002\u0002\u02c0', + '\u036c\u00078\u0002\u0002\u02c1\u02c2\u0007k\u0002\u0002\u02c2\u02c3', + '\u0007p\u0002\u0002\u02c3\u02c4\u0007v\u0002\u0002\u02c4\u02c5\u0007', + '4\u0002\u0002\u02c5\u036c\u00076\u0002\u0002\u02c6\u02c7\u0007k\u0002', + '\u0002\u02c7\u02c8\u0007p\u0002\u0002\u02c8\u02c9\u0007v\u0002\u0002', + '\u02c9\u02ca\u00075\u0002\u0002\u02ca\u036c\u00074\u0002\u0002\u02cb', + '\u02cc\u0007k\u0002\u0002\u02cc\u02cd\u0007p\u0002\u0002\u02cd\u02ce', + '\u0007v\u0002\u0002\u02ce\u02cf\u00076\u0002\u0002\u02cf\u036c\u0007', + '2\u0002\u0002\u02d0\u02d1\u0007k\u0002\u0002\u02d1\u02d2\u0007p\u0002', + '\u0002\u02d2\u02d3\u0007v\u0002\u0002\u02d3\u02d4\u00076\u0002\u0002', + '\u02d4\u036c\u0007:\u0002\u0002\u02d5\u02d6\u0007k\u0002\u0002\u02d6', + '\u02d7\u0007p\u0002\u0002\u02d7\u02d8\u0007v\u0002\u0002\u02d8\u02d9', + '\u00077\u0002\u0002\u02d9\u036c\u00078\u0002\u0002\u02da\u02db\u0007', + 'k\u0002\u0002\u02db\u02dc\u0007p\u0002\u0002\u02dc\u02dd\u0007v\u0002', + '\u0002\u02dd\u02de\u00078\u0002\u0002\u02de\u036c\u00076\u0002\u0002', + '\u02df\u02e0\u0007k\u0002\u0002\u02e0\u02e1\u0007p\u0002\u0002\u02e1', + '\u02e2\u0007v\u0002\u0002\u02e2\u02e3\u00079\u0002\u0002\u02e3\u036c', + '\u00074\u0002\u0002\u02e4\u02e5\u0007k\u0002\u0002\u02e5\u02e6\u0007', + 'p\u0002\u0002\u02e6\u02e7\u0007v\u0002\u0002\u02e7\u02e8\u0007:\u0002', + '\u0002\u02e8\u036c\u00072\u0002\u0002\u02e9\u02ea\u0007k\u0002\u0002', + '\u02ea\u02eb\u0007p\u0002\u0002\u02eb\u02ec\u0007v\u0002\u0002\u02ec', + '\u02ed\u0007:\u0002\u0002\u02ed\u036c\u0007:\u0002\u0002\u02ee\u02ef', + '\u0007k\u0002\u0002\u02ef\u02f0\u0007p\u0002\u0002\u02f0\u02f1\u0007', + 'v\u0002\u0002\u02f1\u02f2\u0007;\u0002\u0002\u02f2\u036c\u00078\u0002', + '\u0002\u02f3\u02f4\u0007k\u0002\u0002\u02f4\u02f5\u0007p\u0002\u0002', + '\u02f5\u02f6\u0007v\u0002\u0002\u02f6\u02f7\u00073\u0002\u0002\u02f7', + '\u02f8\u00072\u0002\u0002\u02f8\u036c\u00076\u0002\u0002\u02f9\u02fa', + '\u0007k\u0002\u0002\u02fa\u02fb\u0007p\u0002\u0002\u02fb\u02fc\u0007', + 'v\u0002\u0002\u02fc\u02fd\u00073\u0002\u0002\u02fd\u02fe\u00073\u0002', + '\u0002\u02fe\u036c\u00074\u0002\u0002\u02ff\u0300\u0007k\u0002\u0002', + '\u0300\u0301\u0007p\u0002\u0002\u0301\u0302\u0007v\u0002\u0002\u0302', + '\u0303\u00073\u0002\u0002\u0303\u0304\u00074\u0002\u0002\u0304\u036c', + '\u00072\u0002\u0002\u0305\u0306\u0007k\u0002\u0002\u0306\u0307\u0007', + 'p\u0002\u0002\u0307\u0308\u0007v\u0002\u0002\u0308\u0309\u00073\u0002', + '\u0002\u0309\u030a\u00074\u0002\u0002\u030a\u036c\u0007:\u0002\u0002', + '\u030b\u030c\u0007k\u0002\u0002\u030c\u030d\u0007p\u0002\u0002\u030d', + '\u030e\u0007v\u0002\u0002\u030e\u030f\u00073\u0002\u0002\u030f\u0310', + '\u00075\u0002\u0002\u0310\u036c\u00078\u0002\u0002\u0311\u0312\u0007', + 'k\u0002\u0002\u0312\u0313\u0007p\u0002\u0002\u0313\u0314\u0007v\u0002', + '\u0002\u0314\u0315\u00073\u0002\u0002\u0315\u0316\u00076\u0002\u0002', + '\u0316\u036c\u00076\u0002\u0002\u0317\u0318\u0007k\u0002\u0002\u0318', + '\u0319\u0007p\u0002\u0002\u0319\u031a\u0007v\u0002\u0002\u031a\u031b', + '\u00073\u0002\u0002\u031b\u031c\u00077\u0002\u0002\u031c\u036c\u0007', + '4\u0002\u0002\u031d\u031e\u0007k\u0002\u0002\u031e\u031f\u0007p\u0002', + '\u0002\u031f\u0320\u0007v\u0002\u0002\u0320\u0321\u00073\u0002\u0002', + '\u0321\u0322\u00078\u0002\u0002\u0322\u036c\u00072\u0002\u0002\u0323', + '\u0324\u0007k\u0002\u0002\u0324\u0325\u0007p\u0002\u0002\u0325\u0326', + '\u0007v\u0002\u0002\u0326\u0327\u00073\u0002\u0002\u0327\u0328\u0007', + '8\u0002\u0002\u0328\u036c\u0007:\u0002\u0002\u0329\u032a\u0007k\u0002', + '\u0002\u032a\u032b\u0007p\u0002\u0002\u032b\u032c\u0007v\u0002\u0002', + '\u032c\u032d\u00073\u0002\u0002\u032d\u032e\u00079\u0002\u0002\u032e', + '\u036c\u00078\u0002\u0002\u032f\u0330\u0007k\u0002\u0002\u0330\u0331', + '\u0007p\u0002\u0002\u0331\u0332\u0007v\u0002\u0002\u0332\u0333\u0007', + '3\u0002\u0002\u0333\u0334\u0007:\u0002\u0002\u0334\u036c\u00076\u0002', + '\u0002\u0335\u0336\u0007k\u0002\u0002\u0336\u0337\u0007p\u0002\u0002', + '\u0337\u0338\u0007v\u0002\u0002\u0338\u0339\u00073\u0002\u0002\u0339', + '\u033a\u0007;\u0002\u0002\u033a\u036c\u00074\u0002\u0002\u033b\u033c', + '\u0007k\u0002\u0002\u033c\u033d\u0007p\u0002\u0002\u033d\u033e\u0007', + 'v\u0002\u0002\u033e\u033f\u00074\u0002\u0002\u033f\u0340\u00072\u0002', + '\u0002\u0340\u036c\u00072\u0002\u0002\u0341\u0342\u0007k\u0002\u0002', + '\u0342\u0343\u0007p\u0002\u0002\u0343\u0344\u0007v\u0002\u0002\u0344', + '\u0345\u00074\u0002\u0002\u0345\u0346\u00072\u0002\u0002\u0346\u036c', + '\u0007:\u0002\u0002\u0347\u0348\u0007k\u0002\u0002\u0348\u0349\u0007', + 'p\u0002\u0002\u0349\u034a\u0007v\u0002\u0002\u034a\u034b\u00074\u0002', + '\u0002\u034b\u034c\u00073\u0002\u0002\u034c\u036c\u00078\u0002\u0002', + '\u034d\u034e\u0007k\u0002\u0002\u034e\u034f\u0007p\u0002\u0002\u034f', + '\u0350\u0007v\u0002\u0002\u0350\u0351\u00074\u0002\u0002\u0351\u0352', + '\u00074\u0002\u0002\u0352\u036c\u00076\u0002\u0002\u0353\u0354\u0007', + 'k\u0002\u0002\u0354\u0355\u0007p\u0002\u0002\u0355\u0356\u0007v\u0002', + '\u0002\u0356\u0357\u00074\u0002\u0002\u0357\u0358\u00075\u0002\u0002', + '\u0358\u036c\u00074\u0002\u0002\u0359\u035a\u0007k\u0002\u0002\u035a', + '\u035b\u0007p\u0002\u0002\u035b\u035c\u0007v\u0002\u0002\u035c\u035d', + '\u00074\u0002\u0002\u035d\u035e\u00076\u0002\u0002\u035e\u036c\u0007', + '2\u0002\u0002\u035f\u0360\u0007k\u0002\u0002\u0360\u0361\u0007p\u0002', + '\u0002\u0361\u0362\u0007v\u0002\u0002\u0362\u0363\u00074\u0002\u0002', + '\u0363\u0364\u00076\u0002\u0002\u0364\u036c\u0007:\u0002\u0002\u0365', + '\u0366\u0007k\u0002\u0002\u0366\u0367\u0007p\u0002\u0002\u0367\u0368', + '\u0007v\u0002\u0002\u0368\u0369\u00074\u0002\u0002\u0369\u036a\u0007', + '7\u0002\u0002\u036a\u036c\u00078\u0002\u0002\u036b\u02b5\u0003\u0002', + '\u0002\u0002\u036b\u02b8\u0003\u0002\u0002\u0002\u036b\u02bc\u0003\u0002', + '\u0002\u0002\u036b\u02c1\u0003\u0002\u0002\u0002\u036b\u02c6\u0003\u0002', + '\u0002\u0002\u036b\u02cb\u0003\u0002\u0002\u0002\u036b\u02d0\u0003\u0002', + '\u0002\u0002\u036b\u02d5\u0003\u0002\u0002\u0002\u036b\u02da\u0003\u0002', + '\u0002\u0002\u036b\u02df\u0003\u0002\u0002\u0002\u036b\u02e4\u0003\u0002', + '\u0002\u0002\u036b\u02e9\u0003\u0002\u0002\u0002\u036b\u02ee\u0003\u0002', + '\u0002\u0002\u036b\u02f3\u0003\u0002\u0002\u0002\u036b\u02f9\u0003\u0002', + '\u0002\u0002\u036b\u02ff\u0003\u0002\u0002\u0002\u036b\u0305\u0003\u0002', + '\u0002\u0002\u036b\u030b\u0003\u0002\u0002\u0002\u036b\u0311\u0003\u0002', + '\u0002\u0002\u036b\u0317\u0003\u0002\u0002\u0002\u036b\u031d\u0003\u0002', + '\u0002\u0002\u036b\u0323\u0003\u0002\u0002\u0002\u036b\u0329\u0003\u0002', + '\u0002\u0002\u036b\u032f\u0003\u0002\u0002\u0002\u036b\u0335\u0003\u0002', + '\u0002\u0002\u036b\u033b\u0003\u0002\u0002\u0002\u036b\u0341\u0003\u0002', + '\u0002\u0002\u036b\u0347\u0003\u0002\u0002\u0002\u036b\u034d\u0003\u0002', + '\u0002\u0002\u036b\u0353\u0003\u0002\u0002\u0002\u036b\u0359\u0003\u0002', + '\u0002\u0002\u036b\u035f\u0003\u0002\u0002\u0002\u036b\u0365\u0003\u0002', + '\u0002\u0002\u036c\u00c0\u0003\u0002\u0002\u0002\u036d\u036e\u0007w', + '\u0002\u0002\u036e\u036f\u0007k\u0002\u0002\u036f\u0370\u0007p\u0002', + '\u0002\u0370\u0445\u0007v\u0002\u0002\u0371\u0372\u0007w\u0002\u0002', + '\u0372\u0373\u0007k\u0002\u0002\u0373\u0374\u0007p\u0002\u0002\u0374', + '\u0375\u0007v\u0002\u0002\u0375\u0445\u0007:\u0002\u0002\u0376\u0377', + '\u0007w\u0002\u0002\u0377\u0378\u0007k\u0002\u0002\u0378\u0379\u0007', + 'p\u0002\u0002\u0379\u037a\u0007v\u0002\u0002\u037a\u037b\u00073\u0002', + '\u0002\u037b\u0445\u00078\u0002\u0002\u037c\u037d\u0007w\u0002\u0002', + '\u037d\u037e\u0007k\u0002\u0002\u037e\u037f\u0007p\u0002\u0002\u037f', + '\u0380\u0007v\u0002\u0002\u0380\u0381\u00074\u0002\u0002\u0381\u0445', + '\u00076\u0002\u0002\u0382\u0383\u0007w\u0002\u0002\u0383\u0384\u0007', + 'k\u0002\u0002\u0384\u0385\u0007p\u0002\u0002\u0385\u0386\u0007v\u0002', + '\u0002\u0386\u0387\u00075\u0002\u0002\u0387\u0445\u00074\u0002\u0002', + '\u0388\u0389\u0007w\u0002\u0002\u0389\u038a\u0007k\u0002\u0002\u038a', + '\u038b\u0007p\u0002\u0002\u038b\u038c\u0007v\u0002\u0002\u038c\u038d', + '\u00076\u0002\u0002\u038d\u0445\u00072\u0002\u0002\u038e\u038f\u0007', + 'w\u0002\u0002\u038f\u0390\u0007k\u0002\u0002\u0390\u0391\u0007p\u0002', + '\u0002\u0391\u0392\u0007v\u0002\u0002\u0392\u0393\u00076\u0002\u0002', + '\u0393\u0445\u0007:\u0002\u0002\u0394\u0395\u0007w\u0002\u0002\u0395', + '\u0396\u0007k\u0002\u0002\u0396\u0397\u0007p\u0002\u0002\u0397\u0398', + '\u0007v\u0002\u0002\u0398\u0399\u00077\u0002\u0002\u0399\u0445\u0007', + '8\u0002\u0002\u039a\u039b\u0007w\u0002\u0002\u039b\u039c\u0007k\u0002', + '\u0002\u039c\u039d\u0007p\u0002\u0002\u039d\u039e\u0007v\u0002\u0002', + '\u039e\u039f\u00078\u0002\u0002\u039f\u0445\u00076\u0002\u0002\u03a0', + '\u03a1\u0007w\u0002\u0002\u03a1\u03a2\u0007k\u0002\u0002\u03a2\u03a3', + '\u0007p\u0002\u0002\u03a3\u03a4\u0007v\u0002\u0002\u03a4\u03a5\u0007', + '9\u0002\u0002\u03a5\u0445\u00074\u0002\u0002\u03a6\u03a7\u0007w\u0002', + '\u0002\u03a7\u03a8\u0007k\u0002\u0002\u03a8\u03a9\u0007p\u0002\u0002', + '\u03a9\u03aa\u0007v\u0002\u0002\u03aa\u03ab\u0007:\u0002\u0002\u03ab', + '\u0445\u00072\u0002\u0002\u03ac\u03ad\u0007w\u0002\u0002\u03ad\u03ae', + '\u0007k\u0002\u0002\u03ae\u03af\u0007p\u0002\u0002\u03af\u03b0\u0007', + 'v\u0002\u0002\u03b0\u03b1\u0007:\u0002\u0002\u03b1\u0445\u0007:\u0002', + '\u0002\u03b2\u03b3\u0007w\u0002\u0002\u03b3\u03b4\u0007k\u0002\u0002', + '\u03b4\u03b5\u0007p\u0002\u0002\u03b5\u03b6\u0007v\u0002\u0002\u03b6', + '\u03b7\u0007;\u0002\u0002\u03b7\u0445\u00078\u0002\u0002\u03b8\u03b9', + '\u0007w\u0002\u0002\u03b9\u03ba\u0007k\u0002\u0002\u03ba\u03bb\u0007', + 'p\u0002\u0002\u03bb\u03bc\u0007v\u0002\u0002\u03bc\u03bd\u00073\u0002', + '\u0002\u03bd\u03be\u00072\u0002\u0002\u03be\u0445\u00076\u0002\u0002', + '\u03bf\u03c0\u0007w\u0002\u0002\u03c0\u03c1\u0007k\u0002\u0002\u03c1', + '\u03c2\u0007p\u0002\u0002\u03c2\u03c3\u0007v\u0002\u0002\u03c3\u03c4', + '\u00073\u0002\u0002\u03c4\u03c5\u00073\u0002\u0002\u03c5\u0445\u0007', + '4\u0002\u0002\u03c6\u03c7\u0007w\u0002\u0002\u03c7\u03c8\u0007k\u0002', + '\u0002\u03c8\u03c9\u0007p\u0002\u0002\u03c9\u03ca\u0007v\u0002\u0002', + '\u03ca\u03cb\u00073\u0002\u0002\u03cb\u03cc\u00074\u0002\u0002\u03cc', + '\u0445\u00072\u0002\u0002\u03cd\u03ce\u0007w\u0002\u0002\u03ce\u03cf', + '\u0007k\u0002\u0002\u03cf\u03d0\u0007p\u0002\u0002\u03d0\u03d1\u0007', + 'v\u0002\u0002\u03d1\u03d2\u00073\u0002\u0002\u03d2\u03d3\u00074\u0002', + '\u0002\u03d3\u0445\u0007:\u0002\u0002\u03d4\u03d5\u0007w\u0002\u0002', + '\u03d5\u03d6\u0007k\u0002\u0002\u03d6\u03d7\u0007p\u0002\u0002\u03d7', + '\u03d8\u0007v\u0002\u0002\u03d8\u03d9\u00073\u0002\u0002\u03d9\u03da', + '\u00075\u0002\u0002\u03da\u0445\u00078\u0002\u0002\u03db\u03dc\u0007', + 'w\u0002\u0002\u03dc\u03dd\u0007k\u0002\u0002\u03dd\u03de\u0007p\u0002', + '\u0002\u03de\u03df\u0007v\u0002\u0002\u03df\u03e0\u00073\u0002\u0002', + '\u03e0\u03e1\u00076\u0002\u0002\u03e1\u0445\u00076\u0002\u0002\u03e2', + '\u03e3\u0007w\u0002\u0002\u03e3\u03e4\u0007k\u0002\u0002\u03e4\u03e5', + '\u0007p\u0002\u0002\u03e5\u03e6\u0007v\u0002\u0002\u03e6\u03e7\u0007', + '3\u0002\u0002\u03e7\u03e8\u00077\u0002\u0002\u03e8\u0445\u00074\u0002', + '\u0002\u03e9\u03ea\u0007w\u0002\u0002\u03ea\u03eb\u0007k\u0002\u0002', + '\u03eb\u03ec\u0007p\u0002\u0002\u03ec\u03ed\u0007v\u0002\u0002\u03ed', + '\u03ee\u00073\u0002\u0002\u03ee\u03ef\u00078\u0002\u0002\u03ef\u0445', + '\u00072\u0002\u0002\u03f0\u03f1\u0007w\u0002\u0002\u03f1\u03f2\u0007', + 'k\u0002\u0002\u03f2\u03f3\u0007p\u0002\u0002\u03f3\u03f4\u0007v\u0002', + '\u0002\u03f4\u03f5\u00073\u0002\u0002\u03f5\u03f6\u00078\u0002\u0002', + '\u03f6\u0445\u0007:\u0002\u0002\u03f7\u03f8\u0007w\u0002\u0002\u03f8', + '\u03f9\u0007k\u0002\u0002\u03f9\u03fa\u0007p\u0002\u0002\u03fa\u03fb', + '\u0007v\u0002\u0002\u03fb\u03fc\u00073\u0002\u0002\u03fc\u03fd\u0007', + '9\u0002\u0002\u03fd\u0445\u00078\u0002\u0002\u03fe\u03ff\u0007w\u0002', + '\u0002\u03ff\u0400\u0007k\u0002\u0002\u0400\u0401\u0007p\u0002\u0002', + '\u0401\u0402\u0007v\u0002\u0002\u0402\u0403\u00073\u0002\u0002\u0403', + '\u0404\u0007:\u0002\u0002\u0404\u0445\u00076\u0002\u0002\u0405\u0406', + '\u0007w\u0002\u0002\u0406\u0407\u0007k\u0002\u0002\u0407\u0408\u0007', + 'p\u0002\u0002\u0408\u0409\u0007v\u0002\u0002\u0409\u040a\u00073\u0002', + '\u0002\u040a\u040b\u0007;\u0002\u0002\u040b\u0445\u00074\u0002\u0002', + '\u040c\u040d\u0007w\u0002\u0002\u040d\u040e\u0007k\u0002\u0002\u040e', + '\u040f\u0007p\u0002\u0002\u040f\u0410\u0007v\u0002\u0002\u0410\u0411', + '\u00074\u0002\u0002\u0411\u0412\u00072\u0002\u0002\u0412\u0445\u0007', + '2\u0002\u0002\u0413\u0414\u0007w\u0002\u0002\u0414\u0415\u0007k\u0002', + '\u0002\u0415\u0416\u0007p\u0002\u0002\u0416\u0417\u0007v\u0002\u0002', + '\u0417\u0418\u00074\u0002\u0002\u0418\u0419\u00072\u0002\u0002\u0419', + '\u0445\u0007:\u0002\u0002\u041a\u041b\u0007w\u0002\u0002\u041b\u041c', + '\u0007k\u0002\u0002\u041c\u041d\u0007p\u0002\u0002\u041d\u041e\u0007', + 'v\u0002\u0002\u041e\u041f\u00074\u0002\u0002\u041f\u0420\u00073\u0002', + '\u0002\u0420\u0445\u00078\u0002\u0002\u0421\u0422\u0007w\u0002\u0002', + '\u0422\u0423\u0007k\u0002\u0002\u0423\u0424\u0007p\u0002\u0002\u0424', + '\u0425\u0007v\u0002\u0002\u0425\u0426\u00074\u0002\u0002\u0426\u0427', + '\u00074\u0002\u0002\u0427\u0445\u00076\u0002\u0002\u0428\u0429\u0007', + 'w\u0002\u0002\u0429\u042a\u0007k\u0002\u0002\u042a\u042b\u0007p\u0002', + '\u0002\u042b\u042c\u0007v\u0002\u0002\u042c\u042d\u00074\u0002\u0002', + '\u042d\u042e\u00075\u0002\u0002\u042e\u0445\u00074\u0002\u0002\u042f', + '\u0430\u0007w\u0002\u0002\u0430\u0431\u0007k\u0002\u0002\u0431\u0432', + '\u0007p\u0002\u0002\u0432\u0433\u0007v\u0002\u0002\u0433\u0434\u0007', + '4\u0002\u0002\u0434\u0435\u00076\u0002\u0002\u0435\u0445\u00072\u0002', + '\u0002\u0436\u0437\u0007w\u0002\u0002\u0437\u0438\u0007k\u0002\u0002', + '\u0438\u0439\u0007p\u0002\u0002\u0439\u043a\u0007v\u0002\u0002\u043a', + '\u043b\u00074\u0002\u0002\u043b\u043c\u00076\u0002\u0002\u043c\u0445', + '\u0007:\u0002\u0002\u043d\u043e\u0007w\u0002\u0002\u043e\u043f\u0007', + 'k\u0002\u0002\u043f\u0440\u0007p\u0002\u0002\u0440\u0441\u0007v\u0002', + '\u0002\u0441\u0442\u00074\u0002\u0002\u0442\u0443\u00077\u0002\u0002', + '\u0443\u0445\u00078\u0002\u0002\u0444\u036d\u0003\u0002\u0002\u0002', + '\u0444\u0371\u0003\u0002\u0002\u0002\u0444\u0376\u0003\u0002\u0002\u0002', + '\u0444\u037c\u0003\u0002\u0002\u0002\u0444\u0382\u0003\u0002\u0002\u0002', + '\u0444\u0388\u0003\u0002\u0002\u0002\u0444\u038e\u0003\u0002\u0002\u0002', + '\u0444\u0394\u0003\u0002\u0002\u0002\u0444\u039a\u0003\u0002\u0002\u0002', + '\u0444\u03a0\u0003\u0002\u0002\u0002\u0444\u03a6\u0003\u0002\u0002\u0002', + '\u0444\u03ac\u0003\u0002\u0002\u0002\u0444\u03b2\u0003\u0002\u0002\u0002', + '\u0444\u03b8\u0003\u0002\u0002\u0002\u0444\u03bf\u0003\u0002\u0002\u0002', + '\u0444\u03c6\u0003\u0002\u0002\u0002\u0444\u03cd\u0003\u0002\u0002\u0002', + '\u0444\u03d4\u0003\u0002\u0002\u0002\u0444\u03db\u0003\u0002\u0002\u0002', + '\u0444\u03e2\u0003\u0002\u0002\u0002\u0444\u03e9\u0003\u0002\u0002\u0002', + '\u0444\u03f0\u0003\u0002\u0002\u0002\u0444\u03f7\u0003\u0002\u0002\u0002', + '\u0444\u03fe\u0003\u0002\u0002\u0002\u0444\u0405\u0003\u0002\u0002\u0002', + '\u0444\u040c\u0003\u0002\u0002\u0002\u0444\u0413\u0003\u0002\u0002\u0002', + '\u0444\u041a\u0003\u0002\u0002\u0002\u0444\u0421\u0003\u0002\u0002\u0002', + '\u0444\u0428\u0003\u0002\u0002\u0002\u0444\u042f\u0003\u0002\u0002\u0002', + '\u0444\u0436\u0003\u0002\u0002\u0002\u0444\u043d\u0003\u0002\u0002\u0002', + '\u0445\u00c2\u0003\u0002\u0002\u0002\u0446\u0447\u0007d\u0002\u0002', + '\u0447\u0448\u0007{\u0002\u0002\u0448\u0449\u0007v\u0002\u0002\u0449', + '\u044a\u0007g\u0002\u0002\u044a\u0523\u0007u\u0002\u0002\u044b\u044c', + '\u0007d\u0002\u0002\u044c\u044d\u0007{\u0002\u0002\u044d\u044e\u0007', + 'v\u0002\u0002\u044e\u044f\u0007g\u0002\u0002\u044f\u0450\u0007u\u0002', + '\u0002\u0450\u0523\u00073\u0002\u0002\u0451\u0452\u0007d\u0002\u0002', + '\u0452\u0453\u0007{\u0002\u0002\u0453\u0454\u0007v\u0002\u0002\u0454', + '\u0455\u0007g\u0002\u0002\u0455\u0456\u0007u\u0002\u0002\u0456\u0523', + '\u00074\u0002\u0002\u0457\u0458\u0007d\u0002\u0002\u0458\u0459\u0007', + '{\u0002\u0002\u0459\u045a\u0007v\u0002\u0002\u045a\u045b\u0007g\u0002', + '\u0002\u045b\u045c\u0007u\u0002\u0002\u045c\u0523\u00075\u0002\u0002', + '\u045d\u045e\u0007d\u0002\u0002\u045e\u045f\u0007{\u0002\u0002\u045f', + '\u0460\u0007v\u0002\u0002\u0460\u0461\u0007g\u0002\u0002\u0461\u0462', + '\u0007u\u0002\u0002\u0462\u0523\u00076\u0002\u0002\u0463\u0464\u0007', + 'd\u0002\u0002\u0464\u0465\u0007{\u0002\u0002\u0465\u0466\u0007v\u0002', + '\u0002\u0466\u0467\u0007g\u0002\u0002\u0467\u0468\u0007u\u0002\u0002', + '\u0468\u0523\u00077\u0002\u0002\u0469\u046a\u0007d\u0002\u0002\u046a', + '\u046b\u0007{\u0002\u0002\u046b\u046c\u0007v\u0002\u0002\u046c\u046d', + '\u0007g\u0002\u0002\u046d\u046e\u0007u\u0002\u0002\u046e\u0523\u0007', + '8\u0002\u0002\u046f\u0470\u0007d\u0002\u0002\u0470\u0471\u0007{\u0002', + '\u0002\u0471\u0472\u0007v\u0002\u0002\u0472\u0473\u0007g\u0002\u0002', + '\u0473\u0474\u0007u\u0002\u0002\u0474\u0523\u00079\u0002\u0002\u0475', + '\u0476\u0007d\u0002\u0002\u0476\u0477\u0007{\u0002\u0002\u0477\u0478', + '\u0007v\u0002\u0002\u0478\u0479\u0007g\u0002\u0002\u0479\u047a\u0007', + 'u\u0002\u0002\u047a\u0523\u0007:\u0002\u0002\u047b\u047c\u0007d\u0002', + '\u0002\u047c\u047d\u0007{\u0002\u0002\u047d\u047e\u0007v\u0002\u0002', + '\u047e\u047f\u0007g\u0002\u0002\u047f\u0480\u0007u\u0002\u0002\u0480', + '\u0523\u0007;\u0002\u0002\u0481\u0482\u0007d\u0002\u0002\u0482\u0483', + '\u0007{\u0002\u0002\u0483\u0484\u0007v\u0002\u0002\u0484\u0485\u0007', + 'g\u0002\u0002\u0485\u0486\u0007u\u0002\u0002\u0486\u0487\u00073\u0002', + '\u0002\u0487\u0523\u00072\u0002\u0002\u0488\u0489\u0007d\u0002\u0002', + '\u0489\u048a\u0007{\u0002\u0002\u048a\u048b\u0007v\u0002\u0002\u048b', + '\u048c\u0007g\u0002\u0002\u048c\u048d\u0007u\u0002\u0002\u048d\u048e', + '\u00073\u0002\u0002\u048e\u0523\u00073\u0002\u0002\u048f\u0490\u0007', + 'd\u0002\u0002\u0490\u0491\u0007{\u0002\u0002\u0491\u0492\u0007v\u0002', + '\u0002\u0492\u0493\u0007g\u0002\u0002\u0493\u0494\u0007u\u0002\u0002', + '\u0494\u0495\u00073\u0002\u0002\u0495\u0523\u00074\u0002\u0002\u0496', + '\u0497\u0007d\u0002\u0002\u0497\u0498\u0007{\u0002\u0002\u0498\u0499', + '\u0007v\u0002\u0002\u0499\u049a\u0007g\u0002\u0002\u049a\u049b\u0007', + 'u\u0002\u0002\u049b\u049c\u00073\u0002\u0002\u049c\u0523\u00075\u0002', + '\u0002\u049d\u049e\u0007d\u0002\u0002\u049e\u049f\u0007{\u0002\u0002', + '\u049f\u04a0\u0007v\u0002\u0002\u04a0\u04a1\u0007g\u0002\u0002\u04a1', + '\u04a2\u0007u\u0002\u0002\u04a2\u04a3\u00073\u0002\u0002\u04a3\u0523', + '\u00076\u0002\u0002\u04a4\u04a5\u0007d\u0002\u0002\u04a5\u04a6\u0007', + '{\u0002\u0002\u04a6\u04a7\u0007v\u0002\u0002\u04a7\u04a8\u0007g\u0002', + '\u0002\u04a8\u04a9\u0007u\u0002\u0002\u04a9\u04aa\u00073\u0002\u0002', + '\u04aa\u0523\u00077\u0002\u0002\u04ab\u04ac\u0007d\u0002\u0002\u04ac', + '\u04ad\u0007{\u0002\u0002\u04ad\u04ae\u0007v\u0002\u0002\u04ae\u04af', + '\u0007g\u0002\u0002\u04af\u04b0\u0007u\u0002\u0002\u04b0\u04b1\u0007', + '3\u0002\u0002\u04b1\u0523\u00078\u0002\u0002\u04b2\u04b3\u0007d\u0002', + '\u0002\u04b3\u04b4\u0007{\u0002\u0002\u04b4\u04b5\u0007v\u0002\u0002', + '\u04b5\u04b6\u0007g\u0002\u0002\u04b6\u04b7\u0007u\u0002\u0002\u04b7', + '\u04b8\u00073\u0002\u0002\u04b8\u0523\u00079\u0002\u0002\u04b9\u04ba', + '\u0007d\u0002\u0002\u04ba\u04bb\u0007{\u0002\u0002\u04bb\u04bc\u0007', + 'v\u0002\u0002\u04bc\u04bd\u0007g\u0002\u0002\u04bd\u04be\u0007u\u0002', + '\u0002\u04be\u04bf\u00073\u0002\u0002\u04bf\u0523\u0007:\u0002\u0002', + '\u04c0\u04c1\u0007d\u0002\u0002\u04c1\u04c2\u0007{\u0002\u0002\u04c2', + '\u04c3\u0007v\u0002\u0002\u04c3\u04c4\u0007g\u0002\u0002\u04c4\u04c5', + '\u0007u\u0002\u0002\u04c5\u04c6\u00073\u0002\u0002\u04c6\u0523\u0007', + ';\u0002\u0002\u04c7\u04c8\u0007d\u0002\u0002\u04c8\u04c9\u0007{\u0002', + '\u0002\u04c9\u04ca\u0007v\u0002\u0002\u04ca\u04cb\u0007g\u0002\u0002', + '\u04cb\u04cc\u0007u\u0002\u0002\u04cc\u04cd\u00074\u0002\u0002\u04cd', + '\u0523\u00072\u0002\u0002\u04ce\u04cf\u0007d\u0002\u0002\u04cf\u04d0', + '\u0007{\u0002\u0002\u04d0\u04d1\u0007v\u0002\u0002\u04d1\u04d2\u0007', + 'g\u0002\u0002\u04d2\u04d3\u0007u\u0002\u0002\u04d3\u04d4\u00074\u0002', + '\u0002\u04d4\u0523\u00073\u0002\u0002\u04d5\u04d6\u0007d\u0002\u0002', + '\u04d6\u04d7\u0007{\u0002\u0002\u04d7\u04d8\u0007v\u0002\u0002\u04d8', + '\u04d9\u0007g\u0002\u0002\u04d9\u04da\u0007u\u0002\u0002\u04da\u04db', + '\u00074\u0002\u0002\u04db\u0523\u00074\u0002\u0002\u04dc\u04dd\u0007', + 'd\u0002\u0002\u04dd\u04de\u0007{\u0002\u0002\u04de\u04df\u0007v\u0002', + '\u0002\u04df\u04e0\u0007g\u0002\u0002\u04e0\u04e1\u0007u\u0002\u0002', + '\u04e1\u04e2\u00074\u0002\u0002\u04e2\u0523\u00075\u0002\u0002\u04e3', + '\u04e4\u0007d\u0002\u0002\u04e4\u04e5\u0007{\u0002\u0002\u04e5\u04e6', + '\u0007v\u0002\u0002\u04e6\u04e7\u0007g\u0002\u0002\u04e7\u04e8\u0007', + 'u\u0002\u0002\u04e8\u04e9\u00074\u0002\u0002\u04e9\u0523\u00076\u0002', + '\u0002\u04ea\u04eb\u0007d\u0002\u0002\u04eb\u04ec\u0007{\u0002\u0002', + '\u04ec\u04ed\u0007v\u0002\u0002\u04ed\u04ee\u0007g\u0002\u0002\u04ee', + '\u04ef\u0007u\u0002\u0002\u04ef\u04f0\u00074\u0002\u0002\u04f0\u0523', + '\u00077\u0002\u0002\u04f1\u04f2\u0007d\u0002\u0002\u04f2\u04f3\u0007', + '{\u0002\u0002\u04f3\u04f4\u0007v\u0002\u0002\u04f4\u04f5\u0007g\u0002', + '\u0002\u04f5\u04f6\u0007u\u0002\u0002\u04f6\u04f7\u00074\u0002\u0002', + '\u04f7\u0523\u00078\u0002\u0002\u04f8\u04f9\u0007d\u0002\u0002\u04f9', + '\u04fa\u0007{\u0002\u0002\u04fa\u04fb\u0007v\u0002\u0002\u04fb\u04fc', + '\u0007g\u0002\u0002\u04fc\u04fd\u0007u\u0002\u0002\u04fd\u04fe\u0007', + '4\u0002\u0002\u04fe\u0523\u00079\u0002\u0002\u04ff\u0500\u0007d\u0002', + '\u0002\u0500\u0501\u0007{\u0002\u0002\u0501\u0502\u0007v\u0002\u0002', + '\u0502\u0503\u0007g\u0002\u0002\u0503\u0504\u0007u\u0002\u0002\u0504', + '\u0505\u00074\u0002\u0002\u0505\u0523\u0007:\u0002\u0002\u0506\u0507', + '\u0007d\u0002\u0002\u0507\u0508\u0007{\u0002\u0002\u0508\u0509\u0007', + 'v\u0002\u0002\u0509\u050a\u0007g\u0002\u0002\u050a\u050b\u0007u\u0002', + '\u0002\u050b\u050c\u00074\u0002\u0002\u050c\u0523\u0007;\u0002\u0002', + '\u050d\u050e\u0007d\u0002\u0002\u050e\u050f\u0007{\u0002\u0002\u050f', + '\u0510\u0007v\u0002\u0002\u0510\u0511\u0007g\u0002\u0002\u0511\u0512', + '\u0007u\u0002\u0002\u0512\u0513\u00075\u0002\u0002\u0513\u0523\u0007', + '2\u0002\u0002\u0514\u0515\u0007d\u0002\u0002\u0515\u0516\u0007{\u0002', + '\u0002\u0516\u0517\u0007v\u0002\u0002\u0517\u0518\u0007g\u0002\u0002', + '\u0518\u0519\u0007u\u0002\u0002\u0519\u051a\u00075\u0002\u0002\u051a', + '\u0523\u00073\u0002\u0002\u051b\u051c\u0007d\u0002\u0002\u051c\u051d', + '\u0007{\u0002\u0002\u051d\u051e\u0007v\u0002\u0002\u051e\u051f\u0007', + 'g\u0002\u0002\u051f\u0520\u0007u\u0002\u0002\u0520\u0521\u00075\u0002', + '\u0002\u0521\u0523\u00074\u0002\u0002\u0522\u0446\u0003\u0002\u0002', + '\u0002\u0522\u044b\u0003\u0002\u0002\u0002\u0522\u0451\u0003\u0002\u0002', + '\u0002\u0522\u0457\u0003\u0002\u0002\u0002\u0522\u045d\u0003\u0002\u0002', + '\u0002\u0522\u0463\u0003\u0002\u0002\u0002\u0522\u0469\u0003\u0002\u0002', + '\u0002\u0522\u046f\u0003\u0002\u0002\u0002\u0522\u0475\u0003\u0002\u0002', + '\u0002\u0522\u047b\u0003\u0002\u0002\u0002\u0522\u0481\u0003\u0002\u0002', + '\u0002\u0522\u0488\u0003\u0002\u0002\u0002\u0522\u048f\u0003\u0002\u0002', + '\u0002\u0522\u0496\u0003\u0002\u0002\u0002\u0522\u049d\u0003\u0002\u0002', + '\u0002\u0522\u04a4\u0003\u0002\u0002\u0002\u0522\u04ab\u0003\u0002\u0002', + '\u0002\u0522\u04b2\u0003\u0002\u0002\u0002\u0522\u04b9\u0003\u0002\u0002', + '\u0002\u0522\u04c0\u0003\u0002\u0002\u0002\u0522\u04c7\u0003\u0002\u0002', + '\u0002\u0522\u04ce\u0003\u0002\u0002\u0002\u0522\u04d5\u0003\u0002\u0002', + '\u0002\u0522\u04dc\u0003\u0002\u0002\u0002\u0522\u04e3\u0003\u0002\u0002', + '\u0002\u0522\u04ea\u0003\u0002\u0002\u0002\u0522\u04f1\u0003\u0002\u0002', + '\u0002\u0522\u04f8\u0003\u0002\u0002\u0002\u0522\u04ff\u0003\u0002\u0002', + '\u0002\u0522\u0506\u0003\u0002\u0002\u0002\u0522\u050d\u0003\u0002\u0002', + '\u0002\u0522\u0514\u0003\u0002\u0002\u0002\u0522\u051b\u0003\u0002\u0002', + '\u0002\u0523\u00c4\u0003\u0002\u0002\u0002\u0524\u0525\u0007h\u0002', + '\u0002\u0525\u0526\u0007k\u0002\u0002\u0526\u0527\u0007z\u0002\u0002', + '\u0527\u0528\u0007g\u0002\u0002\u0528\u053b\u0007f\u0002\u0002\u0529', + '\u052a\u0007h\u0002\u0002\u052a\u052b\u0007k\u0002\u0002\u052b\u052c', + '\u0007z\u0002\u0002\u052c\u052d\u0007g\u0002\u0002\u052d\u052e\u0007', + 'f\u0002\u0002\u052e\u0530\u0003\u0002\u0002\u0002\u052f\u0531\t\u0002', + '\u0002\u0002\u0530\u052f\u0003\u0002\u0002\u0002\u0531\u0532\u0003\u0002', + '\u0002\u0002\u0532\u0530\u0003\u0002\u0002\u0002\u0532\u0533\u0003\u0002', + '\u0002\u0002\u0533\u0534\u0003\u0002\u0002\u0002\u0534\u0536\u0007z', + '\u0002\u0002\u0535\u0537\t\u0002\u0002\u0002\u0536\u0535\u0003\u0002', + '\u0002\u0002\u0537\u0538\u0003\u0002\u0002\u0002\u0538\u0536\u0003\u0002', + '\u0002\u0002\u0538\u0539\u0003\u0002\u0002\u0002\u0539\u053b\u0003\u0002', + '\u0002\u0002\u053a\u0524\u0003\u0002\u0002\u0002\u053a\u0529\u0003\u0002', + '\u0002\u0002\u053b\u00c6\u0003\u0002\u0002\u0002\u053c\u053d\u0007w', + '\u0002\u0002\u053d\u053e\u0007h\u0002\u0002\u053e\u053f\u0007k\u0002', + '\u0002\u053f\u0540\u0007z\u0002\u0002\u0540\u0541\u0007g\u0002\u0002', + '\u0541\u0555\u0007f\u0002\u0002\u0542\u0543\u0007w\u0002\u0002\u0543', + '\u0544\u0007h\u0002\u0002\u0544\u0545\u0007k\u0002\u0002\u0545\u0546', + '\u0007z\u0002\u0002\u0546\u0547\u0007g\u0002\u0002\u0547\u0548\u0007', + 'f\u0002\u0002\u0548\u054a\u0003\u0002\u0002\u0002\u0549\u054b\t\u0002', + '\u0002\u0002\u054a\u0549\u0003\u0002\u0002\u0002\u054b\u054c\u0003\u0002', + '\u0002\u0002\u054c\u054a\u0003\u0002\u0002\u0002\u054c\u054d\u0003\u0002', + '\u0002\u0002\u054d\u054e\u0003\u0002\u0002\u0002\u054e\u0550\u0007z', + '\u0002\u0002\u054f\u0551\t\u0002\u0002\u0002\u0550\u054f\u0003\u0002', + '\u0002\u0002\u0551\u0552\u0003\u0002\u0002\u0002\u0552\u0550\u0003\u0002', + '\u0002\u0002\u0552\u0553\u0003\u0002\u0002\u0002\u0553\u0555\u0003\u0002', + '\u0002\u0002\u0554\u053c\u0003\u0002\u0002\u0002\u0554\u0542\u0003\u0002', + '\u0002\u0002\u0555\u00c8\u0003\u0002\u0002\u0002\u0556\u0557\u0007v', + '\u0002\u0002\u0557\u0558\u0007t\u0002\u0002\u0558\u0559\u0007w\u0002', + '\u0002\u0559\u0560\u0007g\u0002\u0002\u055a\u055b\u0007h\u0002\u0002', + '\u055b\u055c\u0007c\u0002\u0002\u055c\u055d\u0007n\u0002\u0002\u055d', + '\u055e\u0007u\u0002\u0002\u055e\u0560\u0007g\u0002\u0002\u055f\u0556', + '\u0003\u0002\u0002\u0002\u055f\u055a\u0003\u0002\u0002\u0002\u0560\u00ca', + '\u0003\u0002\u0002\u0002\u0561\u0568\u0005\u00cdg\u0002\u0562\u0564', + '\u0005\u00cdg\u0002\u0563\u0562\u0003\u0002\u0002\u0002\u0563\u0564', + '\u0003\u0002\u0002\u0002\u0564\u0565\u0003\u0002\u0002\u0002\u0565\u0566', + '\u00070\u0002\u0002\u0566\u0568\u0005\u00cdg\u0002\u0567\u0561\u0003', + '\u0002\u0002\u0002\u0567\u0563\u0003\u0002\u0002\u0002\u0568\u056b\u0003', + '\u0002\u0002\u0002\u0569\u056a\t\u0003\u0002\u0002\u056a\u056c\u0005', + '\u00cdg\u0002\u056b\u0569\u0003\u0002\u0002\u0002\u056b\u056c\u0003', + '\u0002\u0002\u0002\u056c\u00cc\u0003\u0002\u0002\u0002\u056d\u0574\t', + '\u0002\u0002\u0002\u056e\u0570\u0007a\u0002\u0002\u056f\u056e\u0003', + '\u0002\u0002\u0002\u056f\u0570\u0003\u0002\u0002\u0002\u0570\u0571\u0003', + '\u0002\u0002\u0002\u0571\u0573\t\u0002\u0002\u0002\u0572\u056f\u0003', + '\u0002\u0002\u0002\u0573\u0576\u0003\u0002\u0002\u0002\u0574\u0572\u0003', + '\u0002\u0002\u0002\u0574\u0575\u0003\u0002\u0002\u0002\u0575\u00ce\u0003', + '\u0002\u0002\u0002\u0576\u0574\u0003\u0002\u0002\u0002\u0577\u0578\u0007', + '2\u0002\u0002\u0578\u0579\t\u0004\u0002\u0002\u0579\u057a\u0005\u00d1', + 'i\u0002\u057a\u00d0\u0003\u0002\u0002\u0002\u057b\u0582\u0005\u00d9', + 'm\u0002\u057c\u057e\u0007a\u0002\u0002\u057d\u057c\u0003\u0002\u0002', + '\u0002\u057d\u057e\u0003\u0002\u0002\u0002\u057e\u057f\u0003\u0002\u0002', + '\u0002\u057f\u0581\u0005\u00d9m\u0002\u0580\u057d\u0003\u0002\u0002', + '\u0002\u0581\u0584\u0003\u0002\u0002\u0002\u0582\u0580\u0003\u0002\u0002', + '\u0002\u0582\u0583\u0003\u0002\u0002\u0002\u0583\u00d2\u0003\u0002\u0002', + '\u0002\u0584\u0582\u0003\u0002\u0002\u0002\u0585\u0586\u0007y\u0002', + '\u0002\u0586\u0587\u0007g\u0002\u0002\u0587\u05ba\u0007k\u0002\u0002', + '\u0588\u0589\u0007u\u0002\u0002\u0589\u058a\u0007|\u0002\u0002\u058a', + '\u058b\u0007c\u0002\u0002\u058b\u058c\u0007d\u0002\u0002\u058c\u05ba', + '\u0007q\u0002\u0002\u058d\u058e\u0007h\u0002\u0002\u058e\u058f\u0007', + 'k\u0002\u0002\u058f\u0590\u0007p\u0002\u0002\u0590\u0591\u0007p\u0002', + '\u0002\u0591\u0592\u0007g\u0002\u0002\u0592\u05ba\u0007{\u0002\u0002', + '\u0593\u0594\u0007g\u0002\u0002\u0594\u0595\u0007v\u0002\u0002\u0595', + '\u0596\u0007j\u0002\u0002\u0596\u0597\u0007g\u0002\u0002\u0597\u05ba', + '\u0007t\u0002\u0002\u0598\u0599\u0007u\u0002\u0002\u0599\u059a\u0007', + 'g\u0002\u0002\u059a\u059b\u0007e\u0002\u0002\u059b\u059c\u0007q\u0002', + '\u0002\u059c\u059d\u0007p\u0002\u0002\u059d\u059e\u0007f\u0002\u0002', + '\u059e\u05ba\u0007u\u0002\u0002\u059f\u05a0\u0007o\u0002\u0002\u05a0', + '\u05a1\u0007k\u0002\u0002\u05a1\u05a2\u0007p\u0002\u0002\u05a2\u05a3', + '\u0007w\u0002\u0002\u05a3\u05a4\u0007v\u0002\u0002\u05a4\u05a5\u0007', + 'g\u0002\u0002\u05a5\u05ba\u0007u\u0002\u0002\u05a6\u05a7\u0007j\u0002', + '\u0002\u05a7\u05a8\u0007q\u0002\u0002\u05a8\u05a9\u0007w\u0002\u0002', + '\u05a9\u05aa\u0007t\u0002\u0002\u05aa\u05ba\u0007u\u0002\u0002\u05ab', + '\u05ac\u0007f\u0002\u0002\u05ac\u05ad\u0007c\u0002\u0002\u05ad\u05ae', + '\u0007{\u0002\u0002\u05ae\u05ba\u0007u\u0002\u0002\u05af\u05b0\u0007', + 'y\u0002\u0002\u05b0\u05b1\u0007g\u0002\u0002\u05b1\u05b2\u0007g\u0002', + '\u0002\u05b2\u05b3\u0007m\u0002\u0002\u05b3\u05ba\u0007u\u0002\u0002', + '\u05b4\u05b5\u0007{\u0002\u0002\u05b5\u05b6\u0007g\u0002\u0002\u05b6', + '\u05b7\u0007c\u0002\u0002\u05b7\u05b8\u0007t\u0002\u0002\u05b8\u05ba', + '\u0007u\u0002\u0002\u05b9\u0585\u0003\u0002\u0002\u0002\u05b9\u0588', + '\u0003\u0002\u0002\u0002\u05b9\u058d\u0003\u0002\u0002\u0002\u05b9\u0593', + '\u0003\u0002\u0002\u0002\u05b9\u0598\u0003\u0002\u0002\u0002\u05b9\u059f', + '\u0003\u0002\u0002\u0002\u05b9\u05a6\u0003\u0002\u0002\u0002\u05b9\u05ab', + '\u0003\u0002\u0002\u0002\u05b9\u05af\u0003\u0002\u0002\u0002\u05b9\u05b4', + '\u0003\u0002\u0002\u0002\u05ba\u00d4\u0003\u0002\u0002\u0002\u05bb\u05bc', + '\u0007j\u0002\u0002\u05bc\u05bd\u0007g\u0002\u0002\u05bd\u05be\u0007', + 'z\u0002\u0002\u05be\u05c9\u0003\u0002\u0002\u0002\u05bf\u05c1\u0007', + '$\u0002\u0002\u05c0\u05c2\u0005\u00d1i\u0002\u05c1\u05c0\u0003\u0002', + '\u0002\u0002\u05c1\u05c2\u0003\u0002\u0002\u0002\u05c2\u05c3\u0003\u0002', + '\u0002\u0002\u05c3\u05ca\u0007$\u0002\u0002\u05c4\u05c6\u0007)\u0002', + '\u0002\u05c5\u05c7\u0005\u00d1i\u0002\u05c6\u05c5\u0003\u0002\u0002', + '\u0002\u05c6\u05c7\u0003\u0002\u0002\u0002\u05c7\u05c8\u0003\u0002\u0002', + '\u0002\u05c8\u05ca\u0007)\u0002\u0002\u05c9\u05bf\u0003\u0002\u0002', + '\u0002\u05c9\u05c4\u0003\u0002\u0002\u0002\u05ca\u00d6\u0003\u0002\u0002', + '\u0002\u05cb\u05cc\u0005\u00d9m\u0002\u05cc\u05cd\u0005\u00d9m\u0002', + '\u05cd\u00d8\u0003\u0002\u0002\u0002\u05ce\u05cf\t\u0005\u0002\u0002', + '\u05cf\u00da\u0003\u0002\u0002\u0002\u05d0\u05d1\u0007c\u0002\u0002', + '\u05d1\u05d2\u0007d\u0002\u0002\u05d2\u05d3\u0007u\u0002\u0002\u05d3', + '\u05d4\u0007v\u0002\u0002\u05d4\u05d5\u0007t\u0002\u0002\u05d5\u05d6', + '\u0007c\u0002\u0002\u05d6\u05d7\u0007e\u0002\u0002\u05d7\u0629\u0007', + 'v\u0002\u0002\u05d8\u05d9\u0007c\u0002\u0002\u05d9\u05da\u0007h\u0002', + '\u0002\u05da\u05db\u0007v\u0002\u0002\u05db\u05dc\u0007g\u0002\u0002', + '\u05dc\u0629\u0007t\u0002\u0002\u05dd\u05de\u0007e\u0002\u0002\u05de', + '\u05df\u0007c\u0002\u0002\u05df\u05e0\u0007u\u0002\u0002\u05e0\u0629', + '\u0007g\u0002\u0002\u05e1\u05e2\u0007e\u0002\u0002\u05e2\u05e3\u0007', + 'c\u0002\u0002\u05e3\u05e4\u0007v\u0002\u0002\u05e4\u05e5\u0007e\u0002', + '\u0002\u05e5\u0629\u0007j\u0002\u0002\u05e6\u05e7\u0007f\u0002\u0002', + '\u05e7\u05e8\u0007g\u0002\u0002\u05e8\u05e9\u0007h\u0002\u0002\u05e9', + '\u05ea\u0007c\u0002\u0002\u05ea\u05eb\u0007w\u0002\u0002\u05eb\u05ec', + '\u0007n\u0002\u0002\u05ec\u0629\u0007v\u0002\u0002\u05ed\u05ee\u0007', + 'h\u0002\u0002\u05ee\u05ef\u0007k\u0002\u0002\u05ef\u05f0\u0007p\u0002', + '\u0002\u05f0\u05f1\u0007c\u0002\u0002\u05f1\u0629\u0007n\u0002\u0002', + '\u05f2\u05f3\u0007k\u0002\u0002\u05f3\u0629\u0007p\u0002\u0002\u05f4', + '\u05f5\u0007k\u0002\u0002\u05f5\u05f6\u0007p\u0002\u0002\u05f6\u05f7', + '\u0007n\u0002\u0002\u05f7\u05f8\u0007k\u0002\u0002\u05f8\u05f9\u0007', + 'p\u0002\u0002\u05f9\u0629\u0007g\u0002\u0002\u05fa\u05fb\u0007n\u0002', + '\u0002\u05fb\u05fc\u0007g\u0002\u0002\u05fc\u0629\u0007v\u0002\u0002', + '\u05fd\u05fe\u0007o\u0002\u0002\u05fe\u05ff\u0007c\u0002\u0002\u05ff', + '\u0600\u0007v\u0002\u0002\u0600\u0601\u0007e\u0002\u0002\u0601\u0629', + '\u0007j\u0002\u0002\u0602\u0603\u0007p\u0002\u0002\u0603\u0604\u0007', + 'w\u0002\u0002\u0604\u0605\u0007n\u0002\u0002\u0605\u0629\u0007n\u0002', + '\u0002\u0606\u0607\u0007q\u0002\u0002\u0607\u0629\u0007h\u0002\u0002', + '\u0608\u0609\u0007t\u0002\u0002\u0609\u060a\u0007g\u0002\u0002\u060a', + '\u060b\u0007n\u0002\u0002\u060b\u060c\u0007q\u0002\u0002\u060c\u060d', + '\u0007e\u0002\u0002\u060d\u060e\u0007c\u0002\u0002\u060e\u060f\u0007', + 'v\u0002\u0002\u060f\u0610\u0007c\u0002\u0002\u0610\u0611\u0007d\u0002', + '\u0002\u0611\u0612\u0007n\u0002\u0002\u0612\u0629\u0007g\u0002\u0002', + '\u0613\u0614\u0007u\u0002\u0002\u0614\u0615\u0007v\u0002\u0002\u0615', + '\u0616\u0007c\u0002\u0002\u0616\u0617\u0007v\u0002\u0002\u0617\u0618', + '\u0007k\u0002\u0002\u0618\u0629\u0007e\u0002\u0002\u0619\u061a\u0007', + 'u\u0002\u0002\u061a\u061b\u0007y\u0002\u0002\u061b\u061c\u0007k\u0002', + '\u0002\u061c\u061d\u0007v\u0002\u0002\u061d\u061e\u0007e\u0002\u0002', + '\u061e\u0629\u0007j\u0002\u0002\u061f\u0620\u0007v\u0002\u0002\u0620', + '\u0621\u0007t\u0002\u0002\u0621\u0629\u0007{\u0002\u0002\u0622\u0623', + '\u0007v\u0002\u0002\u0623\u0624\u0007{\u0002\u0002\u0624\u0625\u0007', + 'r\u0002\u0002\u0625\u0626\u0007g\u0002\u0002\u0626\u0627\u0007q\u0002', + '\u0002\u0627\u0629\u0007h\u0002\u0002\u0628\u05d0\u0003\u0002\u0002', + '\u0002\u0628\u05d8\u0003\u0002\u0002\u0002\u0628\u05dd\u0003\u0002\u0002', + '\u0002\u0628\u05e1\u0003\u0002\u0002\u0002\u0628\u05e6\u0003\u0002\u0002', + '\u0002\u0628\u05ed\u0003\u0002\u0002\u0002\u0628\u05f2\u0003\u0002\u0002', + '\u0002\u0628\u05f4\u0003\u0002\u0002\u0002\u0628\u05fa\u0003\u0002\u0002', + '\u0002\u0628\u05fd\u0003\u0002\u0002\u0002\u0628\u0602\u0003\u0002\u0002', + '\u0002\u0628\u0606\u0003\u0002\u0002\u0002\u0628\u0608\u0003\u0002\u0002', + '\u0002\u0628\u0613\u0003\u0002\u0002\u0002\u0628\u0619\u0003\u0002\u0002', + '\u0002\u0628\u061f\u0003\u0002\u0002\u0002\u0628\u0622\u0003\u0002\u0002', + '\u0002\u0629\u00dc\u0003\u0002\u0002\u0002\u062a\u062b\u0007c\u0002', + '\u0002\u062b\u062c\u0007p\u0002\u0002\u062c\u062d\u0007q\u0002\u0002', + '\u062d\u062e\u0007p\u0002\u0002\u062e\u062f\u0007{\u0002\u0002\u062f', + '\u0630\u0007o\u0002\u0002\u0630\u0631\u0007q\u0002\u0002\u0631\u0632', + '\u0007w\u0002\u0002\u0632\u0633\u0007u\u0002\u0002\u0633\u00de\u0003', + '\u0002\u0002\u0002\u0634\u0635\u0007d\u0002\u0002\u0635\u0636\u0007', + 't\u0002\u0002\u0636\u0637\u0007g\u0002\u0002\u0637\u0638\u0007c\u0002', + '\u0002\u0638\u0639\u0007m\u0002\u0002\u0639\u00e0\u0003\u0002\u0002', + '\u0002\u063a\u063b\u0007e\u0002\u0002\u063b\u063c\u0007q\u0002\u0002', + '\u063c\u063d\u0007p\u0002\u0002\u063d\u063e\u0007u\u0002\u0002\u063e', + '\u063f\u0007v\u0002\u0002\u063f\u0640\u0007c\u0002\u0002\u0640\u0641', + '\u0007p\u0002\u0002\u0641\u0642\u0007v\u0002\u0002\u0642\u00e2\u0003', + '\u0002\u0002\u0002\u0643\u0644\u0007k\u0002\u0002\u0644\u0645\u0007', + 'o\u0002\u0002\u0645\u0646\u0007o\u0002\u0002\u0646\u0647\u0007w\u0002', + '\u0002\u0647\u0648\u0007v\u0002\u0002\u0648\u0649\u0007c\u0002\u0002', + '\u0649\u064a\u0007d\u0002\u0002\u064a\u064b\u0007n\u0002\u0002\u064b', + '\u064c\u0007g\u0002\u0002\u064c\u00e4\u0003\u0002\u0002\u0002\u064d', + '\u064e\u0007e\u0002\u0002\u064e\u064f\u0007q\u0002\u0002\u064f\u0650', + '\u0007p\u0002\u0002\u0650\u0651\u0007v\u0002\u0002\u0651\u0652\u0007', + 'k\u0002\u0002\u0652\u0653\u0007p\u0002\u0002\u0653\u0654\u0007w\u0002', + '\u0002\u0654\u0655\u0007g\u0002\u0002\u0655\u00e6\u0003\u0002\u0002', + '\u0002\u0656\u0657\u0007n\u0002\u0002\u0657\u0658\u0007g\u0002\u0002', + '\u0658\u0659\u0007c\u0002\u0002\u0659\u065a\u0007x\u0002\u0002\u065a', + '\u065b\u0007g\u0002\u0002\u065b\u00e8\u0003\u0002\u0002\u0002\u065c', + '\u065d\u0007g\u0002\u0002\u065d\u065e\u0007z\u0002\u0002\u065e\u065f', + '\u0007v\u0002\u0002\u065f\u0660\u0007g\u0002\u0002\u0660\u0661\u0007', + 't\u0002\u0002\u0661\u0662\u0007p\u0002\u0002\u0662\u0663\u0007c\u0002', + '\u0002\u0663\u0664\u0007n\u0002\u0002\u0664\u00ea\u0003\u0002\u0002', + '\u0002\u0665\u0666\u0007k\u0002\u0002\u0666\u0667\u0007p\u0002\u0002', + '\u0667\u0668\u0007f\u0002\u0002\u0668\u0669\u0007g\u0002\u0002\u0669', + '\u066a\u0007z\u0002\u0002\u066a\u066b\u0007g\u0002\u0002\u066b\u066c', + '\u0007f\u0002\u0002\u066c\u00ec\u0003\u0002\u0002\u0002\u066d\u066e', + '\u0007k\u0002\u0002\u066e\u066f\u0007p\u0002\u0002\u066f\u0670\u0007', + 'v\u0002\u0002\u0670\u0671\u0007g\u0002\u0002\u0671\u0672\u0007t\u0002', + '\u0002\u0672\u0673\u0007p\u0002\u0002\u0673\u0674\u0007c\u0002\u0002', + '\u0674\u0675\u0007n\u0002\u0002\u0675\u00ee\u0003\u0002\u0002\u0002', + '\u0676\u0677\u0007r\u0002\u0002\u0677\u0678\u0007c\u0002\u0002\u0678', + '\u0679\u0007{\u0002\u0002\u0679\u067a\u0007c\u0002\u0002\u067a\u067b', + '\u0007d\u0002\u0002\u067b\u067c\u0007n\u0002\u0002\u067c\u067d\u0007', + 'g\u0002\u0002\u067d\u00f0\u0003\u0002\u0002\u0002\u067e\u067f\u0007', + 'r\u0002\u0002\u067f\u0680\u0007t\u0002\u0002\u0680\u0681\u0007k\u0002', + '\u0002\u0681\u0682\u0007x\u0002\u0002\u0682\u0683\u0007c\u0002\u0002', + '\u0683\u0684\u0007v\u0002\u0002\u0684\u0685\u0007g\u0002\u0002\u0685', + '\u00f2\u0003\u0002\u0002\u0002\u0686\u0687\u0007r\u0002\u0002\u0687', + '\u0688\u0007w\u0002\u0002\u0688\u0689\u0007d\u0002\u0002\u0689\u068a', + '\u0007n\u0002\u0002\u068a\u068b\u0007k\u0002\u0002\u068b\u068c\u0007', + 'e\u0002\u0002\u068c\u00f4\u0003\u0002\u0002\u0002\u068d\u068e\u0007', + 'x\u0002\u0002\u068e\u068f\u0007k\u0002\u0002\u068f\u0690\u0007t\u0002', + '\u0002\u0690\u0691\u0007v\u0002\u0002\u0691\u0692\u0007w\u0002\u0002', + '\u0692\u0693\u0007c\u0002\u0002\u0693\u0694\u0007n\u0002\u0002\u0694', + '\u00f6\u0003\u0002\u0002\u0002\u0695\u0696\u0007r\u0002\u0002\u0696', + '\u0697\u0007w\u0002\u0002\u0697\u0698\u0007t\u0002\u0002\u0698\u0699', + '\u0007g\u0002\u0002\u0699\u00f8\u0003\u0002\u0002\u0002\u069a\u069b', + '\u0007v\u0002\u0002\u069b\u069c\u0007{\u0002\u0002\u069c\u069d\u0007', + 'r\u0002\u0002\u069d\u069e\u0007g\u0002\u0002\u069e\u00fa\u0003\u0002', + '\u0002\u0002\u069f\u06a0\u0007x\u0002\u0002\u06a0\u06a1\u0007k\u0002', + '\u0002\u06a1\u06a2\u0007g\u0002\u0002\u06a2\u06a3\u0007y\u0002\u0002', + '\u06a3\u00fc\u0003\u0002\u0002\u0002\u06a4\u06a5\u0007e\u0002\u0002', + '\u06a5\u06a6\u0007q\u0002\u0002\u06a6\u06a7\u0007p\u0002\u0002\u06a7', + '\u06a8\u0007u\u0002\u0002\u06a8\u06a9\u0007v\u0002\u0002\u06a9\u06aa', + '\u0007t\u0002\u0002\u06aa\u06ab\u0007w\u0002\u0002\u06ab\u06ac\u0007', + 'e\u0002\u0002\u06ac\u06ad\u0007v\u0002\u0002\u06ad\u06ae\u0007q\u0002', + '\u0002\u06ae\u06af\u0007t\u0002\u0002\u06af\u00fe\u0003\u0002\u0002', + '\u0002\u06b0\u06b1\u0007h\u0002\u0002\u06b1\u06b2\u0007c\u0002\u0002', + '\u06b2\u06b3\u0007n\u0002\u0002\u06b3\u06b4\u0007n\u0002\u0002\u06b4', + '\u06b5\u0007d\u0002\u0002\u06b5\u06b6\u0007c\u0002\u0002\u06b6\u06b7', + '\u0007e\u0002\u0002\u06b7\u06b8\u0007m\u0002\u0002\u06b8\u0100\u0003', + '\u0002\u0002\u0002\u06b9\u06ba\u0007t\u0002\u0002\u06ba\u06bb\u0007', + 'g\u0002\u0002\u06bb\u06bc\u0007e\u0002\u0002\u06bc\u06bd\u0007g\u0002', + '\u0002\u06bd\u06be\u0007k\u0002\u0002\u06be\u06bf\u0007x\u0002\u0002', + '\u06bf\u06c0\u0007g\u0002\u0002\u06c0\u0102\u0003\u0002\u0002\u0002', + '\u06c1\u06c5\u0005\u0105\u0083\u0002\u06c2\u06c4\u0005\u0107\u0084\u0002', + '\u06c3\u06c2\u0003\u0002\u0002\u0002\u06c4\u06c7\u0003\u0002\u0002\u0002', + '\u06c5\u06c3\u0003\u0002\u0002\u0002\u06c5\u06c6\u0003\u0002\u0002\u0002', + '\u06c6\u0104\u0003\u0002\u0002\u0002\u06c7\u06c5\u0003\u0002\u0002\u0002', + '\u06c8\u06c9\t\u0006\u0002\u0002\u06c9\u0106\u0003\u0002\u0002\u0002', + '\u06ca\u06cb\t\u0007\u0002\u0002\u06cb\u0108\u0003\u0002\u0002\u0002', + '\u06cc\u06d0\u0007$\u0002\u0002\u06cd\u06cf\u0005\u010b\u0086\u0002', + '\u06ce\u06cd\u0003\u0002\u0002\u0002\u06cf\u06d2\u0003\u0002\u0002\u0002', + '\u06d0\u06ce\u0003\u0002\u0002\u0002\u06d0\u06d1\u0003\u0002\u0002\u0002', + '\u06d1\u06d3\u0003\u0002\u0002\u0002\u06d2\u06d0\u0003\u0002\u0002\u0002', + '\u06d3\u06dd\u0007$\u0002\u0002\u06d4\u06d8\u0007)\u0002\u0002\u06d5', + '\u06d7\u0005\u010d\u0087\u0002\u06d6\u06d5\u0003\u0002\u0002\u0002\u06d7', + '\u06da\u0003\u0002\u0002\u0002\u06d8\u06d6\u0003\u0002\u0002\u0002\u06d8', + '\u06d9\u0003\u0002\u0002\u0002\u06d9\u06db\u0003\u0002\u0002\u0002\u06da', + '\u06d8\u0003\u0002\u0002\u0002\u06db\u06dd\u0007)\u0002\u0002\u06dc', + '\u06cc\u0003\u0002\u0002\u0002\u06dc\u06d4\u0003\u0002\u0002\u0002\u06dd', + '\u010a\u0003\u0002\u0002\u0002\u06de\u06e2\n\b\u0002\u0002\u06df\u06e0', + '\u0007^\u0002\u0002\u06e0\u06e2\u000b\u0002\u0002\u0002\u06e1\u06de', + '\u0003\u0002\u0002\u0002\u06e1\u06df\u0003\u0002\u0002\u0002\u06e2\u010c', + '\u0003\u0002\u0002\u0002\u06e3\u06e7\n\t\u0002\u0002\u06e4\u06e5\u0007', + '^\u0002\u0002\u06e5\u06e7\u000b\u0002\u0002\u0002\u06e6\u06e3\u0003', + '\u0002\u0002\u0002\u06e6\u06e4\u0003\u0002\u0002\u0002\u06e7\u010e\u0003', + '\u0002\u0002\u0002\u06e8\u06ea\t\u0002\u0002\u0002\u06e9\u06e8\u0003', + '\u0002\u0002\u0002\u06ea\u06eb\u0003\u0002\u0002\u0002\u06eb\u06e9\u0003', + '\u0002\u0002\u0002\u06eb\u06ec\u0003\u0002\u0002\u0002\u06ec\u06ed\u0003', + '\u0002\u0002\u0002\u06ed\u06ef\u00070\u0002\u0002\u06ee\u06f0\t\u0002', + '\u0002\u0002\u06ef\u06ee\u0003\u0002\u0002\u0002\u06f0\u06f1\u0003\u0002', + '\u0002\u0002\u06f1\u06ef\u0003\u0002\u0002\u0002\u06f1\u06f2\u0003\u0002', + '\u0002\u0002\u06f2\u06f9\u0003\u0002\u0002\u0002\u06f3\u06f5\u00070', + '\u0002\u0002\u06f4\u06f6\t\u0002\u0002\u0002\u06f5\u06f4\u0003\u0002', + '\u0002\u0002\u06f6\u06f7\u0003\u0002\u0002\u0002\u06f7\u06f5\u0003\u0002', + '\u0002\u0002\u06f7\u06f8\u0003\u0002\u0002\u0002\u06f8\u06fa\u0003\u0002', + '\u0002\u0002\u06f9\u06f3\u0003\u0002\u0002\u0002\u06f9\u06fa\u0003\u0002', + '\u0002\u0002\u06fa\u0110\u0003\u0002\u0002\u0002\u06fb\u06fd\t\n\u0002', + '\u0002\u06fc\u06fb\u0003\u0002\u0002\u0002\u06fd\u06fe\u0003\u0002\u0002', + '\u0002\u06fe\u06fc\u0003\u0002\u0002\u0002\u06fe\u06ff\u0003\u0002\u0002', + '\u0002\u06ff\u0700\u0003\u0002\u0002\u0002\u0700\u0701\b\u0089\u0002', + '\u0002\u0701\u0112\u0003\u0002\u0002\u0002\u0702\u0703\u00071\u0002', + '\u0002\u0703\u0704\u0007,\u0002\u0002\u0704\u0708\u0003\u0002\u0002', + '\u0002\u0705\u0707\u000b\u0002\u0002\u0002\u0706\u0705\u0003\u0002\u0002', + '\u0002\u0707\u070a\u0003\u0002\u0002\u0002\u0708\u0709\u0003\u0002\u0002', + '\u0002\u0708\u0706\u0003\u0002\u0002\u0002\u0709\u070b\u0003\u0002\u0002', + '\u0002\u070a\u0708\u0003\u0002\u0002\u0002\u070b\u070c\u0007,\u0002', + '\u0002\u070c\u070d\u00071\u0002\u0002\u070d\u070e\u0003\u0002\u0002', + '\u0002\u070e\u070f\b\u008a\u0003\u0002\u070f\u0114\u0003\u0002\u0002', + '\u0002\u0710\u0711\u00071\u0002\u0002\u0711\u0712\u00071\u0002\u0002', + '\u0712\u0716\u0003\u0002\u0002\u0002\u0713\u0715\n\u000b\u0002\u0002', + '\u0714\u0713\u0003\u0002\u0002\u0002\u0715\u0718\u0003\u0002\u0002\u0002', + '\u0716\u0714\u0003\u0002\u0002\u0002\u0716\u0717\u0003\u0002\u0002\u0002', + '\u0717\u0719\u0003\u0002\u0002\u0002\u0718\u0716\u0003\u0002\u0002\u0002', + '\u0719\u071a\b\u008b\u0003\u0002\u071a\u0116\u0003\u0002\u0002\u0002', + '&\u0002\u036b\u0444\u0522\u0532\u0538\u053a\u054c\u0552\u0554\u055f', + '\u0563\u0567\u056b\u056f\u0574\u057d\u0582\u05b9\u05c1\u05c6\u05c9\u0628', + '\u06c5\u06d0\u06d8\u06dc\u06e1\u06e6\u06eb\u06f1\u06f7\u06f9\u06fe\u0708', + '\u0716\u0004\b\u0002\u0002\u0002\u0003\u0002' +].join('') +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN) -const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", - "\u5964\u0002\u0084\u071b\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003", - "\u0004\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007", - "\t\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", - "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", - "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", - "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", - "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", - "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", - "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", - "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", - "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", - "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", - "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", - "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", - "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", - "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", - "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", - "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", - "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", - "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", - "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", - "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", - "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", - "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", - "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", - "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0003\u0002\u0003", - "\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003", - "\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003", - "\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\b\u0003", - "\b\u0003\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0003", - "\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003", - "\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e", - "\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011", - "\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012", - "\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0003\u0013", - "\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013", - "\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014", - "\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0015\u0003\u0015", - "\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015", - "\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017\u0003\u0018", - "\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019", - "\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001b", - "\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b", - "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c", - "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001d", - "\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d", - "\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e", - "\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f", - "\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003 \u0003 \u0003!\u0003", - "!\u0003\"\u0003\"\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003", - "#\u0003$\u0003$\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003", - "%\u0003&\u0003&\u0003&\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003", - "\'\u0003\'\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003", - ")\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003*\u0003", - "*\u0003*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003", - ",\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003", - ".\u0003.\u0003.\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", - "/\u0003/\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u00031\u0003", - "1\u00031\u00032\u00032\u00032\u00032\u00032\u00032\u00033\u00033\u0003", - "3\u00033\u00033\u00034\u00034\u00034\u00034\u00035\u00035\u00035\u0003", - "5\u00035\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00037\u0003", - "7\u00037\u00037\u00037\u00038\u00038\u00038\u00039\u00039\u00039\u0003", - ":\u0003:\u0003:\u0003:\u0003;\u0003;\u0003<\u0003<\u0003=\u0003=\u0003", - ">\u0003>\u0003>\u0003>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003?\u0003", - "?\u0003?\u0003?\u0003@\u0003@\u0003A\u0003A\u0003A\u0003B\u0003B\u0003", - "C\u0003C\u0003D\u0003D\u0003D\u0003E\u0003E\u0003E\u0003F\u0003F\u0003", - "G\u0003G\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003J\u0003J\u0003", - "J\u0003K\u0003K\u0003K\u0003L\u0003L\u0003M\u0003M\u0003M\u0003N\u0003", - "N\u0003N\u0003O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003P\u0003Q\u0003", - "Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003S\u0003S\u0003S\u0003T\u0003", - "T\u0003T\u0003U\u0003U\u0003U\u0003V\u0003V\u0003V\u0003W\u0003W\u0003", - "W\u0003W\u0003X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003", - "Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003[\u0003[\u0003[\u0003[\u0003[\u0003", - "\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003]\u0003", - "]\u0003]\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003", - "^\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0005`\u036c\n`\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0005a\u0445", - "\na\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0005b\u0523\nb\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003", - "c\u0003c\u0003c\u0003c\u0003c\u0006c\u0531\nc\rc\u000ec\u0532\u0003", - "c\u0003c\u0006c\u0537\nc\rc\u000ec\u0538\u0005c\u053b\nc\u0003d\u0003", - "d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003", - "d\u0003d\u0003d\u0006d\u054b\nd\rd\u000ed\u054c\u0003d\u0003d\u0006", - "d\u0551\nd\rd\u000ed\u0552\u0005d\u0555\nd\u0003e\u0003e\u0003e\u0003", - "e\u0003e\u0003e\u0003e\u0003e\u0003e\u0005e\u0560\ne\u0003f\u0003f\u0005", - "f\u0564\nf\u0003f\u0003f\u0005f\u0568\nf\u0003f\u0003f\u0005f\u056c", - "\nf\u0003g\u0003g\u0005g\u0570\ng\u0003g\u0007g\u0573\ng\fg\u000eg\u0576", - "\u000bg\u0003h\u0003h\u0003h\u0003h\u0003i\u0003i\u0005i\u057e\ni\u0003", - "i\u0007i\u0581\ni\fi\u000ei\u0584\u000bi\u0003j\u0003j\u0003j\u0003", - "j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003", - "j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003", - "j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003", - "j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003", - "j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0005j\u05ba", - "\nj\u0003k\u0003k\u0003k\u0003k\u0003k\u0003k\u0005k\u05c2\nk\u0003", - "k\u0003k\u0003k\u0005k\u05c7\nk\u0003k\u0005k\u05ca\nk\u0003l\u0003", - "l\u0003l\u0003m\u0003m\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0005n\u0629\nn\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003", - "o\u0003o\u0003o\u0003o\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003", - "q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003r\u0003", - "r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003s\u0003", - "s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003t\u0003", - "t\u0003t\u0003t\u0003t\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003", - "u\u0003u\u0003u\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003", - "v\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003", - "x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003y\u0003y\u0003", - "y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003z\u0003z\u0003z\u0003", - "z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003", - "{\u0003|\u0003|\u0003|\u0003|\u0003|\u0003}\u0003}\u0003}\u0003}\u0003", - "}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003\u007f\u0003\u007f\u0003\u007f", - "\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f", - "\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u0080\u0003\u0080\u0003\u0080", - "\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080", - "\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081", - "\u0003\u0081\u0003\u0081\u0003\u0082\u0003\u0082\u0007\u0082\u06c4\n", - "\u0082\f\u0082\u000e\u0082\u06c7\u000b\u0082\u0003\u0083\u0003\u0083", - "\u0003\u0084\u0003\u0084\u0003\u0085\u0003\u0085\u0007\u0085\u06cf\n", - "\u0085\f\u0085\u000e\u0085\u06d2\u000b\u0085\u0003\u0085\u0003\u0085", - "\u0003\u0085\u0007\u0085\u06d7\n\u0085\f\u0085\u000e\u0085\u06da\u000b", - "\u0085\u0003\u0085\u0005\u0085\u06dd\n\u0085\u0003\u0086\u0003\u0086", - "\u0003\u0086\u0005\u0086\u06e2\n\u0086\u0003\u0087\u0003\u0087\u0003", - "\u0087\u0005\u0087\u06e7\n\u0087\u0003\u0088\u0006\u0088\u06ea\n\u0088", - "\r\u0088\u000e\u0088\u06eb\u0003\u0088\u0003\u0088\u0006\u0088\u06f0", - "\n\u0088\r\u0088\u000e\u0088\u06f1\u0003\u0088\u0003\u0088\u0006\u0088", - "\u06f6\n\u0088\r\u0088\u000e\u0088\u06f7\u0005\u0088\u06fa\n\u0088\u0003", - "\u0089\u0006\u0089\u06fd\n\u0089\r\u0089\u000e\u0089\u06fe\u0003\u0089", - "\u0003\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0007\u008a", - "\u0707\n\u008a\f\u008a\u000e\u008a\u070a\u000b\u008a\u0003\u008a\u0003", - "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003\u008b\u0003", - "\u008b\u0003\u008b\u0007\u008b\u0715\n\u008b\f\u008b\u000e\u008b\u0718", - "\u000b\u008b\u0003\u008b\u0003\u008b\u0003\u0708\u0002\u008c\u0003\u0003", - "\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f\t\u0011\n\u0013", - "\u000b\u0015\f\u0017\r\u0019\u000e\u001b\u000f\u001d\u0010\u001f\u0011", - "!\u0012#\u0013%\u0014\'\u0015)\u0016+\u0017-\u0018/\u00191\u001a3\u001b", - "5\u001c7\u001d9\u001e;\u001f= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]0_1a", - "2c3e4g5i6k7m8o9q:s;u{?}@\u007fA\u0081B\u0083C\u0085D\u0087E\u0089", - "F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009d", - "P\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1", - "Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5", - "d\u00c7e\u00c9f\u00cbg\u00cd\u0002\u00cfh\u00d1\u0002\u00d3i\u00d5j", - "\u00d7\u0002\u00d9\u0002\u00dbk\u00ddl\u00dfm\u00e1n\u00e3o\u00e5p\u00e7", - "q\u00e9r\u00ebs\u00edt\u00efu\u00f1v\u00f3w\u00f5x\u00f7y\u00f9z\u00fb", - "{\u00fd|\u00ff}\u0101~\u0103\u007f\u0105\u0002\u0107\u0002\u0109\u0080", - "\u010b\u0002\u010d\u0002\u010f\u0081\u0111\u0082\u0113\u0083\u0115\u0084", - "\u0003\u0002\f\u0003\u00022;\u0004\u0002GGgg\u0004\u0002ZZzz\u0005\u0002", - "2;CHch\u0006\u0002&&C\\aac|\u0007\u0002&&2;C\\aac|\u0006\u0002\f\f\u000f", - "\u000f$$^^\u0006\u0002\f\f\u000f\u000f))^^\u0005\u0002\u000b\f\u000e", - "\u000f\"\"\u0004\u0002\f\f\u000f\u000f\u0002\u07a9\u0002\u0003\u0003", - "\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002\u0007\u0003", - "\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002\u000b\u0003", - "\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002\u0002\u000f\u0003", - "\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002\u0013\u0003", - "\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0002\u0017\u0003", - "\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002\u0002\u001b\u0003", - "\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002\u0002\u001f\u0003", - "\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002\u0002#\u0003\u0002", - "\u0002\u0002\u0002%\u0003\u0002\u0002\u0002\u0002\'\u0003\u0002\u0002", - "\u0002\u0002)\u0003\u0002\u0002\u0002\u0002+\u0003\u0002\u0002\u0002", - "\u0002-\u0003\u0002\u0002\u0002\u0002/\u0003\u0002\u0002\u0002\u0002", - "1\u0003\u0002\u0002\u0002\u00023\u0003\u0002\u0002\u0002\u00025\u0003", - "\u0002\u0002\u0002\u00027\u0003\u0002\u0002\u0002\u00029\u0003\u0002", - "\u0002\u0002\u0002;\u0003\u0002\u0002\u0002\u0002=\u0003\u0002\u0002", - "\u0002\u0002?\u0003\u0002\u0002\u0002\u0002A\u0003\u0002\u0002\u0002", - "\u0002C\u0003\u0002\u0002\u0002\u0002E\u0003\u0002\u0002\u0002\u0002", - "G\u0003\u0002\u0002\u0002\u0002I\u0003\u0002\u0002\u0002\u0002K\u0003", - "\u0002\u0002\u0002\u0002M\u0003\u0002\u0002\u0002\u0002O\u0003\u0002", - "\u0002\u0002\u0002Q\u0003\u0002\u0002\u0002\u0002S\u0003\u0002\u0002", - "\u0002\u0002U\u0003\u0002\u0002\u0002\u0002W\u0003\u0002\u0002\u0002", - "\u0002Y\u0003\u0002\u0002\u0002\u0002[\u0003\u0002\u0002\u0002\u0002", - "]\u0003\u0002\u0002\u0002\u0002_\u0003\u0002\u0002\u0002\u0002a\u0003", - "\u0002\u0002\u0002\u0002c\u0003\u0002\u0002\u0002\u0002e\u0003\u0002", - "\u0002\u0002\u0002g\u0003\u0002\u0002\u0002\u0002i\u0003\u0002\u0002", - "\u0002\u0002k\u0003\u0002\u0002\u0002\u0002m\u0003\u0002\u0002\u0002", - "\u0002o\u0003\u0002\u0002\u0002\u0002q\u0003\u0002\u0002\u0002\u0002", - "s\u0003\u0002\u0002\u0002\u0002u\u0003\u0002\u0002\u0002\u0002w\u0003", - "\u0002\u0002\u0002\u0002y\u0003\u0002\u0002\u0002\u0002{\u0003\u0002", - "\u0002\u0002\u0002}\u0003\u0002\u0002\u0002\u0002\u007f\u0003\u0002", - "\u0002\u0002\u0002\u0081\u0003\u0002\u0002\u0002\u0002\u0083\u0003\u0002", - "\u0002\u0002\u0002\u0085\u0003\u0002\u0002\u0002\u0002\u0087\u0003\u0002", - "\u0002\u0002\u0002\u0089\u0003\u0002\u0002\u0002\u0002\u008b\u0003\u0002", - "\u0002\u0002\u0002\u008d\u0003\u0002\u0002\u0002\u0002\u008f\u0003\u0002", - "\u0002\u0002\u0002\u0091\u0003\u0002\u0002\u0002\u0002\u0093\u0003\u0002", - "\u0002\u0002\u0002\u0095\u0003\u0002\u0002\u0002\u0002\u0097\u0003\u0002", - "\u0002\u0002\u0002\u0099\u0003\u0002\u0002\u0002\u0002\u009b\u0003\u0002", - "\u0002\u0002\u0002\u009d\u0003\u0002\u0002\u0002\u0002\u009f\u0003\u0002", - "\u0002\u0002\u0002\u00a1\u0003\u0002\u0002\u0002\u0002\u00a3\u0003\u0002", - "\u0002\u0002\u0002\u00a5\u0003\u0002\u0002\u0002\u0002\u00a7\u0003\u0002", - "\u0002\u0002\u0002\u00a9\u0003\u0002\u0002\u0002\u0002\u00ab\u0003\u0002", - "\u0002\u0002\u0002\u00ad\u0003\u0002\u0002\u0002\u0002\u00af\u0003\u0002", - "\u0002\u0002\u0002\u00b1\u0003\u0002\u0002\u0002\u0002\u00b3\u0003\u0002", - "\u0002\u0002\u0002\u00b5\u0003\u0002\u0002\u0002\u0002\u00b7\u0003\u0002", - "\u0002\u0002\u0002\u00b9\u0003\u0002\u0002\u0002\u0002\u00bb\u0003\u0002", - "\u0002\u0002\u0002\u00bd\u0003\u0002\u0002\u0002\u0002\u00bf\u0003\u0002", - "\u0002\u0002\u0002\u00c1\u0003\u0002\u0002\u0002\u0002\u00c3\u0003\u0002", - "\u0002\u0002\u0002\u00c5\u0003\u0002\u0002\u0002\u0002\u00c7\u0003\u0002", - "\u0002\u0002\u0002\u00c9\u0003\u0002\u0002\u0002\u0002\u00cb\u0003\u0002", - "\u0002\u0002\u0002\u00cf\u0003\u0002\u0002\u0002\u0002\u00d3\u0003\u0002", - "\u0002\u0002\u0002\u00d5\u0003\u0002\u0002\u0002\u0002\u00db\u0003\u0002", - "\u0002\u0002\u0002\u00dd\u0003\u0002\u0002\u0002\u0002\u00df\u0003\u0002", - "\u0002\u0002\u0002\u00e1\u0003\u0002\u0002\u0002\u0002\u00e3\u0003\u0002", - "\u0002\u0002\u0002\u00e5\u0003\u0002\u0002\u0002\u0002\u00e7\u0003\u0002", - "\u0002\u0002\u0002\u00e9\u0003\u0002\u0002\u0002\u0002\u00eb\u0003\u0002", - "\u0002\u0002\u0002\u00ed\u0003\u0002\u0002\u0002\u0002\u00ef\u0003\u0002", - "\u0002\u0002\u0002\u00f1\u0003\u0002\u0002\u0002\u0002\u00f3\u0003\u0002", - "\u0002\u0002\u0002\u00f5\u0003\u0002\u0002\u0002\u0002\u00f7\u0003\u0002", - "\u0002\u0002\u0002\u00f9\u0003\u0002\u0002\u0002\u0002\u00fb\u0003\u0002", - "\u0002\u0002\u0002\u00fd\u0003\u0002\u0002\u0002\u0002\u00ff\u0003\u0002", - "\u0002\u0002\u0002\u0101\u0003\u0002\u0002\u0002\u0002\u0103\u0003\u0002", - "\u0002\u0002\u0002\u0109\u0003\u0002\u0002\u0002\u0002\u010f\u0003\u0002", - "\u0002\u0002\u0002\u0111\u0003\u0002\u0002\u0002\u0002\u0113\u0003\u0002", - "\u0002\u0002\u0002\u0115\u0003\u0002\u0002\u0002\u0003\u0117\u0003\u0002", - "\u0002\u0002\u0005\u011e\u0003\u0002\u0002\u0002\u0007\u0120\u0003\u0002", - "\u0002\u0002\t\u0122\u0003\u0002\u0002\u0002\u000b\u0124\u0003\u0002", - "\u0002\u0002\r\u0127\u0003\u0002\u0002\u0002\u000f\u0129\u0003\u0002", - "\u0002\u0002\u0011\u012b\u0003\u0002\u0002\u0002\u0013\u012e\u0003\u0002", - "\u0002\u0002\u0015\u0130\u0003\u0002\u0002\u0002\u0017\u0133\u0003\u0002", - "\u0002\u0002\u0019\u013a\u0003\u0002\u0002\u0002\u001b\u013c\u0003\u0002", - "\u0002\u0002\u001d\u0141\u0003\u0002\u0002\u0002\u001f\u0143\u0003\u0002", - "\u0002\u0002!\u0145\u0003\u0002\u0002\u0002#\u0147\u0003\u0002\u0002", - "\u0002%\u0150\u0003\u0002\u0002\u0002\'\u0159\u0003\u0002\u0002\u0002", - ")\u0163\u0003\u0002\u0002\u0002+\u016b\u0003\u0002\u0002\u0002-\u016e", - "\u0003\u0002\u0002\u0002/\u0170\u0003\u0002\u0002\u00021\u0172\u0003", - "\u0002\u0002\u00023\u0178\u0003\u0002\u0002\u00025\u017c\u0003\u0002", - "\u0002\u00027\u0183\u0003\u0002\u0002\u00029\u018c\u0003\u0002\u0002", - "\u0002;\u0195\u0003\u0002\u0002\u0002=\u019d\u0003\u0002\u0002\u0002", - "?\u01a3\u0003\u0002\u0002\u0002A\u01a8\u0003\u0002\u0002\u0002C\u01aa", - "\u0003\u0002\u0002\u0002E\u01ac\u0003\u0002\u0002\u0002G\u01b4\u0003", - "\u0002\u0002\u0002I\u01b6\u0003\u0002\u0002\u0002K\u01be\u0003\u0002", - "\u0002\u0002M\u01c1\u0003\u0002\u0002\u0002O\u01c8\u0003\u0002\u0002", - "\u0002Q\u01d0\u0003\u0002\u0002\u0002S\u01d9\u0003\u0002\u0002\u0002", - "U\u01dc\u0003\u0002\u0002\u0002W\u01e1\u0003\u0002\u0002\u0002Y\u01e5", - "\u0003\u0002\u0002\u0002[\u01eb\u0003\u0002\u0002\u0002]\u01f1\u0003", - "\u0002\u0002\u0002_\u01fa\u0003\u0002\u0002\u0002a\u01fd\u0003\u0002", - "\u0002\u0002c\u0204\u0003\u0002\u0002\u0002e\u020a\u0003\u0002\u0002", - "\u0002g\u020f\u0003\u0002\u0002\u0002i\u0213\u0003\u0002\u0002\u0002", - "k\u0218\u0003\u0002\u0002\u0002m\u021f\u0003\u0002\u0002\u0002o\u0224", - "\u0003\u0002\u0002\u0002q\u0227\u0003\u0002\u0002\u0002s\u022a\u0003", - "\u0002\u0002\u0002u\u022e\u0003\u0002\u0002\u0002w\u0230\u0003\u0002", - "\u0002\u0002y\u0232\u0003\u0002\u0002\u0002{\u0234\u0003\u0002\u0002", - "\u0002}\u023a\u0003\u0002\u0002\u0002\u007f\u0241\u0003\u0002\u0002", - "\u0002\u0081\u0243\u0003\u0002\u0002\u0002\u0083\u0246\u0003\u0002\u0002", - "\u0002\u0085\u0248\u0003\u0002\u0002\u0002\u0087\u024a\u0003\u0002\u0002", - "\u0002\u0089\u024d\u0003\u0002\u0002\u0002\u008b\u0250\u0003\u0002\u0002", - "\u0002\u008d\u0252\u0003\u0002\u0002\u0002\u008f\u0254\u0003\u0002\u0002", - "\u0002\u0091\u0257\u0003\u0002\u0002\u0002\u0093\u025a\u0003\u0002\u0002", - "\u0002\u0095\u025d\u0003\u0002\u0002\u0002\u0097\u0260\u0003\u0002\u0002", - "\u0002\u0099\u0262\u0003\u0002\u0002\u0002\u009b\u0265\u0003\u0002\u0002", - "\u0002\u009d\u0268\u0003\u0002\u0002\u0002\u009f\u026b\u0003\u0002\u0002", - "\u0002\u00a1\u026f\u0003\u0002\u0002\u0002\u00a3\u0273\u0003\u0002\u0002", - "\u0002\u00a5\u0276\u0003\u0002\u0002\u0002\u00a7\u0279\u0003\u0002\u0002", - "\u0002\u00a9\u027c\u0003\u0002\u0002\u0002\u00ab\u027f\u0003\u0002\u0002", - "\u0002\u00ad\u0282\u0003\u0002\u0002\u0002\u00af\u0286\u0003\u0002\u0002", - "\u0002\u00b1\u0289\u0003\u0002\u0002\u0002\u00b3\u028c\u0003\u0002\u0002", - "\u0002\u00b5\u0293\u0003\u0002\u0002\u0002\u00b7\u0298\u0003\u0002\u0002", - "\u0002\u00b9\u02a0\u0003\u0002\u0002\u0002\u00bb\u02a3\u0003\u0002\u0002", - "\u0002\u00bd\u02ac\u0003\u0002\u0002\u0002\u00bf\u036b\u0003\u0002\u0002", - "\u0002\u00c1\u0444\u0003\u0002\u0002\u0002\u00c3\u0522\u0003\u0002\u0002", - "\u0002\u00c5\u053a\u0003\u0002\u0002\u0002\u00c7\u0554\u0003\u0002\u0002", - "\u0002\u00c9\u055f\u0003\u0002\u0002\u0002\u00cb\u0567\u0003\u0002\u0002", - "\u0002\u00cd\u056d\u0003\u0002\u0002\u0002\u00cf\u0577\u0003\u0002\u0002", - "\u0002\u00d1\u057b\u0003\u0002\u0002\u0002\u00d3\u05b9\u0003\u0002\u0002", - "\u0002\u00d5\u05bb\u0003\u0002\u0002\u0002\u00d7\u05cb\u0003\u0002\u0002", - "\u0002\u00d9\u05ce\u0003\u0002\u0002\u0002\u00db\u0628\u0003\u0002\u0002", - "\u0002\u00dd\u062a\u0003\u0002\u0002\u0002\u00df\u0634\u0003\u0002\u0002", - "\u0002\u00e1\u063a\u0003\u0002\u0002\u0002\u00e3\u0643\u0003\u0002\u0002", - "\u0002\u00e5\u064d\u0003\u0002\u0002\u0002\u00e7\u0656\u0003\u0002\u0002", - "\u0002\u00e9\u065c\u0003\u0002\u0002\u0002\u00eb\u0665\u0003\u0002\u0002", - "\u0002\u00ed\u066d\u0003\u0002\u0002\u0002\u00ef\u0676\u0003\u0002\u0002", - "\u0002\u00f1\u067e\u0003\u0002\u0002\u0002\u00f3\u0686\u0003\u0002\u0002", - "\u0002\u00f5\u068d\u0003\u0002\u0002\u0002\u00f7\u0695\u0003\u0002\u0002", - "\u0002\u00f9\u069a\u0003\u0002\u0002\u0002\u00fb\u069f\u0003\u0002\u0002", - "\u0002\u00fd\u06a4\u0003\u0002\u0002\u0002\u00ff\u06b0\u0003\u0002\u0002", - "\u0002\u0101\u06b9\u0003\u0002\u0002\u0002\u0103\u06c1\u0003\u0002\u0002", - "\u0002\u0105\u06c8\u0003\u0002\u0002\u0002\u0107\u06ca\u0003\u0002\u0002", - "\u0002\u0109\u06dc\u0003\u0002\u0002\u0002\u010b\u06e1\u0003\u0002\u0002", - "\u0002\u010d\u06e6\u0003\u0002\u0002\u0002\u010f\u06e9\u0003\u0002\u0002", - "\u0002\u0111\u06fc\u0003\u0002\u0002\u0002\u0113\u0702\u0003\u0002\u0002", - "\u0002\u0115\u0710\u0003\u0002\u0002\u0002\u0117\u0118\u0007r\u0002", - "\u0002\u0118\u0119\u0007t\u0002\u0002\u0119\u011a\u0007c\u0002\u0002", - "\u011a\u011b\u0007i\u0002\u0002\u011b\u011c\u0007o\u0002\u0002\u011c", - "\u011d\u0007c\u0002\u0002\u011d\u0004\u0003\u0002\u0002\u0002\u011e", - "\u011f\u0007=\u0002\u0002\u011f\u0006\u0003\u0002\u0002\u0002\u0120", - "\u0121\u0007`\u0002\u0002\u0121\b\u0003\u0002\u0002\u0002\u0122\u0123", - "\u0007\u0080\u0002\u0002\u0123\n\u0003\u0002\u0002\u0002\u0124\u0125", - "\u0007@\u0002\u0002\u0125\u0126\u0007?\u0002\u0002\u0126\f\u0003\u0002", - "\u0002\u0002\u0127\u0128\u0007@\u0002\u0002\u0128\u000e\u0003\u0002", - "\u0002\u0002\u0129\u012a\u0007>\u0002\u0002\u012a\u0010\u0003\u0002", - "\u0002\u0002\u012b\u012c\u0007>\u0002\u0002\u012c\u012d\u0007?\u0002", - "\u0002\u012d\u0012\u0003\u0002\u0002\u0002\u012e\u012f\u0007?\u0002", - "\u0002\u012f\u0014\u0003\u0002\u0002\u0002\u0130\u0131\u0007c\u0002", - "\u0002\u0131\u0132\u0007u\u0002\u0002\u0132\u0016\u0003\u0002\u0002", - "\u0002\u0133\u0134\u0007k\u0002\u0002\u0134\u0135\u0007o\u0002\u0002", - "\u0135\u0136\u0007r\u0002\u0002\u0136\u0137\u0007q\u0002\u0002\u0137", - "\u0138\u0007t\u0002\u0002\u0138\u0139\u0007v\u0002\u0002\u0139\u0018", - "\u0003\u0002\u0002\u0002\u013a\u013b\u0007,\u0002\u0002\u013b\u001a", - "\u0003\u0002\u0002\u0002\u013c\u013d\u0007h\u0002\u0002\u013d\u013e", - "\u0007t\u0002\u0002\u013e\u013f\u0007q\u0002\u0002\u013f\u0140\u0007", - "o\u0002\u0002\u0140\u001c\u0003\u0002\u0002\u0002\u0141\u0142\u0007", - "}\u0002\u0002\u0142\u001e\u0003\u0002\u0002\u0002\u0143\u0144\u0007", - ".\u0002\u0002\u0144 \u0003\u0002\u0002\u0002\u0145\u0146\u0007\u007f", - "\u0002\u0002\u0146\"\u0003\u0002\u0002\u0002\u0147\u0148\u0007c\u0002", - "\u0002\u0148\u0149\u0007d\u0002\u0002\u0149\u014a\u0007u\u0002\u0002", - "\u014a\u014b\u0007v\u0002\u0002\u014b\u014c\u0007t\u0002\u0002\u014c", - "\u014d\u0007c\u0002\u0002\u014d\u014e\u0007e\u0002\u0002\u014e\u014f", - "\u0007v\u0002\u0002\u014f$\u0003\u0002\u0002\u0002\u0150\u0151\u0007", - "e\u0002\u0002\u0151\u0152\u0007q\u0002\u0002\u0152\u0153\u0007p\u0002", - "\u0002\u0153\u0154\u0007v\u0002\u0002\u0154\u0155\u0007t\u0002\u0002", - "\u0155\u0156\u0007c\u0002\u0002\u0156\u0157\u0007e\u0002\u0002\u0157", - "\u0158\u0007v\u0002\u0002\u0158&\u0003\u0002\u0002\u0002\u0159\u015a", - "\u0007k\u0002\u0002\u015a\u015b\u0007p\u0002\u0002\u015b\u015c\u0007", - "v\u0002\u0002\u015c\u015d\u0007g\u0002\u0002\u015d\u015e\u0007t\u0002", - "\u0002\u015e\u015f\u0007h\u0002\u0002\u015f\u0160\u0007c\u0002\u0002", - "\u0160\u0161\u0007e\u0002\u0002\u0161\u0162\u0007g\u0002\u0002\u0162", - "(\u0003\u0002\u0002\u0002\u0163\u0164\u0007n\u0002\u0002\u0164\u0165", - "\u0007k\u0002\u0002\u0165\u0166\u0007d\u0002\u0002\u0166\u0167\u0007", - "t\u0002\u0002\u0167\u0168\u0007c\u0002\u0002\u0168\u0169\u0007t\u0002", - "\u0002\u0169\u016a\u0007{\u0002\u0002\u016a*\u0003\u0002\u0002\u0002", - "\u016b\u016c\u0007k\u0002\u0002\u016c\u016d\u0007u\u0002\u0002\u016d", - ",\u0003\u0002\u0002\u0002\u016e\u016f\u0007*\u0002\u0002\u016f.\u0003", - "\u0002\u0002\u0002\u0170\u0171\u0007+\u0002\u0002\u01710\u0003\u0002", - "\u0002\u0002\u0172\u0173\u0007w\u0002\u0002\u0173\u0174\u0007u\u0002", - "\u0002\u0174\u0175\u0007k\u0002\u0002\u0175\u0176\u0007p\u0002\u0002", - "\u0176\u0177\u0007i\u0002\u0002\u01772\u0003\u0002\u0002\u0002\u0178", - "\u0179\u0007h\u0002\u0002\u0179\u017a\u0007q\u0002\u0002\u017a\u017b", - "\u0007t\u0002\u0002\u017b4\u0003\u0002\u0002\u0002\u017c\u017d\u0007", - "u\u0002\u0002\u017d\u017e\u0007v\u0002\u0002\u017e\u017f\u0007t\u0002", - "\u0002\u017f\u0180\u0007w\u0002\u0002\u0180\u0181\u0007e\u0002\u0002", - "\u0181\u0182\u0007v\u0002\u0002\u01826\u0003\u0002\u0002\u0002\u0183", - "\u0184\u0007o\u0002\u0002\u0184\u0185\u0007q\u0002\u0002\u0185\u0186", - "\u0007f\u0002\u0002\u0186\u0187\u0007k\u0002\u0002\u0187\u0188\u0007", - "h\u0002\u0002\u0188\u0189\u0007k\u0002\u0002\u0189\u018a\u0007g\u0002", - "\u0002\u018a\u018b\u0007t\u0002\u0002\u018b8\u0003\u0002\u0002\u0002", - "\u018c\u018d\u0007h\u0002\u0002\u018d\u018e\u0007w\u0002\u0002\u018e", - "\u018f\u0007p\u0002\u0002\u018f\u0190\u0007e\u0002\u0002\u0190\u0191", - "\u0007v\u0002\u0002\u0191\u0192\u0007k\u0002\u0002\u0192\u0193\u0007", - "q\u0002\u0002\u0193\u0194\u0007p\u0002\u0002\u0194:\u0003\u0002\u0002", - "\u0002\u0195\u0196\u0007t\u0002\u0002\u0196\u0197\u0007g\u0002\u0002", - "\u0197\u0198\u0007v\u0002\u0002\u0198\u0199\u0007w\u0002\u0002\u0199", - "\u019a\u0007t\u0002\u0002\u019a\u019b\u0007p\u0002\u0002\u019b\u019c", - "\u0007u\u0002\u0002\u019c<\u0003\u0002\u0002\u0002\u019d\u019e\u0007", - "g\u0002\u0002\u019e\u019f\u0007x\u0002\u0002\u019f\u01a0\u0007g\u0002", - "\u0002\u01a0\u01a1\u0007p\u0002\u0002\u01a1\u01a2\u0007v\u0002\u0002", - "\u01a2>\u0003\u0002\u0002\u0002\u01a3\u01a4\u0007g\u0002\u0002\u01a4", - "\u01a5\u0007p\u0002\u0002\u01a5\u01a6\u0007w\u0002\u0002\u01a6\u01a7", - "\u0007o\u0002\u0002\u01a7@\u0003\u0002\u0002\u0002\u01a8\u01a9\u0007", - "]\u0002\u0002\u01a9B\u0003\u0002\u0002\u0002\u01aa\u01ab\u0007_\u0002", - "\u0002\u01abD\u0003\u0002\u0002\u0002\u01ac\u01ad\u0007c\u0002\u0002", - "\u01ad\u01ae\u0007f\u0002\u0002\u01ae\u01af\u0007f\u0002\u0002\u01af", - "\u01b0\u0007t\u0002\u0002\u01b0\u01b1\u0007g\u0002\u0002\u01b1\u01b2", - "\u0007u\u0002\u0002\u01b2\u01b3\u0007u\u0002\u0002\u01b3F\u0003\u0002", - "\u0002\u0002\u01b4\u01b5\u00070\u0002\u0002\u01b5H\u0003\u0002\u0002", - "\u0002\u01b6\u01b7\u0007o\u0002\u0002\u01b7\u01b8\u0007c\u0002\u0002", - "\u01b8\u01b9\u0007r\u0002\u0002\u01b9\u01ba\u0007r\u0002\u0002\u01ba", - "\u01bb\u0007k\u0002\u0002\u01bb\u01bc\u0007p\u0002\u0002\u01bc\u01bd", - "\u0007i\u0002\u0002\u01bdJ\u0003\u0002\u0002\u0002\u01be\u01bf\u0007", - "?\u0002\u0002\u01bf\u01c0\u0007@\u0002\u0002\u01c0L\u0003\u0002\u0002", - "\u0002\u01c1\u01c2\u0007o\u0002\u0002\u01c2\u01c3\u0007g\u0002\u0002", - "\u01c3\u01c4\u0007o\u0002\u0002\u01c4\u01c5\u0007q\u0002\u0002\u01c5", - "\u01c6\u0007t\u0002\u0002\u01c6\u01c7\u0007{\u0002\u0002\u01c7N\u0003", - "\u0002\u0002\u0002\u01c8\u01c9\u0007u\u0002\u0002\u01c9\u01ca\u0007", - "v\u0002\u0002\u01ca\u01cb\u0007q\u0002\u0002\u01cb\u01cc\u0007t\u0002", - "\u0002\u01cc\u01cd\u0007c\u0002\u0002\u01cd\u01ce\u0007i\u0002\u0002", - "\u01ce\u01cf\u0007g\u0002\u0002\u01cfP\u0003\u0002\u0002\u0002\u01d0", - "\u01d1\u0007e\u0002\u0002\u01d1\u01d2\u0007c\u0002\u0002\u01d2\u01d3", - "\u0007n\u0002\u0002\u01d3\u01d4\u0007n\u0002\u0002\u01d4\u01d5\u0007", - "f\u0002\u0002\u01d5\u01d6\u0007c\u0002\u0002\u01d6\u01d7\u0007v\u0002", - "\u0002\u01d7\u01d8\u0007c\u0002\u0002\u01d8R\u0003\u0002\u0002\u0002", - "\u01d9\u01da\u0007k\u0002\u0002\u01da\u01db\u0007h\u0002\u0002\u01db", - "T\u0003\u0002\u0002\u0002\u01dc\u01dd\u0007g\u0002\u0002\u01dd\u01de", - "\u0007n\u0002\u0002\u01de\u01df\u0007u\u0002\u0002\u01df\u01e0\u0007", - "g\u0002\u0002\u01e0V\u0003\u0002\u0002\u0002\u01e1\u01e2\u0007v\u0002", - "\u0002\u01e2\u01e3\u0007t\u0002\u0002\u01e3\u01e4\u0007{\u0002\u0002", - "\u01e4X\u0003\u0002\u0002\u0002\u01e5\u01e6\u0007e\u0002\u0002\u01e6", - "\u01e7\u0007c\u0002\u0002\u01e7\u01e8\u0007v\u0002\u0002\u01e8\u01e9", - "\u0007e\u0002\u0002\u01e9\u01ea\u0007j\u0002\u0002\u01eaZ\u0003\u0002", - "\u0002\u0002\u01eb\u01ec\u0007y\u0002\u0002\u01ec\u01ed\u0007j\u0002", - "\u0002\u01ed\u01ee\u0007k\u0002\u0002\u01ee\u01ef\u0007n\u0002\u0002", - "\u01ef\u01f0\u0007g\u0002\u0002\u01f0\\\u0003\u0002\u0002\u0002\u01f1", - "\u01f2\u0007c\u0002\u0002\u01f2\u01f3\u0007u\u0002\u0002\u01f3\u01f4", - "\u0007u\u0002\u0002\u01f4\u01f5\u0007g\u0002\u0002\u01f5\u01f6\u0007", - "o\u0002\u0002\u01f6\u01f7\u0007d\u0002\u0002\u01f7\u01f8\u0007n\u0002", - "\u0002\u01f8\u01f9\u0007{\u0002\u0002\u01f9^\u0003\u0002\u0002\u0002", - "\u01fa\u01fb\u0007f\u0002\u0002\u01fb\u01fc\u0007q\u0002\u0002\u01fc", - "`\u0003\u0002\u0002\u0002\u01fd\u01fe\u0007t\u0002\u0002\u01fe\u01ff", - "\u0007g\u0002\u0002\u01ff\u0200\u0007v\u0002\u0002\u0200\u0201\u0007", - "w\u0002\u0002\u0201\u0202\u0007t\u0002\u0002\u0202\u0203\u0007p\u0002", - "\u0002\u0203b\u0003\u0002\u0002\u0002\u0204\u0205\u0007v\u0002\u0002", - "\u0205\u0206\u0007j\u0002\u0002\u0206\u0207\u0007t\u0002\u0002\u0207", - "\u0208\u0007q\u0002\u0002\u0208\u0209\u0007y\u0002\u0002\u0209d\u0003", - "\u0002\u0002\u0002\u020a\u020b\u0007g\u0002\u0002\u020b\u020c\u0007", - "o\u0002\u0002\u020c\u020d\u0007k\u0002\u0002\u020d\u020e\u0007v\u0002", - "\u0002\u020ef\u0003\u0002\u0002\u0002\u020f\u0210\u0007x\u0002\u0002", - "\u0210\u0211\u0007c\u0002\u0002\u0211\u0212\u0007t\u0002\u0002\u0212", - "h\u0003\u0002\u0002\u0002\u0213\u0214\u0007d\u0002\u0002\u0214\u0215", - "\u0007q\u0002\u0002\u0215\u0216\u0007q\u0002\u0002\u0216\u0217\u0007", - "n\u0002\u0002\u0217j\u0003\u0002\u0002\u0002\u0218\u0219\u0007u\u0002", - "\u0002\u0219\u021a\u0007v\u0002\u0002\u021a\u021b\u0007t\u0002\u0002", - "\u021b\u021c\u0007k\u0002\u0002\u021c\u021d\u0007p\u0002\u0002\u021d", - "\u021e\u0007i\u0002\u0002\u021el\u0003\u0002\u0002\u0002\u021f\u0220", - "\u0007d\u0002\u0002\u0220\u0221\u0007{\u0002\u0002\u0221\u0222\u0007", - "v\u0002\u0002\u0222\u0223\u0007g\u0002\u0002\u0223n\u0003\u0002\u0002", - "\u0002\u0224\u0225\u0007-\u0002\u0002\u0225\u0226\u0007-\u0002\u0002", - "\u0226p\u0003\u0002\u0002\u0002\u0227\u0228\u0007/\u0002\u0002\u0228", - "\u0229\u0007/\u0002\u0002\u0229r\u0003\u0002\u0002\u0002\u022a\u022b", - "\u0007p\u0002\u0002\u022b\u022c\u0007g\u0002\u0002\u022c\u022d\u0007", - "y\u0002\u0002\u022dt\u0003\u0002\u0002\u0002\u022e\u022f\u0007<\u0002", - "\u0002\u022fv\u0003\u0002\u0002\u0002\u0230\u0231\u0007-\u0002\u0002", - "\u0231x\u0003\u0002\u0002\u0002\u0232\u0233\u0007/\u0002\u0002\u0233", - "z\u0003\u0002\u0002\u0002\u0234\u0235\u0007c\u0002\u0002\u0235\u0236", - "\u0007h\u0002\u0002\u0236\u0237\u0007v\u0002\u0002\u0237\u0238\u0007", - "g\u0002\u0002\u0238\u0239\u0007t\u0002\u0002\u0239|\u0003\u0002\u0002", - "\u0002\u023a\u023b\u0007f\u0002\u0002\u023b\u023c\u0007g\u0002\u0002", - "\u023c\u023d\u0007n\u0002\u0002\u023d\u023e\u0007g\u0002\u0002\u023e", - "\u023f\u0007v\u0002\u0002\u023f\u0240\u0007g\u0002\u0002\u0240~\u0003", - "\u0002\u0002\u0002\u0241\u0242\u0007#\u0002\u0002\u0242\u0080\u0003", - "\u0002\u0002\u0002\u0243\u0244\u0007,\u0002\u0002\u0244\u0245\u0007", - ",\u0002\u0002\u0245\u0082\u0003\u0002\u0002\u0002\u0246\u0247\u0007", - "1\u0002\u0002\u0247\u0084\u0003\u0002\u0002\u0002\u0248\u0249\u0007", - "\'\u0002\u0002\u0249\u0086\u0003\u0002\u0002\u0002\u024a\u024b\u0007", - ">\u0002\u0002\u024b\u024c\u0007>\u0002\u0002\u024c\u0088\u0003\u0002", - "\u0002\u0002\u024d\u024e\u0007@\u0002\u0002\u024e\u024f\u0007@\u0002", - "\u0002\u024f\u008a\u0003\u0002\u0002\u0002\u0250\u0251\u0007(\u0002", - "\u0002\u0251\u008c\u0003\u0002\u0002\u0002\u0252\u0253\u0007~\u0002", - "\u0002\u0253\u008e\u0003\u0002\u0002\u0002\u0254\u0255\u0007?\u0002", - "\u0002\u0255\u0256\u0007?\u0002\u0002\u0256\u0090\u0003\u0002\u0002", - "\u0002\u0257\u0258\u0007#\u0002\u0002\u0258\u0259\u0007?\u0002\u0002", - "\u0259\u0092\u0003\u0002\u0002\u0002\u025a\u025b\u0007(\u0002\u0002", - "\u025b\u025c\u0007(\u0002\u0002\u025c\u0094\u0003\u0002\u0002\u0002", - "\u025d\u025e\u0007~\u0002\u0002\u025e\u025f\u0007~\u0002\u0002\u025f", - "\u0096\u0003\u0002\u0002\u0002\u0260\u0261\u0007A\u0002\u0002\u0261", - "\u0098\u0003\u0002\u0002\u0002\u0262\u0263\u0007~\u0002\u0002\u0263", - "\u0264\u0007?\u0002\u0002\u0264\u009a\u0003\u0002\u0002\u0002\u0265", - "\u0266\u0007`\u0002\u0002\u0266\u0267\u0007?\u0002\u0002\u0267\u009c", - "\u0003\u0002\u0002\u0002\u0268\u0269\u0007(\u0002\u0002\u0269\u026a", - "\u0007?\u0002\u0002\u026a\u009e\u0003\u0002\u0002\u0002\u026b\u026c", - "\u0007>\u0002\u0002\u026c\u026d\u0007>\u0002\u0002\u026d\u026e\u0007", - "?\u0002\u0002\u026e\u00a0\u0003\u0002\u0002\u0002\u026f\u0270\u0007", - "@\u0002\u0002\u0270\u0271\u0007@\u0002\u0002\u0271\u0272\u0007?\u0002", - "\u0002\u0272\u00a2\u0003\u0002\u0002\u0002\u0273\u0274\u0007-\u0002", - "\u0002\u0274\u0275\u0007?\u0002\u0002\u0275\u00a4\u0003\u0002\u0002", - "\u0002\u0276\u0277\u0007/\u0002\u0002\u0277\u0278\u0007?\u0002\u0002", - "\u0278\u00a6\u0003\u0002\u0002\u0002\u0279\u027a\u0007,\u0002\u0002", - "\u027a\u027b\u0007?\u0002\u0002\u027b\u00a8\u0003\u0002\u0002\u0002", - "\u027c\u027d\u00071\u0002\u0002\u027d\u027e\u0007?\u0002\u0002\u027e", - "\u00aa\u0003\u0002\u0002\u0002\u027f\u0280\u0007\'\u0002\u0002\u0280", - "\u0281\u0007?\u0002\u0002\u0281\u00ac\u0003\u0002\u0002\u0002\u0282", - "\u0283\u0007n\u0002\u0002\u0283\u0284\u0007g\u0002\u0002\u0284\u0285", - "\u0007v\u0002\u0002\u0285\u00ae\u0003\u0002\u0002\u0002\u0286\u0287", - "\u0007<\u0002\u0002\u0287\u0288\u0007?\u0002\u0002\u0288\u00b0\u0003", - "\u0002\u0002\u0002\u0289\u028a\u0007?\u0002\u0002\u028a\u028b\u0007", - "<\u0002\u0002\u028b\u00b2\u0003\u0002\u0002\u0002\u028c\u028d\u0007", - "u\u0002\u0002\u028d\u028e\u0007y\u0002\u0002\u028e\u028f\u0007k\u0002", - "\u0002\u028f\u0290\u0007v\u0002\u0002\u0290\u0291\u0007e\u0002\u0002", - "\u0291\u0292\u0007j\u0002\u0002\u0292\u00b4\u0003\u0002\u0002\u0002", - "\u0293\u0294\u0007e\u0002\u0002\u0294\u0295\u0007c\u0002\u0002\u0295", - "\u0296\u0007u\u0002\u0002\u0296\u0297\u0007g\u0002\u0002\u0297\u00b6", - "\u0003\u0002\u0002\u0002\u0298\u0299\u0007f\u0002\u0002\u0299\u029a", - "\u0007g\u0002\u0002\u029a\u029b\u0007h\u0002\u0002\u029b\u029c\u0007", - "c\u0002\u0002\u029c\u029d\u0007w\u0002\u0002\u029d\u029e\u0007n\u0002", - "\u0002\u029e\u029f\u0007v\u0002\u0002\u029f\u00b8\u0003\u0002\u0002", - "\u0002\u02a0\u02a1\u0007/\u0002\u0002\u02a1\u02a2\u0007@\u0002\u0002", - "\u02a2\u00ba\u0003\u0002\u0002\u0002\u02a3\u02a4\u0007e\u0002\u0002", - "\u02a4\u02a5\u0007c\u0002\u0002\u02a5\u02a6\u0007n\u0002\u0002\u02a6", - "\u02a7\u0007n\u0002\u0002\u02a7\u02a8\u0007d\u0002\u0002\u02a8\u02a9", - "\u0007c\u0002\u0002\u02a9\u02aa\u0007e\u0002\u0002\u02aa\u02ab\u0007", - "m\u0002\u0002\u02ab\u00bc\u0003\u0002\u0002\u0002\u02ac\u02ad\u0007", - "q\u0002\u0002\u02ad\u02ae\u0007x\u0002\u0002\u02ae\u02af\u0007g\u0002", - "\u0002\u02af\u02b0\u0007t\u0002\u0002\u02b0\u02b1\u0007t\u0002\u0002", - "\u02b1\u02b2\u0007k\u0002\u0002\u02b2\u02b3\u0007f\u0002\u0002\u02b3", - "\u02b4\u0007g\u0002\u0002\u02b4\u00be\u0003\u0002\u0002\u0002\u02b5", - "\u02b6\u0007k\u0002\u0002\u02b6\u02b7\u0007p\u0002\u0002\u02b7\u036c", - "\u0007v\u0002\u0002\u02b8\u02b9\u0007k\u0002\u0002\u02b9\u02ba\u0007", - "p\u0002\u0002\u02ba\u02bb\u0007v\u0002\u0002\u02bb\u036c\u0007:\u0002", - "\u0002\u02bc\u02bd\u0007k\u0002\u0002\u02bd\u02be\u0007p\u0002\u0002", - "\u02be\u02bf\u0007v\u0002\u0002\u02bf\u02c0\u00073\u0002\u0002\u02c0", - "\u036c\u00078\u0002\u0002\u02c1\u02c2\u0007k\u0002\u0002\u02c2\u02c3", - "\u0007p\u0002\u0002\u02c3\u02c4\u0007v\u0002\u0002\u02c4\u02c5\u0007", - "4\u0002\u0002\u02c5\u036c\u00076\u0002\u0002\u02c6\u02c7\u0007k\u0002", - "\u0002\u02c7\u02c8\u0007p\u0002\u0002\u02c8\u02c9\u0007v\u0002\u0002", - "\u02c9\u02ca\u00075\u0002\u0002\u02ca\u036c\u00074\u0002\u0002\u02cb", - "\u02cc\u0007k\u0002\u0002\u02cc\u02cd\u0007p\u0002\u0002\u02cd\u02ce", - "\u0007v\u0002\u0002\u02ce\u02cf\u00076\u0002\u0002\u02cf\u036c\u0007", - "2\u0002\u0002\u02d0\u02d1\u0007k\u0002\u0002\u02d1\u02d2\u0007p\u0002", - "\u0002\u02d2\u02d3\u0007v\u0002\u0002\u02d3\u02d4\u00076\u0002\u0002", - "\u02d4\u036c\u0007:\u0002\u0002\u02d5\u02d6\u0007k\u0002\u0002\u02d6", - "\u02d7\u0007p\u0002\u0002\u02d7\u02d8\u0007v\u0002\u0002\u02d8\u02d9", - "\u00077\u0002\u0002\u02d9\u036c\u00078\u0002\u0002\u02da\u02db\u0007", - "k\u0002\u0002\u02db\u02dc\u0007p\u0002\u0002\u02dc\u02dd\u0007v\u0002", - "\u0002\u02dd\u02de\u00078\u0002\u0002\u02de\u036c\u00076\u0002\u0002", - "\u02df\u02e0\u0007k\u0002\u0002\u02e0\u02e1\u0007p\u0002\u0002\u02e1", - "\u02e2\u0007v\u0002\u0002\u02e2\u02e3\u00079\u0002\u0002\u02e3\u036c", - "\u00074\u0002\u0002\u02e4\u02e5\u0007k\u0002\u0002\u02e5\u02e6\u0007", - "p\u0002\u0002\u02e6\u02e7\u0007v\u0002\u0002\u02e7\u02e8\u0007:\u0002", - "\u0002\u02e8\u036c\u00072\u0002\u0002\u02e9\u02ea\u0007k\u0002\u0002", - "\u02ea\u02eb\u0007p\u0002\u0002\u02eb\u02ec\u0007v\u0002\u0002\u02ec", - "\u02ed\u0007:\u0002\u0002\u02ed\u036c\u0007:\u0002\u0002\u02ee\u02ef", - "\u0007k\u0002\u0002\u02ef\u02f0\u0007p\u0002\u0002\u02f0\u02f1\u0007", - "v\u0002\u0002\u02f1\u02f2\u0007;\u0002\u0002\u02f2\u036c\u00078\u0002", - "\u0002\u02f3\u02f4\u0007k\u0002\u0002\u02f4\u02f5\u0007p\u0002\u0002", - "\u02f5\u02f6\u0007v\u0002\u0002\u02f6\u02f7\u00073\u0002\u0002\u02f7", - "\u02f8\u00072\u0002\u0002\u02f8\u036c\u00076\u0002\u0002\u02f9\u02fa", - "\u0007k\u0002\u0002\u02fa\u02fb\u0007p\u0002\u0002\u02fb\u02fc\u0007", - "v\u0002\u0002\u02fc\u02fd\u00073\u0002\u0002\u02fd\u02fe\u00073\u0002", - "\u0002\u02fe\u036c\u00074\u0002\u0002\u02ff\u0300\u0007k\u0002\u0002", - "\u0300\u0301\u0007p\u0002\u0002\u0301\u0302\u0007v\u0002\u0002\u0302", - "\u0303\u00073\u0002\u0002\u0303\u0304\u00074\u0002\u0002\u0304\u036c", - "\u00072\u0002\u0002\u0305\u0306\u0007k\u0002\u0002\u0306\u0307\u0007", - "p\u0002\u0002\u0307\u0308\u0007v\u0002\u0002\u0308\u0309\u00073\u0002", - "\u0002\u0309\u030a\u00074\u0002\u0002\u030a\u036c\u0007:\u0002\u0002", - "\u030b\u030c\u0007k\u0002\u0002\u030c\u030d\u0007p\u0002\u0002\u030d", - "\u030e\u0007v\u0002\u0002\u030e\u030f\u00073\u0002\u0002\u030f\u0310", - "\u00075\u0002\u0002\u0310\u036c\u00078\u0002\u0002\u0311\u0312\u0007", - "k\u0002\u0002\u0312\u0313\u0007p\u0002\u0002\u0313\u0314\u0007v\u0002", - "\u0002\u0314\u0315\u00073\u0002\u0002\u0315\u0316\u00076\u0002\u0002", - "\u0316\u036c\u00076\u0002\u0002\u0317\u0318\u0007k\u0002\u0002\u0318", - "\u0319\u0007p\u0002\u0002\u0319\u031a\u0007v\u0002\u0002\u031a\u031b", - "\u00073\u0002\u0002\u031b\u031c\u00077\u0002\u0002\u031c\u036c\u0007", - "4\u0002\u0002\u031d\u031e\u0007k\u0002\u0002\u031e\u031f\u0007p\u0002", - "\u0002\u031f\u0320\u0007v\u0002\u0002\u0320\u0321\u00073\u0002\u0002", - "\u0321\u0322\u00078\u0002\u0002\u0322\u036c\u00072\u0002\u0002\u0323", - "\u0324\u0007k\u0002\u0002\u0324\u0325\u0007p\u0002\u0002\u0325\u0326", - "\u0007v\u0002\u0002\u0326\u0327\u00073\u0002\u0002\u0327\u0328\u0007", - "8\u0002\u0002\u0328\u036c\u0007:\u0002\u0002\u0329\u032a\u0007k\u0002", - "\u0002\u032a\u032b\u0007p\u0002\u0002\u032b\u032c\u0007v\u0002\u0002", - "\u032c\u032d\u00073\u0002\u0002\u032d\u032e\u00079\u0002\u0002\u032e", - "\u036c\u00078\u0002\u0002\u032f\u0330\u0007k\u0002\u0002\u0330\u0331", - "\u0007p\u0002\u0002\u0331\u0332\u0007v\u0002\u0002\u0332\u0333\u0007", - "3\u0002\u0002\u0333\u0334\u0007:\u0002\u0002\u0334\u036c\u00076\u0002", - "\u0002\u0335\u0336\u0007k\u0002\u0002\u0336\u0337\u0007p\u0002\u0002", - "\u0337\u0338\u0007v\u0002\u0002\u0338\u0339\u00073\u0002\u0002\u0339", - "\u033a\u0007;\u0002\u0002\u033a\u036c\u00074\u0002\u0002\u033b\u033c", - "\u0007k\u0002\u0002\u033c\u033d\u0007p\u0002\u0002\u033d\u033e\u0007", - "v\u0002\u0002\u033e\u033f\u00074\u0002\u0002\u033f\u0340\u00072\u0002", - "\u0002\u0340\u036c\u00072\u0002\u0002\u0341\u0342\u0007k\u0002\u0002", - "\u0342\u0343\u0007p\u0002\u0002\u0343\u0344\u0007v\u0002\u0002\u0344", - "\u0345\u00074\u0002\u0002\u0345\u0346\u00072\u0002\u0002\u0346\u036c", - "\u0007:\u0002\u0002\u0347\u0348\u0007k\u0002\u0002\u0348\u0349\u0007", - "p\u0002\u0002\u0349\u034a\u0007v\u0002\u0002\u034a\u034b\u00074\u0002", - "\u0002\u034b\u034c\u00073\u0002\u0002\u034c\u036c\u00078\u0002\u0002", - "\u034d\u034e\u0007k\u0002\u0002\u034e\u034f\u0007p\u0002\u0002\u034f", - "\u0350\u0007v\u0002\u0002\u0350\u0351\u00074\u0002\u0002\u0351\u0352", - "\u00074\u0002\u0002\u0352\u036c\u00076\u0002\u0002\u0353\u0354\u0007", - "k\u0002\u0002\u0354\u0355\u0007p\u0002\u0002\u0355\u0356\u0007v\u0002", - "\u0002\u0356\u0357\u00074\u0002\u0002\u0357\u0358\u00075\u0002\u0002", - "\u0358\u036c\u00074\u0002\u0002\u0359\u035a\u0007k\u0002\u0002\u035a", - "\u035b\u0007p\u0002\u0002\u035b\u035c\u0007v\u0002\u0002\u035c\u035d", - "\u00074\u0002\u0002\u035d\u035e\u00076\u0002\u0002\u035e\u036c\u0007", - "2\u0002\u0002\u035f\u0360\u0007k\u0002\u0002\u0360\u0361\u0007p\u0002", - "\u0002\u0361\u0362\u0007v\u0002\u0002\u0362\u0363\u00074\u0002\u0002", - "\u0363\u0364\u00076\u0002\u0002\u0364\u036c\u0007:\u0002\u0002\u0365", - "\u0366\u0007k\u0002\u0002\u0366\u0367\u0007p\u0002\u0002\u0367\u0368", - "\u0007v\u0002\u0002\u0368\u0369\u00074\u0002\u0002\u0369\u036a\u0007", - "7\u0002\u0002\u036a\u036c\u00078\u0002\u0002\u036b\u02b5\u0003\u0002", - "\u0002\u0002\u036b\u02b8\u0003\u0002\u0002\u0002\u036b\u02bc\u0003\u0002", - "\u0002\u0002\u036b\u02c1\u0003\u0002\u0002\u0002\u036b\u02c6\u0003\u0002", - "\u0002\u0002\u036b\u02cb\u0003\u0002\u0002\u0002\u036b\u02d0\u0003\u0002", - "\u0002\u0002\u036b\u02d5\u0003\u0002\u0002\u0002\u036b\u02da\u0003\u0002", - "\u0002\u0002\u036b\u02df\u0003\u0002\u0002\u0002\u036b\u02e4\u0003\u0002", - "\u0002\u0002\u036b\u02e9\u0003\u0002\u0002\u0002\u036b\u02ee\u0003\u0002", - "\u0002\u0002\u036b\u02f3\u0003\u0002\u0002\u0002\u036b\u02f9\u0003\u0002", - "\u0002\u0002\u036b\u02ff\u0003\u0002\u0002\u0002\u036b\u0305\u0003\u0002", - "\u0002\u0002\u036b\u030b\u0003\u0002\u0002\u0002\u036b\u0311\u0003\u0002", - "\u0002\u0002\u036b\u0317\u0003\u0002\u0002\u0002\u036b\u031d\u0003\u0002", - "\u0002\u0002\u036b\u0323\u0003\u0002\u0002\u0002\u036b\u0329\u0003\u0002", - "\u0002\u0002\u036b\u032f\u0003\u0002\u0002\u0002\u036b\u0335\u0003\u0002", - "\u0002\u0002\u036b\u033b\u0003\u0002\u0002\u0002\u036b\u0341\u0003\u0002", - "\u0002\u0002\u036b\u0347\u0003\u0002\u0002\u0002\u036b\u034d\u0003\u0002", - "\u0002\u0002\u036b\u0353\u0003\u0002\u0002\u0002\u036b\u0359\u0003\u0002", - "\u0002\u0002\u036b\u035f\u0003\u0002\u0002\u0002\u036b\u0365\u0003\u0002", - "\u0002\u0002\u036c\u00c0\u0003\u0002\u0002\u0002\u036d\u036e\u0007w", - "\u0002\u0002\u036e\u036f\u0007k\u0002\u0002\u036f\u0370\u0007p\u0002", - "\u0002\u0370\u0445\u0007v\u0002\u0002\u0371\u0372\u0007w\u0002\u0002", - "\u0372\u0373\u0007k\u0002\u0002\u0373\u0374\u0007p\u0002\u0002\u0374", - "\u0375\u0007v\u0002\u0002\u0375\u0445\u0007:\u0002\u0002\u0376\u0377", - "\u0007w\u0002\u0002\u0377\u0378\u0007k\u0002\u0002\u0378\u0379\u0007", - "p\u0002\u0002\u0379\u037a\u0007v\u0002\u0002\u037a\u037b\u00073\u0002", - "\u0002\u037b\u0445\u00078\u0002\u0002\u037c\u037d\u0007w\u0002\u0002", - "\u037d\u037e\u0007k\u0002\u0002\u037e\u037f\u0007p\u0002\u0002\u037f", - "\u0380\u0007v\u0002\u0002\u0380\u0381\u00074\u0002\u0002\u0381\u0445", - "\u00076\u0002\u0002\u0382\u0383\u0007w\u0002\u0002\u0383\u0384\u0007", - "k\u0002\u0002\u0384\u0385\u0007p\u0002\u0002\u0385\u0386\u0007v\u0002", - "\u0002\u0386\u0387\u00075\u0002\u0002\u0387\u0445\u00074\u0002\u0002", - "\u0388\u0389\u0007w\u0002\u0002\u0389\u038a\u0007k\u0002\u0002\u038a", - "\u038b\u0007p\u0002\u0002\u038b\u038c\u0007v\u0002\u0002\u038c\u038d", - "\u00076\u0002\u0002\u038d\u0445\u00072\u0002\u0002\u038e\u038f\u0007", - "w\u0002\u0002\u038f\u0390\u0007k\u0002\u0002\u0390\u0391\u0007p\u0002", - "\u0002\u0391\u0392\u0007v\u0002\u0002\u0392\u0393\u00076\u0002\u0002", - "\u0393\u0445\u0007:\u0002\u0002\u0394\u0395\u0007w\u0002\u0002\u0395", - "\u0396\u0007k\u0002\u0002\u0396\u0397\u0007p\u0002\u0002\u0397\u0398", - "\u0007v\u0002\u0002\u0398\u0399\u00077\u0002\u0002\u0399\u0445\u0007", - "8\u0002\u0002\u039a\u039b\u0007w\u0002\u0002\u039b\u039c\u0007k\u0002", - "\u0002\u039c\u039d\u0007p\u0002\u0002\u039d\u039e\u0007v\u0002\u0002", - "\u039e\u039f\u00078\u0002\u0002\u039f\u0445\u00076\u0002\u0002\u03a0", - "\u03a1\u0007w\u0002\u0002\u03a1\u03a2\u0007k\u0002\u0002\u03a2\u03a3", - "\u0007p\u0002\u0002\u03a3\u03a4\u0007v\u0002\u0002\u03a4\u03a5\u0007", - "9\u0002\u0002\u03a5\u0445\u00074\u0002\u0002\u03a6\u03a7\u0007w\u0002", - "\u0002\u03a7\u03a8\u0007k\u0002\u0002\u03a8\u03a9\u0007p\u0002\u0002", - "\u03a9\u03aa\u0007v\u0002\u0002\u03aa\u03ab\u0007:\u0002\u0002\u03ab", - "\u0445\u00072\u0002\u0002\u03ac\u03ad\u0007w\u0002\u0002\u03ad\u03ae", - "\u0007k\u0002\u0002\u03ae\u03af\u0007p\u0002\u0002\u03af\u03b0\u0007", - "v\u0002\u0002\u03b0\u03b1\u0007:\u0002\u0002\u03b1\u0445\u0007:\u0002", - "\u0002\u03b2\u03b3\u0007w\u0002\u0002\u03b3\u03b4\u0007k\u0002\u0002", - "\u03b4\u03b5\u0007p\u0002\u0002\u03b5\u03b6\u0007v\u0002\u0002\u03b6", - "\u03b7\u0007;\u0002\u0002\u03b7\u0445\u00078\u0002\u0002\u03b8\u03b9", - "\u0007w\u0002\u0002\u03b9\u03ba\u0007k\u0002\u0002\u03ba\u03bb\u0007", - "p\u0002\u0002\u03bb\u03bc\u0007v\u0002\u0002\u03bc\u03bd\u00073\u0002", - "\u0002\u03bd\u03be\u00072\u0002\u0002\u03be\u0445\u00076\u0002\u0002", - "\u03bf\u03c0\u0007w\u0002\u0002\u03c0\u03c1\u0007k\u0002\u0002\u03c1", - "\u03c2\u0007p\u0002\u0002\u03c2\u03c3\u0007v\u0002\u0002\u03c3\u03c4", - "\u00073\u0002\u0002\u03c4\u03c5\u00073\u0002\u0002\u03c5\u0445\u0007", - "4\u0002\u0002\u03c6\u03c7\u0007w\u0002\u0002\u03c7\u03c8\u0007k\u0002", - "\u0002\u03c8\u03c9\u0007p\u0002\u0002\u03c9\u03ca\u0007v\u0002\u0002", - "\u03ca\u03cb\u00073\u0002\u0002\u03cb\u03cc\u00074\u0002\u0002\u03cc", - "\u0445\u00072\u0002\u0002\u03cd\u03ce\u0007w\u0002\u0002\u03ce\u03cf", - "\u0007k\u0002\u0002\u03cf\u03d0\u0007p\u0002\u0002\u03d0\u03d1\u0007", - "v\u0002\u0002\u03d1\u03d2\u00073\u0002\u0002\u03d2\u03d3\u00074\u0002", - "\u0002\u03d3\u0445\u0007:\u0002\u0002\u03d4\u03d5\u0007w\u0002\u0002", - "\u03d5\u03d6\u0007k\u0002\u0002\u03d6\u03d7\u0007p\u0002\u0002\u03d7", - "\u03d8\u0007v\u0002\u0002\u03d8\u03d9\u00073\u0002\u0002\u03d9\u03da", - "\u00075\u0002\u0002\u03da\u0445\u00078\u0002\u0002\u03db\u03dc\u0007", - "w\u0002\u0002\u03dc\u03dd\u0007k\u0002\u0002\u03dd\u03de\u0007p\u0002", - "\u0002\u03de\u03df\u0007v\u0002\u0002\u03df\u03e0\u00073\u0002\u0002", - "\u03e0\u03e1\u00076\u0002\u0002\u03e1\u0445\u00076\u0002\u0002\u03e2", - "\u03e3\u0007w\u0002\u0002\u03e3\u03e4\u0007k\u0002\u0002\u03e4\u03e5", - "\u0007p\u0002\u0002\u03e5\u03e6\u0007v\u0002\u0002\u03e6\u03e7\u0007", - "3\u0002\u0002\u03e7\u03e8\u00077\u0002\u0002\u03e8\u0445\u00074\u0002", - "\u0002\u03e9\u03ea\u0007w\u0002\u0002\u03ea\u03eb\u0007k\u0002\u0002", - "\u03eb\u03ec\u0007p\u0002\u0002\u03ec\u03ed\u0007v\u0002\u0002\u03ed", - "\u03ee\u00073\u0002\u0002\u03ee\u03ef\u00078\u0002\u0002\u03ef\u0445", - "\u00072\u0002\u0002\u03f0\u03f1\u0007w\u0002\u0002\u03f1\u03f2\u0007", - "k\u0002\u0002\u03f2\u03f3\u0007p\u0002\u0002\u03f3\u03f4\u0007v\u0002", - "\u0002\u03f4\u03f5\u00073\u0002\u0002\u03f5\u03f6\u00078\u0002\u0002", - "\u03f6\u0445\u0007:\u0002\u0002\u03f7\u03f8\u0007w\u0002\u0002\u03f8", - "\u03f9\u0007k\u0002\u0002\u03f9\u03fa\u0007p\u0002\u0002\u03fa\u03fb", - "\u0007v\u0002\u0002\u03fb\u03fc\u00073\u0002\u0002\u03fc\u03fd\u0007", - "9\u0002\u0002\u03fd\u0445\u00078\u0002\u0002\u03fe\u03ff\u0007w\u0002", - "\u0002\u03ff\u0400\u0007k\u0002\u0002\u0400\u0401\u0007p\u0002\u0002", - "\u0401\u0402\u0007v\u0002\u0002\u0402\u0403\u00073\u0002\u0002\u0403", - "\u0404\u0007:\u0002\u0002\u0404\u0445\u00076\u0002\u0002\u0405\u0406", - "\u0007w\u0002\u0002\u0406\u0407\u0007k\u0002\u0002\u0407\u0408\u0007", - "p\u0002\u0002\u0408\u0409\u0007v\u0002\u0002\u0409\u040a\u00073\u0002", - "\u0002\u040a\u040b\u0007;\u0002\u0002\u040b\u0445\u00074\u0002\u0002", - "\u040c\u040d\u0007w\u0002\u0002\u040d\u040e\u0007k\u0002\u0002\u040e", - "\u040f\u0007p\u0002\u0002\u040f\u0410\u0007v\u0002\u0002\u0410\u0411", - "\u00074\u0002\u0002\u0411\u0412\u00072\u0002\u0002\u0412\u0445\u0007", - "2\u0002\u0002\u0413\u0414\u0007w\u0002\u0002\u0414\u0415\u0007k\u0002", - "\u0002\u0415\u0416\u0007p\u0002\u0002\u0416\u0417\u0007v\u0002\u0002", - "\u0417\u0418\u00074\u0002\u0002\u0418\u0419\u00072\u0002\u0002\u0419", - "\u0445\u0007:\u0002\u0002\u041a\u041b\u0007w\u0002\u0002\u041b\u041c", - "\u0007k\u0002\u0002\u041c\u041d\u0007p\u0002\u0002\u041d\u041e\u0007", - "v\u0002\u0002\u041e\u041f\u00074\u0002\u0002\u041f\u0420\u00073\u0002", - "\u0002\u0420\u0445\u00078\u0002\u0002\u0421\u0422\u0007w\u0002\u0002", - "\u0422\u0423\u0007k\u0002\u0002\u0423\u0424\u0007p\u0002\u0002\u0424", - "\u0425\u0007v\u0002\u0002\u0425\u0426\u00074\u0002\u0002\u0426\u0427", - "\u00074\u0002\u0002\u0427\u0445\u00076\u0002\u0002\u0428\u0429\u0007", - "w\u0002\u0002\u0429\u042a\u0007k\u0002\u0002\u042a\u042b\u0007p\u0002", - "\u0002\u042b\u042c\u0007v\u0002\u0002\u042c\u042d\u00074\u0002\u0002", - "\u042d\u042e\u00075\u0002\u0002\u042e\u0445\u00074\u0002\u0002\u042f", - "\u0430\u0007w\u0002\u0002\u0430\u0431\u0007k\u0002\u0002\u0431\u0432", - "\u0007p\u0002\u0002\u0432\u0433\u0007v\u0002\u0002\u0433\u0434\u0007", - "4\u0002\u0002\u0434\u0435\u00076\u0002\u0002\u0435\u0445\u00072\u0002", - "\u0002\u0436\u0437\u0007w\u0002\u0002\u0437\u0438\u0007k\u0002\u0002", - "\u0438\u0439\u0007p\u0002\u0002\u0439\u043a\u0007v\u0002\u0002\u043a", - "\u043b\u00074\u0002\u0002\u043b\u043c\u00076\u0002\u0002\u043c\u0445", - "\u0007:\u0002\u0002\u043d\u043e\u0007w\u0002\u0002\u043e\u043f\u0007", - "k\u0002\u0002\u043f\u0440\u0007p\u0002\u0002\u0440\u0441\u0007v\u0002", - "\u0002\u0441\u0442\u00074\u0002\u0002\u0442\u0443\u00077\u0002\u0002", - "\u0443\u0445\u00078\u0002\u0002\u0444\u036d\u0003\u0002\u0002\u0002", - "\u0444\u0371\u0003\u0002\u0002\u0002\u0444\u0376\u0003\u0002\u0002\u0002", - "\u0444\u037c\u0003\u0002\u0002\u0002\u0444\u0382\u0003\u0002\u0002\u0002", - "\u0444\u0388\u0003\u0002\u0002\u0002\u0444\u038e\u0003\u0002\u0002\u0002", - "\u0444\u0394\u0003\u0002\u0002\u0002\u0444\u039a\u0003\u0002\u0002\u0002", - "\u0444\u03a0\u0003\u0002\u0002\u0002\u0444\u03a6\u0003\u0002\u0002\u0002", - "\u0444\u03ac\u0003\u0002\u0002\u0002\u0444\u03b2\u0003\u0002\u0002\u0002", - "\u0444\u03b8\u0003\u0002\u0002\u0002\u0444\u03bf\u0003\u0002\u0002\u0002", - "\u0444\u03c6\u0003\u0002\u0002\u0002\u0444\u03cd\u0003\u0002\u0002\u0002", - "\u0444\u03d4\u0003\u0002\u0002\u0002\u0444\u03db\u0003\u0002\u0002\u0002", - "\u0444\u03e2\u0003\u0002\u0002\u0002\u0444\u03e9\u0003\u0002\u0002\u0002", - "\u0444\u03f0\u0003\u0002\u0002\u0002\u0444\u03f7\u0003\u0002\u0002\u0002", - "\u0444\u03fe\u0003\u0002\u0002\u0002\u0444\u0405\u0003\u0002\u0002\u0002", - "\u0444\u040c\u0003\u0002\u0002\u0002\u0444\u0413\u0003\u0002\u0002\u0002", - "\u0444\u041a\u0003\u0002\u0002\u0002\u0444\u0421\u0003\u0002\u0002\u0002", - "\u0444\u0428\u0003\u0002\u0002\u0002\u0444\u042f\u0003\u0002\u0002\u0002", - "\u0444\u0436\u0003\u0002\u0002\u0002\u0444\u043d\u0003\u0002\u0002\u0002", - "\u0445\u00c2\u0003\u0002\u0002\u0002\u0446\u0447\u0007d\u0002\u0002", - "\u0447\u0448\u0007{\u0002\u0002\u0448\u0449\u0007v\u0002\u0002\u0449", - "\u044a\u0007g\u0002\u0002\u044a\u0523\u0007u\u0002\u0002\u044b\u044c", - "\u0007d\u0002\u0002\u044c\u044d\u0007{\u0002\u0002\u044d\u044e\u0007", - "v\u0002\u0002\u044e\u044f\u0007g\u0002\u0002\u044f\u0450\u0007u\u0002", - "\u0002\u0450\u0523\u00073\u0002\u0002\u0451\u0452\u0007d\u0002\u0002", - "\u0452\u0453\u0007{\u0002\u0002\u0453\u0454\u0007v\u0002\u0002\u0454", - "\u0455\u0007g\u0002\u0002\u0455\u0456\u0007u\u0002\u0002\u0456\u0523", - "\u00074\u0002\u0002\u0457\u0458\u0007d\u0002\u0002\u0458\u0459\u0007", - "{\u0002\u0002\u0459\u045a\u0007v\u0002\u0002\u045a\u045b\u0007g\u0002", - "\u0002\u045b\u045c\u0007u\u0002\u0002\u045c\u0523\u00075\u0002\u0002", - "\u045d\u045e\u0007d\u0002\u0002\u045e\u045f\u0007{\u0002\u0002\u045f", - "\u0460\u0007v\u0002\u0002\u0460\u0461\u0007g\u0002\u0002\u0461\u0462", - "\u0007u\u0002\u0002\u0462\u0523\u00076\u0002\u0002\u0463\u0464\u0007", - "d\u0002\u0002\u0464\u0465\u0007{\u0002\u0002\u0465\u0466\u0007v\u0002", - "\u0002\u0466\u0467\u0007g\u0002\u0002\u0467\u0468\u0007u\u0002\u0002", - "\u0468\u0523\u00077\u0002\u0002\u0469\u046a\u0007d\u0002\u0002\u046a", - "\u046b\u0007{\u0002\u0002\u046b\u046c\u0007v\u0002\u0002\u046c\u046d", - "\u0007g\u0002\u0002\u046d\u046e\u0007u\u0002\u0002\u046e\u0523\u0007", - "8\u0002\u0002\u046f\u0470\u0007d\u0002\u0002\u0470\u0471\u0007{\u0002", - "\u0002\u0471\u0472\u0007v\u0002\u0002\u0472\u0473\u0007g\u0002\u0002", - "\u0473\u0474\u0007u\u0002\u0002\u0474\u0523\u00079\u0002\u0002\u0475", - "\u0476\u0007d\u0002\u0002\u0476\u0477\u0007{\u0002\u0002\u0477\u0478", - "\u0007v\u0002\u0002\u0478\u0479\u0007g\u0002\u0002\u0479\u047a\u0007", - "u\u0002\u0002\u047a\u0523\u0007:\u0002\u0002\u047b\u047c\u0007d\u0002", - "\u0002\u047c\u047d\u0007{\u0002\u0002\u047d\u047e\u0007v\u0002\u0002", - "\u047e\u047f\u0007g\u0002\u0002\u047f\u0480\u0007u\u0002\u0002\u0480", - "\u0523\u0007;\u0002\u0002\u0481\u0482\u0007d\u0002\u0002\u0482\u0483", - "\u0007{\u0002\u0002\u0483\u0484\u0007v\u0002\u0002\u0484\u0485\u0007", - "g\u0002\u0002\u0485\u0486\u0007u\u0002\u0002\u0486\u0487\u00073\u0002", - "\u0002\u0487\u0523\u00072\u0002\u0002\u0488\u0489\u0007d\u0002\u0002", - "\u0489\u048a\u0007{\u0002\u0002\u048a\u048b\u0007v\u0002\u0002\u048b", - "\u048c\u0007g\u0002\u0002\u048c\u048d\u0007u\u0002\u0002\u048d\u048e", - "\u00073\u0002\u0002\u048e\u0523\u00073\u0002\u0002\u048f\u0490\u0007", - "d\u0002\u0002\u0490\u0491\u0007{\u0002\u0002\u0491\u0492\u0007v\u0002", - "\u0002\u0492\u0493\u0007g\u0002\u0002\u0493\u0494\u0007u\u0002\u0002", - "\u0494\u0495\u00073\u0002\u0002\u0495\u0523\u00074\u0002\u0002\u0496", - "\u0497\u0007d\u0002\u0002\u0497\u0498\u0007{\u0002\u0002\u0498\u0499", - "\u0007v\u0002\u0002\u0499\u049a\u0007g\u0002\u0002\u049a\u049b\u0007", - "u\u0002\u0002\u049b\u049c\u00073\u0002\u0002\u049c\u0523\u00075\u0002", - "\u0002\u049d\u049e\u0007d\u0002\u0002\u049e\u049f\u0007{\u0002\u0002", - "\u049f\u04a0\u0007v\u0002\u0002\u04a0\u04a1\u0007g\u0002\u0002\u04a1", - "\u04a2\u0007u\u0002\u0002\u04a2\u04a3\u00073\u0002\u0002\u04a3\u0523", - "\u00076\u0002\u0002\u04a4\u04a5\u0007d\u0002\u0002\u04a5\u04a6\u0007", - "{\u0002\u0002\u04a6\u04a7\u0007v\u0002\u0002\u04a7\u04a8\u0007g\u0002", - "\u0002\u04a8\u04a9\u0007u\u0002\u0002\u04a9\u04aa\u00073\u0002\u0002", - "\u04aa\u0523\u00077\u0002\u0002\u04ab\u04ac\u0007d\u0002\u0002\u04ac", - "\u04ad\u0007{\u0002\u0002\u04ad\u04ae\u0007v\u0002\u0002\u04ae\u04af", - "\u0007g\u0002\u0002\u04af\u04b0\u0007u\u0002\u0002\u04b0\u04b1\u0007", - "3\u0002\u0002\u04b1\u0523\u00078\u0002\u0002\u04b2\u04b3\u0007d\u0002", - "\u0002\u04b3\u04b4\u0007{\u0002\u0002\u04b4\u04b5\u0007v\u0002\u0002", - "\u04b5\u04b6\u0007g\u0002\u0002\u04b6\u04b7\u0007u\u0002\u0002\u04b7", - "\u04b8\u00073\u0002\u0002\u04b8\u0523\u00079\u0002\u0002\u04b9\u04ba", - "\u0007d\u0002\u0002\u04ba\u04bb\u0007{\u0002\u0002\u04bb\u04bc\u0007", - "v\u0002\u0002\u04bc\u04bd\u0007g\u0002\u0002\u04bd\u04be\u0007u\u0002", - "\u0002\u04be\u04bf\u00073\u0002\u0002\u04bf\u0523\u0007:\u0002\u0002", - "\u04c0\u04c1\u0007d\u0002\u0002\u04c1\u04c2\u0007{\u0002\u0002\u04c2", - "\u04c3\u0007v\u0002\u0002\u04c3\u04c4\u0007g\u0002\u0002\u04c4\u04c5", - "\u0007u\u0002\u0002\u04c5\u04c6\u00073\u0002\u0002\u04c6\u0523\u0007", - ";\u0002\u0002\u04c7\u04c8\u0007d\u0002\u0002\u04c8\u04c9\u0007{\u0002", - "\u0002\u04c9\u04ca\u0007v\u0002\u0002\u04ca\u04cb\u0007g\u0002\u0002", - "\u04cb\u04cc\u0007u\u0002\u0002\u04cc\u04cd\u00074\u0002\u0002\u04cd", - "\u0523\u00072\u0002\u0002\u04ce\u04cf\u0007d\u0002\u0002\u04cf\u04d0", - "\u0007{\u0002\u0002\u04d0\u04d1\u0007v\u0002\u0002\u04d1\u04d2\u0007", - "g\u0002\u0002\u04d2\u04d3\u0007u\u0002\u0002\u04d3\u04d4\u00074\u0002", - "\u0002\u04d4\u0523\u00073\u0002\u0002\u04d5\u04d6\u0007d\u0002\u0002", - "\u04d6\u04d7\u0007{\u0002\u0002\u04d7\u04d8\u0007v\u0002\u0002\u04d8", - "\u04d9\u0007g\u0002\u0002\u04d9\u04da\u0007u\u0002\u0002\u04da\u04db", - "\u00074\u0002\u0002\u04db\u0523\u00074\u0002\u0002\u04dc\u04dd\u0007", - "d\u0002\u0002\u04dd\u04de\u0007{\u0002\u0002\u04de\u04df\u0007v\u0002", - "\u0002\u04df\u04e0\u0007g\u0002\u0002\u04e0\u04e1\u0007u\u0002\u0002", - "\u04e1\u04e2\u00074\u0002\u0002\u04e2\u0523\u00075\u0002\u0002\u04e3", - "\u04e4\u0007d\u0002\u0002\u04e4\u04e5\u0007{\u0002\u0002\u04e5\u04e6", - "\u0007v\u0002\u0002\u04e6\u04e7\u0007g\u0002\u0002\u04e7\u04e8\u0007", - "u\u0002\u0002\u04e8\u04e9\u00074\u0002\u0002\u04e9\u0523\u00076\u0002", - "\u0002\u04ea\u04eb\u0007d\u0002\u0002\u04eb\u04ec\u0007{\u0002\u0002", - "\u04ec\u04ed\u0007v\u0002\u0002\u04ed\u04ee\u0007g\u0002\u0002\u04ee", - "\u04ef\u0007u\u0002\u0002\u04ef\u04f0\u00074\u0002\u0002\u04f0\u0523", - "\u00077\u0002\u0002\u04f1\u04f2\u0007d\u0002\u0002\u04f2\u04f3\u0007", - "{\u0002\u0002\u04f3\u04f4\u0007v\u0002\u0002\u04f4\u04f5\u0007g\u0002", - "\u0002\u04f5\u04f6\u0007u\u0002\u0002\u04f6\u04f7\u00074\u0002\u0002", - "\u04f7\u0523\u00078\u0002\u0002\u04f8\u04f9\u0007d\u0002\u0002\u04f9", - "\u04fa\u0007{\u0002\u0002\u04fa\u04fb\u0007v\u0002\u0002\u04fb\u04fc", - "\u0007g\u0002\u0002\u04fc\u04fd\u0007u\u0002\u0002\u04fd\u04fe\u0007", - "4\u0002\u0002\u04fe\u0523\u00079\u0002\u0002\u04ff\u0500\u0007d\u0002", - "\u0002\u0500\u0501\u0007{\u0002\u0002\u0501\u0502\u0007v\u0002\u0002", - "\u0502\u0503\u0007g\u0002\u0002\u0503\u0504\u0007u\u0002\u0002\u0504", - "\u0505\u00074\u0002\u0002\u0505\u0523\u0007:\u0002\u0002\u0506\u0507", - "\u0007d\u0002\u0002\u0507\u0508\u0007{\u0002\u0002\u0508\u0509\u0007", - "v\u0002\u0002\u0509\u050a\u0007g\u0002\u0002\u050a\u050b\u0007u\u0002", - "\u0002\u050b\u050c\u00074\u0002\u0002\u050c\u0523\u0007;\u0002\u0002", - "\u050d\u050e\u0007d\u0002\u0002\u050e\u050f\u0007{\u0002\u0002\u050f", - "\u0510\u0007v\u0002\u0002\u0510\u0511\u0007g\u0002\u0002\u0511\u0512", - "\u0007u\u0002\u0002\u0512\u0513\u00075\u0002\u0002\u0513\u0523\u0007", - "2\u0002\u0002\u0514\u0515\u0007d\u0002\u0002\u0515\u0516\u0007{\u0002", - "\u0002\u0516\u0517\u0007v\u0002\u0002\u0517\u0518\u0007g\u0002\u0002", - "\u0518\u0519\u0007u\u0002\u0002\u0519\u051a\u00075\u0002\u0002\u051a", - "\u0523\u00073\u0002\u0002\u051b\u051c\u0007d\u0002\u0002\u051c\u051d", - "\u0007{\u0002\u0002\u051d\u051e\u0007v\u0002\u0002\u051e\u051f\u0007", - "g\u0002\u0002\u051f\u0520\u0007u\u0002\u0002\u0520\u0521\u00075\u0002", - "\u0002\u0521\u0523\u00074\u0002\u0002\u0522\u0446\u0003\u0002\u0002", - "\u0002\u0522\u044b\u0003\u0002\u0002\u0002\u0522\u0451\u0003\u0002\u0002", - "\u0002\u0522\u0457\u0003\u0002\u0002\u0002\u0522\u045d\u0003\u0002\u0002", - "\u0002\u0522\u0463\u0003\u0002\u0002\u0002\u0522\u0469\u0003\u0002\u0002", - "\u0002\u0522\u046f\u0003\u0002\u0002\u0002\u0522\u0475\u0003\u0002\u0002", - "\u0002\u0522\u047b\u0003\u0002\u0002\u0002\u0522\u0481\u0003\u0002\u0002", - "\u0002\u0522\u0488\u0003\u0002\u0002\u0002\u0522\u048f\u0003\u0002\u0002", - "\u0002\u0522\u0496\u0003\u0002\u0002\u0002\u0522\u049d\u0003\u0002\u0002", - "\u0002\u0522\u04a4\u0003\u0002\u0002\u0002\u0522\u04ab\u0003\u0002\u0002", - "\u0002\u0522\u04b2\u0003\u0002\u0002\u0002\u0522\u04b9\u0003\u0002\u0002", - "\u0002\u0522\u04c0\u0003\u0002\u0002\u0002\u0522\u04c7\u0003\u0002\u0002", - "\u0002\u0522\u04ce\u0003\u0002\u0002\u0002\u0522\u04d5\u0003\u0002\u0002", - "\u0002\u0522\u04dc\u0003\u0002\u0002\u0002\u0522\u04e3\u0003\u0002\u0002", - "\u0002\u0522\u04ea\u0003\u0002\u0002\u0002\u0522\u04f1\u0003\u0002\u0002", - "\u0002\u0522\u04f8\u0003\u0002\u0002\u0002\u0522\u04ff\u0003\u0002\u0002", - "\u0002\u0522\u0506\u0003\u0002\u0002\u0002\u0522\u050d\u0003\u0002\u0002", - "\u0002\u0522\u0514\u0003\u0002\u0002\u0002\u0522\u051b\u0003\u0002\u0002", - "\u0002\u0523\u00c4\u0003\u0002\u0002\u0002\u0524\u0525\u0007h\u0002", - "\u0002\u0525\u0526\u0007k\u0002\u0002\u0526\u0527\u0007z\u0002\u0002", - "\u0527\u0528\u0007g\u0002\u0002\u0528\u053b\u0007f\u0002\u0002\u0529", - "\u052a\u0007h\u0002\u0002\u052a\u052b\u0007k\u0002\u0002\u052b\u052c", - "\u0007z\u0002\u0002\u052c\u052d\u0007g\u0002\u0002\u052d\u052e\u0007", - "f\u0002\u0002\u052e\u0530\u0003\u0002\u0002\u0002\u052f\u0531\t\u0002", - "\u0002\u0002\u0530\u052f\u0003\u0002\u0002\u0002\u0531\u0532\u0003\u0002", - "\u0002\u0002\u0532\u0530\u0003\u0002\u0002\u0002\u0532\u0533\u0003\u0002", - "\u0002\u0002\u0533\u0534\u0003\u0002\u0002\u0002\u0534\u0536\u0007z", - "\u0002\u0002\u0535\u0537\t\u0002\u0002\u0002\u0536\u0535\u0003\u0002", - "\u0002\u0002\u0537\u0538\u0003\u0002\u0002\u0002\u0538\u0536\u0003\u0002", - "\u0002\u0002\u0538\u0539\u0003\u0002\u0002\u0002\u0539\u053b\u0003\u0002", - "\u0002\u0002\u053a\u0524\u0003\u0002\u0002\u0002\u053a\u0529\u0003\u0002", - "\u0002\u0002\u053b\u00c6\u0003\u0002\u0002\u0002\u053c\u053d\u0007w", - "\u0002\u0002\u053d\u053e\u0007h\u0002\u0002\u053e\u053f\u0007k\u0002", - "\u0002\u053f\u0540\u0007z\u0002\u0002\u0540\u0541\u0007g\u0002\u0002", - "\u0541\u0555\u0007f\u0002\u0002\u0542\u0543\u0007w\u0002\u0002\u0543", - "\u0544\u0007h\u0002\u0002\u0544\u0545\u0007k\u0002\u0002\u0545\u0546", - "\u0007z\u0002\u0002\u0546\u0547\u0007g\u0002\u0002\u0547\u0548\u0007", - "f\u0002\u0002\u0548\u054a\u0003\u0002\u0002\u0002\u0549\u054b\t\u0002", - "\u0002\u0002\u054a\u0549\u0003\u0002\u0002\u0002\u054b\u054c\u0003\u0002", - "\u0002\u0002\u054c\u054a\u0003\u0002\u0002\u0002\u054c\u054d\u0003\u0002", - "\u0002\u0002\u054d\u054e\u0003\u0002\u0002\u0002\u054e\u0550\u0007z", - "\u0002\u0002\u054f\u0551\t\u0002\u0002\u0002\u0550\u054f\u0003\u0002", - "\u0002\u0002\u0551\u0552\u0003\u0002\u0002\u0002\u0552\u0550\u0003\u0002", - "\u0002\u0002\u0552\u0553\u0003\u0002\u0002\u0002\u0553\u0555\u0003\u0002", - "\u0002\u0002\u0554\u053c\u0003\u0002\u0002\u0002\u0554\u0542\u0003\u0002", - "\u0002\u0002\u0555\u00c8\u0003\u0002\u0002\u0002\u0556\u0557\u0007v", - "\u0002\u0002\u0557\u0558\u0007t\u0002\u0002\u0558\u0559\u0007w\u0002", - "\u0002\u0559\u0560\u0007g\u0002\u0002\u055a\u055b\u0007h\u0002\u0002", - "\u055b\u055c\u0007c\u0002\u0002\u055c\u055d\u0007n\u0002\u0002\u055d", - "\u055e\u0007u\u0002\u0002\u055e\u0560\u0007g\u0002\u0002\u055f\u0556", - "\u0003\u0002\u0002\u0002\u055f\u055a\u0003\u0002\u0002\u0002\u0560\u00ca", - "\u0003\u0002\u0002\u0002\u0561\u0568\u0005\u00cdg\u0002\u0562\u0564", - "\u0005\u00cdg\u0002\u0563\u0562\u0003\u0002\u0002\u0002\u0563\u0564", - "\u0003\u0002\u0002\u0002\u0564\u0565\u0003\u0002\u0002\u0002\u0565\u0566", - "\u00070\u0002\u0002\u0566\u0568\u0005\u00cdg\u0002\u0567\u0561\u0003", - "\u0002\u0002\u0002\u0567\u0563\u0003\u0002\u0002\u0002\u0568\u056b\u0003", - "\u0002\u0002\u0002\u0569\u056a\t\u0003\u0002\u0002\u056a\u056c\u0005", - "\u00cdg\u0002\u056b\u0569\u0003\u0002\u0002\u0002\u056b\u056c\u0003", - "\u0002\u0002\u0002\u056c\u00cc\u0003\u0002\u0002\u0002\u056d\u0574\t", - "\u0002\u0002\u0002\u056e\u0570\u0007a\u0002\u0002\u056f\u056e\u0003", - "\u0002\u0002\u0002\u056f\u0570\u0003\u0002\u0002\u0002\u0570\u0571\u0003", - "\u0002\u0002\u0002\u0571\u0573\t\u0002\u0002\u0002\u0572\u056f\u0003", - "\u0002\u0002\u0002\u0573\u0576\u0003\u0002\u0002\u0002\u0574\u0572\u0003", - "\u0002\u0002\u0002\u0574\u0575\u0003\u0002\u0002\u0002\u0575\u00ce\u0003", - "\u0002\u0002\u0002\u0576\u0574\u0003\u0002\u0002\u0002\u0577\u0578\u0007", - "2\u0002\u0002\u0578\u0579\t\u0004\u0002\u0002\u0579\u057a\u0005\u00d1", - "i\u0002\u057a\u00d0\u0003\u0002\u0002\u0002\u057b\u0582\u0005\u00d9", - "m\u0002\u057c\u057e\u0007a\u0002\u0002\u057d\u057c\u0003\u0002\u0002", - "\u0002\u057d\u057e\u0003\u0002\u0002\u0002\u057e\u057f\u0003\u0002\u0002", - "\u0002\u057f\u0581\u0005\u00d9m\u0002\u0580\u057d\u0003\u0002\u0002", - "\u0002\u0581\u0584\u0003\u0002\u0002\u0002\u0582\u0580\u0003\u0002\u0002", - "\u0002\u0582\u0583\u0003\u0002\u0002\u0002\u0583\u00d2\u0003\u0002\u0002", - "\u0002\u0584\u0582\u0003\u0002\u0002\u0002\u0585\u0586\u0007y\u0002", - "\u0002\u0586\u0587\u0007g\u0002\u0002\u0587\u05ba\u0007k\u0002\u0002", - "\u0588\u0589\u0007u\u0002\u0002\u0589\u058a\u0007|\u0002\u0002\u058a", - "\u058b\u0007c\u0002\u0002\u058b\u058c\u0007d\u0002\u0002\u058c\u05ba", - "\u0007q\u0002\u0002\u058d\u058e\u0007h\u0002\u0002\u058e\u058f\u0007", - "k\u0002\u0002\u058f\u0590\u0007p\u0002\u0002\u0590\u0591\u0007p\u0002", - "\u0002\u0591\u0592\u0007g\u0002\u0002\u0592\u05ba\u0007{\u0002\u0002", - "\u0593\u0594\u0007g\u0002\u0002\u0594\u0595\u0007v\u0002\u0002\u0595", - "\u0596\u0007j\u0002\u0002\u0596\u0597\u0007g\u0002\u0002\u0597\u05ba", - "\u0007t\u0002\u0002\u0598\u0599\u0007u\u0002\u0002\u0599\u059a\u0007", - "g\u0002\u0002\u059a\u059b\u0007e\u0002\u0002\u059b\u059c\u0007q\u0002", - "\u0002\u059c\u059d\u0007p\u0002\u0002\u059d\u059e\u0007f\u0002\u0002", - "\u059e\u05ba\u0007u\u0002\u0002\u059f\u05a0\u0007o\u0002\u0002\u05a0", - "\u05a1\u0007k\u0002\u0002\u05a1\u05a2\u0007p\u0002\u0002\u05a2\u05a3", - "\u0007w\u0002\u0002\u05a3\u05a4\u0007v\u0002\u0002\u05a4\u05a5\u0007", - "g\u0002\u0002\u05a5\u05ba\u0007u\u0002\u0002\u05a6\u05a7\u0007j\u0002", - "\u0002\u05a7\u05a8\u0007q\u0002\u0002\u05a8\u05a9\u0007w\u0002\u0002", - "\u05a9\u05aa\u0007t\u0002\u0002\u05aa\u05ba\u0007u\u0002\u0002\u05ab", - "\u05ac\u0007f\u0002\u0002\u05ac\u05ad\u0007c\u0002\u0002\u05ad\u05ae", - "\u0007{\u0002\u0002\u05ae\u05ba\u0007u\u0002\u0002\u05af\u05b0\u0007", - "y\u0002\u0002\u05b0\u05b1\u0007g\u0002\u0002\u05b1\u05b2\u0007g\u0002", - "\u0002\u05b2\u05b3\u0007m\u0002\u0002\u05b3\u05ba\u0007u\u0002\u0002", - "\u05b4\u05b5\u0007{\u0002\u0002\u05b5\u05b6\u0007g\u0002\u0002\u05b6", - "\u05b7\u0007c\u0002\u0002\u05b7\u05b8\u0007t\u0002\u0002\u05b8\u05ba", - "\u0007u\u0002\u0002\u05b9\u0585\u0003\u0002\u0002\u0002\u05b9\u0588", - "\u0003\u0002\u0002\u0002\u05b9\u058d\u0003\u0002\u0002\u0002\u05b9\u0593", - "\u0003\u0002\u0002\u0002\u05b9\u0598\u0003\u0002\u0002\u0002\u05b9\u059f", - "\u0003\u0002\u0002\u0002\u05b9\u05a6\u0003\u0002\u0002\u0002\u05b9\u05ab", - "\u0003\u0002\u0002\u0002\u05b9\u05af\u0003\u0002\u0002\u0002\u05b9\u05b4", - "\u0003\u0002\u0002\u0002\u05ba\u00d4\u0003\u0002\u0002\u0002\u05bb\u05bc", - "\u0007j\u0002\u0002\u05bc\u05bd\u0007g\u0002\u0002\u05bd\u05be\u0007", - "z\u0002\u0002\u05be\u05c9\u0003\u0002\u0002\u0002\u05bf\u05c1\u0007", - "$\u0002\u0002\u05c0\u05c2\u0005\u00d1i\u0002\u05c1\u05c0\u0003\u0002", - "\u0002\u0002\u05c1\u05c2\u0003\u0002\u0002\u0002\u05c2\u05c3\u0003\u0002", - "\u0002\u0002\u05c3\u05ca\u0007$\u0002\u0002\u05c4\u05c6\u0007)\u0002", - "\u0002\u05c5\u05c7\u0005\u00d1i\u0002\u05c6\u05c5\u0003\u0002\u0002", - "\u0002\u05c6\u05c7\u0003\u0002\u0002\u0002\u05c7\u05c8\u0003\u0002\u0002", - "\u0002\u05c8\u05ca\u0007)\u0002\u0002\u05c9\u05bf\u0003\u0002\u0002", - "\u0002\u05c9\u05c4\u0003\u0002\u0002\u0002\u05ca\u00d6\u0003\u0002\u0002", - "\u0002\u05cb\u05cc\u0005\u00d9m\u0002\u05cc\u05cd\u0005\u00d9m\u0002", - "\u05cd\u00d8\u0003\u0002\u0002\u0002\u05ce\u05cf\t\u0005\u0002\u0002", - "\u05cf\u00da\u0003\u0002\u0002\u0002\u05d0\u05d1\u0007c\u0002\u0002", - "\u05d1\u05d2\u0007d\u0002\u0002\u05d2\u05d3\u0007u\u0002\u0002\u05d3", - "\u05d4\u0007v\u0002\u0002\u05d4\u05d5\u0007t\u0002\u0002\u05d5\u05d6", - "\u0007c\u0002\u0002\u05d6\u05d7\u0007e\u0002\u0002\u05d7\u0629\u0007", - "v\u0002\u0002\u05d8\u05d9\u0007c\u0002\u0002\u05d9\u05da\u0007h\u0002", - "\u0002\u05da\u05db\u0007v\u0002\u0002\u05db\u05dc\u0007g\u0002\u0002", - "\u05dc\u0629\u0007t\u0002\u0002\u05dd\u05de\u0007e\u0002\u0002\u05de", - "\u05df\u0007c\u0002\u0002\u05df\u05e0\u0007u\u0002\u0002\u05e0\u0629", - "\u0007g\u0002\u0002\u05e1\u05e2\u0007e\u0002\u0002\u05e2\u05e3\u0007", - "c\u0002\u0002\u05e3\u05e4\u0007v\u0002\u0002\u05e4\u05e5\u0007e\u0002", - "\u0002\u05e5\u0629\u0007j\u0002\u0002\u05e6\u05e7\u0007f\u0002\u0002", - "\u05e7\u05e8\u0007g\u0002\u0002\u05e8\u05e9\u0007h\u0002\u0002\u05e9", - "\u05ea\u0007c\u0002\u0002\u05ea\u05eb\u0007w\u0002\u0002\u05eb\u05ec", - "\u0007n\u0002\u0002\u05ec\u0629\u0007v\u0002\u0002\u05ed\u05ee\u0007", - "h\u0002\u0002\u05ee\u05ef\u0007k\u0002\u0002\u05ef\u05f0\u0007p\u0002", - "\u0002\u05f0\u05f1\u0007c\u0002\u0002\u05f1\u0629\u0007n\u0002\u0002", - "\u05f2\u05f3\u0007k\u0002\u0002\u05f3\u0629\u0007p\u0002\u0002\u05f4", - "\u05f5\u0007k\u0002\u0002\u05f5\u05f6\u0007p\u0002\u0002\u05f6\u05f7", - "\u0007n\u0002\u0002\u05f7\u05f8\u0007k\u0002\u0002\u05f8\u05f9\u0007", - "p\u0002\u0002\u05f9\u0629\u0007g\u0002\u0002\u05fa\u05fb\u0007n\u0002", - "\u0002\u05fb\u05fc\u0007g\u0002\u0002\u05fc\u0629\u0007v\u0002\u0002", - "\u05fd\u05fe\u0007o\u0002\u0002\u05fe\u05ff\u0007c\u0002\u0002\u05ff", - "\u0600\u0007v\u0002\u0002\u0600\u0601\u0007e\u0002\u0002\u0601\u0629", - "\u0007j\u0002\u0002\u0602\u0603\u0007p\u0002\u0002\u0603\u0604\u0007", - "w\u0002\u0002\u0604\u0605\u0007n\u0002\u0002\u0605\u0629\u0007n\u0002", - "\u0002\u0606\u0607\u0007q\u0002\u0002\u0607\u0629\u0007h\u0002\u0002", - "\u0608\u0609\u0007t\u0002\u0002\u0609\u060a\u0007g\u0002\u0002\u060a", - "\u060b\u0007n\u0002\u0002\u060b\u060c\u0007q\u0002\u0002\u060c\u060d", - "\u0007e\u0002\u0002\u060d\u060e\u0007c\u0002\u0002\u060e\u060f\u0007", - "v\u0002\u0002\u060f\u0610\u0007c\u0002\u0002\u0610\u0611\u0007d\u0002", - "\u0002\u0611\u0612\u0007n\u0002\u0002\u0612\u0629\u0007g\u0002\u0002", - "\u0613\u0614\u0007u\u0002\u0002\u0614\u0615\u0007v\u0002\u0002\u0615", - "\u0616\u0007c\u0002\u0002\u0616\u0617\u0007v\u0002\u0002\u0617\u0618", - "\u0007k\u0002\u0002\u0618\u0629\u0007e\u0002\u0002\u0619\u061a\u0007", - "u\u0002\u0002\u061a\u061b\u0007y\u0002\u0002\u061b\u061c\u0007k\u0002", - "\u0002\u061c\u061d\u0007v\u0002\u0002\u061d\u061e\u0007e\u0002\u0002", - "\u061e\u0629\u0007j\u0002\u0002\u061f\u0620\u0007v\u0002\u0002\u0620", - "\u0621\u0007t\u0002\u0002\u0621\u0629\u0007{\u0002\u0002\u0622\u0623", - "\u0007v\u0002\u0002\u0623\u0624\u0007{\u0002\u0002\u0624\u0625\u0007", - "r\u0002\u0002\u0625\u0626\u0007g\u0002\u0002\u0626\u0627\u0007q\u0002", - "\u0002\u0627\u0629\u0007h\u0002\u0002\u0628\u05d0\u0003\u0002\u0002", - "\u0002\u0628\u05d8\u0003\u0002\u0002\u0002\u0628\u05dd\u0003\u0002\u0002", - "\u0002\u0628\u05e1\u0003\u0002\u0002\u0002\u0628\u05e6\u0003\u0002\u0002", - "\u0002\u0628\u05ed\u0003\u0002\u0002\u0002\u0628\u05f2\u0003\u0002\u0002", - "\u0002\u0628\u05f4\u0003\u0002\u0002\u0002\u0628\u05fa\u0003\u0002\u0002", - "\u0002\u0628\u05fd\u0003\u0002\u0002\u0002\u0628\u0602\u0003\u0002\u0002", - "\u0002\u0628\u0606\u0003\u0002\u0002\u0002\u0628\u0608\u0003\u0002\u0002", - "\u0002\u0628\u0613\u0003\u0002\u0002\u0002\u0628\u0619\u0003\u0002\u0002", - "\u0002\u0628\u061f\u0003\u0002\u0002\u0002\u0628\u0622\u0003\u0002\u0002", - "\u0002\u0629\u00dc\u0003\u0002\u0002\u0002\u062a\u062b\u0007c\u0002", - "\u0002\u062b\u062c\u0007p\u0002\u0002\u062c\u062d\u0007q\u0002\u0002", - "\u062d\u062e\u0007p\u0002\u0002\u062e\u062f\u0007{\u0002\u0002\u062f", - "\u0630\u0007o\u0002\u0002\u0630\u0631\u0007q\u0002\u0002\u0631\u0632", - "\u0007w\u0002\u0002\u0632\u0633\u0007u\u0002\u0002\u0633\u00de\u0003", - "\u0002\u0002\u0002\u0634\u0635\u0007d\u0002\u0002\u0635\u0636\u0007", - "t\u0002\u0002\u0636\u0637\u0007g\u0002\u0002\u0637\u0638\u0007c\u0002", - "\u0002\u0638\u0639\u0007m\u0002\u0002\u0639\u00e0\u0003\u0002\u0002", - "\u0002\u063a\u063b\u0007e\u0002\u0002\u063b\u063c\u0007q\u0002\u0002", - "\u063c\u063d\u0007p\u0002\u0002\u063d\u063e\u0007u\u0002\u0002\u063e", - "\u063f\u0007v\u0002\u0002\u063f\u0640\u0007c\u0002\u0002\u0640\u0641", - "\u0007p\u0002\u0002\u0641\u0642\u0007v\u0002\u0002\u0642\u00e2\u0003", - "\u0002\u0002\u0002\u0643\u0644\u0007k\u0002\u0002\u0644\u0645\u0007", - "o\u0002\u0002\u0645\u0646\u0007o\u0002\u0002\u0646\u0647\u0007w\u0002", - "\u0002\u0647\u0648\u0007v\u0002\u0002\u0648\u0649\u0007c\u0002\u0002", - "\u0649\u064a\u0007d\u0002\u0002\u064a\u064b\u0007n\u0002\u0002\u064b", - "\u064c\u0007g\u0002\u0002\u064c\u00e4\u0003\u0002\u0002\u0002\u064d", - "\u064e\u0007e\u0002\u0002\u064e\u064f\u0007q\u0002\u0002\u064f\u0650", - "\u0007p\u0002\u0002\u0650\u0651\u0007v\u0002\u0002\u0651\u0652\u0007", - "k\u0002\u0002\u0652\u0653\u0007p\u0002\u0002\u0653\u0654\u0007w\u0002", - "\u0002\u0654\u0655\u0007g\u0002\u0002\u0655\u00e6\u0003\u0002\u0002", - "\u0002\u0656\u0657\u0007n\u0002\u0002\u0657\u0658\u0007g\u0002\u0002", - "\u0658\u0659\u0007c\u0002\u0002\u0659\u065a\u0007x\u0002\u0002\u065a", - "\u065b\u0007g\u0002\u0002\u065b\u00e8\u0003\u0002\u0002\u0002\u065c", - "\u065d\u0007g\u0002\u0002\u065d\u065e\u0007z\u0002\u0002\u065e\u065f", - "\u0007v\u0002\u0002\u065f\u0660\u0007g\u0002\u0002\u0660\u0661\u0007", - "t\u0002\u0002\u0661\u0662\u0007p\u0002\u0002\u0662\u0663\u0007c\u0002", - "\u0002\u0663\u0664\u0007n\u0002\u0002\u0664\u00ea\u0003\u0002\u0002", - "\u0002\u0665\u0666\u0007k\u0002\u0002\u0666\u0667\u0007p\u0002\u0002", - "\u0667\u0668\u0007f\u0002\u0002\u0668\u0669\u0007g\u0002\u0002\u0669", - "\u066a\u0007z\u0002\u0002\u066a\u066b\u0007g\u0002\u0002\u066b\u066c", - "\u0007f\u0002\u0002\u066c\u00ec\u0003\u0002\u0002\u0002\u066d\u066e", - "\u0007k\u0002\u0002\u066e\u066f\u0007p\u0002\u0002\u066f\u0670\u0007", - "v\u0002\u0002\u0670\u0671\u0007g\u0002\u0002\u0671\u0672\u0007t\u0002", - "\u0002\u0672\u0673\u0007p\u0002\u0002\u0673\u0674\u0007c\u0002\u0002", - "\u0674\u0675\u0007n\u0002\u0002\u0675\u00ee\u0003\u0002\u0002\u0002", - "\u0676\u0677\u0007r\u0002\u0002\u0677\u0678\u0007c\u0002\u0002\u0678", - "\u0679\u0007{\u0002\u0002\u0679\u067a\u0007c\u0002\u0002\u067a\u067b", - "\u0007d\u0002\u0002\u067b\u067c\u0007n\u0002\u0002\u067c\u067d\u0007", - "g\u0002\u0002\u067d\u00f0\u0003\u0002\u0002\u0002\u067e\u067f\u0007", - "r\u0002\u0002\u067f\u0680\u0007t\u0002\u0002\u0680\u0681\u0007k\u0002", - "\u0002\u0681\u0682\u0007x\u0002\u0002\u0682\u0683\u0007c\u0002\u0002", - "\u0683\u0684\u0007v\u0002\u0002\u0684\u0685\u0007g\u0002\u0002\u0685", - "\u00f2\u0003\u0002\u0002\u0002\u0686\u0687\u0007r\u0002\u0002\u0687", - "\u0688\u0007w\u0002\u0002\u0688\u0689\u0007d\u0002\u0002\u0689\u068a", - "\u0007n\u0002\u0002\u068a\u068b\u0007k\u0002\u0002\u068b\u068c\u0007", - "e\u0002\u0002\u068c\u00f4\u0003\u0002\u0002\u0002\u068d\u068e\u0007", - "x\u0002\u0002\u068e\u068f\u0007k\u0002\u0002\u068f\u0690\u0007t\u0002", - "\u0002\u0690\u0691\u0007v\u0002\u0002\u0691\u0692\u0007w\u0002\u0002", - "\u0692\u0693\u0007c\u0002\u0002\u0693\u0694\u0007n\u0002\u0002\u0694", - "\u00f6\u0003\u0002\u0002\u0002\u0695\u0696\u0007r\u0002\u0002\u0696", - "\u0697\u0007w\u0002\u0002\u0697\u0698\u0007t\u0002\u0002\u0698\u0699", - "\u0007g\u0002\u0002\u0699\u00f8\u0003\u0002\u0002\u0002\u069a\u069b", - "\u0007v\u0002\u0002\u069b\u069c\u0007{\u0002\u0002\u069c\u069d\u0007", - "r\u0002\u0002\u069d\u069e\u0007g\u0002\u0002\u069e\u00fa\u0003\u0002", - "\u0002\u0002\u069f\u06a0\u0007x\u0002\u0002\u06a0\u06a1\u0007k\u0002", - "\u0002\u06a1\u06a2\u0007g\u0002\u0002\u06a2\u06a3\u0007y\u0002\u0002", - "\u06a3\u00fc\u0003\u0002\u0002\u0002\u06a4\u06a5\u0007e\u0002\u0002", - "\u06a5\u06a6\u0007q\u0002\u0002\u06a6\u06a7\u0007p\u0002\u0002\u06a7", - "\u06a8\u0007u\u0002\u0002\u06a8\u06a9\u0007v\u0002\u0002\u06a9\u06aa", - "\u0007t\u0002\u0002\u06aa\u06ab\u0007w\u0002\u0002\u06ab\u06ac\u0007", - "e\u0002\u0002\u06ac\u06ad\u0007v\u0002\u0002\u06ad\u06ae\u0007q\u0002", - "\u0002\u06ae\u06af\u0007t\u0002\u0002\u06af\u00fe\u0003\u0002\u0002", - "\u0002\u06b0\u06b1\u0007h\u0002\u0002\u06b1\u06b2\u0007c\u0002\u0002", - "\u06b2\u06b3\u0007n\u0002\u0002\u06b3\u06b4\u0007n\u0002\u0002\u06b4", - "\u06b5\u0007d\u0002\u0002\u06b5\u06b6\u0007c\u0002\u0002\u06b6\u06b7", - "\u0007e\u0002\u0002\u06b7\u06b8\u0007m\u0002\u0002\u06b8\u0100\u0003", - "\u0002\u0002\u0002\u06b9\u06ba\u0007t\u0002\u0002\u06ba\u06bb\u0007", - "g\u0002\u0002\u06bb\u06bc\u0007e\u0002\u0002\u06bc\u06bd\u0007g\u0002", - "\u0002\u06bd\u06be\u0007k\u0002\u0002\u06be\u06bf\u0007x\u0002\u0002", - "\u06bf\u06c0\u0007g\u0002\u0002\u06c0\u0102\u0003\u0002\u0002\u0002", - "\u06c1\u06c5\u0005\u0105\u0083\u0002\u06c2\u06c4\u0005\u0107\u0084\u0002", - "\u06c3\u06c2\u0003\u0002\u0002\u0002\u06c4\u06c7\u0003\u0002\u0002\u0002", - "\u06c5\u06c3\u0003\u0002\u0002\u0002\u06c5\u06c6\u0003\u0002\u0002\u0002", - "\u06c6\u0104\u0003\u0002\u0002\u0002\u06c7\u06c5\u0003\u0002\u0002\u0002", - "\u06c8\u06c9\t\u0006\u0002\u0002\u06c9\u0106\u0003\u0002\u0002\u0002", - "\u06ca\u06cb\t\u0007\u0002\u0002\u06cb\u0108\u0003\u0002\u0002\u0002", - "\u06cc\u06d0\u0007$\u0002\u0002\u06cd\u06cf\u0005\u010b\u0086\u0002", - "\u06ce\u06cd\u0003\u0002\u0002\u0002\u06cf\u06d2\u0003\u0002\u0002\u0002", - "\u06d0\u06ce\u0003\u0002\u0002\u0002\u06d0\u06d1\u0003\u0002\u0002\u0002", - "\u06d1\u06d3\u0003\u0002\u0002\u0002\u06d2\u06d0\u0003\u0002\u0002\u0002", - "\u06d3\u06dd\u0007$\u0002\u0002\u06d4\u06d8\u0007)\u0002\u0002\u06d5", - "\u06d7\u0005\u010d\u0087\u0002\u06d6\u06d5\u0003\u0002\u0002\u0002\u06d7", - "\u06da\u0003\u0002\u0002\u0002\u06d8\u06d6\u0003\u0002\u0002\u0002\u06d8", - "\u06d9\u0003\u0002\u0002\u0002\u06d9\u06db\u0003\u0002\u0002\u0002\u06da", - "\u06d8\u0003\u0002\u0002\u0002\u06db\u06dd\u0007)\u0002\u0002\u06dc", - "\u06cc\u0003\u0002\u0002\u0002\u06dc\u06d4\u0003\u0002\u0002\u0002\u06dd", - "\u010a\u0003\u0002\u0002\u0002\u06de\u06e2\n\b\u0002\u0002\u06df\u06e0", - "\u0007^\u0002\u0002\u06e0\u06e2\u000b\u0002\u0002\u0002\u06e1\u06de", - "\u0003\u0002\u0002\u0002\u06e1\u06df\u0003\u0002\u0002\u0002\u06e2\u010c", - "\u0003\u0002\u0002\u0002\u06e3\u06e7\n\t\u0002\u0002\u06e4\u06e5\u0007", - "^\u0002\u0002\u06e5\u06e7\u000b\u0002\u0002\u0002\u06e6\u06e3\u0003", - "\u0002\u0002\u0002\u06e6\u06e4\u0003\u0002\u0002\u0002\u06e7\u010e\u0003", - "\u0002\u0002\u0002\u06e8\u06ea\t\u0002\u0002\u0002\u06e9\u06e8\u0003", - "\u0002\u0002\u0002\u06ea\u06eb\u0003\u0002\u0002\u0002\u06eb\u06e9\u0003", - "\u0002\u0002\u0002\u06eb\u06ec\u0003\u0002\u0002\u0002\u06ec\u06ed\u0003", - "\u0002\u0002\u0002\u06ed\u06ef\u00070\u0002\u0002\u06ee\u06f0\t\u0002", - "\u0002\u0002\u06ef\u06ee\u0003\u0002\u0002\u0002\u06f0\u06f1\u0003\u0002", - "\u0002\u0002\u06f1\u06ef\u0003\u0002\u0002\u0002\u06f1\u06f2\u0003\u0002", - "\u0002\u0002\u06f2\u06f9\u0003\u0002\u0002\u0002\u06f3\u06f5\u00070", - "\u0002\u0002\u06f4\u06f6\t\u0002\u0002\u0002\u06f5\u06f4\u0003\u0002", - "\u0002\u0002\u06f6\u06f7\u0003\u0002\u0002\u0002\u06f7\u06f5\u0003\u0002", - "\u0002\u0002\u06f7\u06f8\u0003\u0002\u0002\u0002\u06f8\u06fa\u0003\u0002", - "\u0002\u0002\u06f9\u06f3\u0003\u0002\u0002\u0002\u06f9\u06fa\u0003\u0002", - "\u0002\u0002\u06fa\u0110\u0003\u0002\u0002\u0002\u06fb\u06fd\t\n\u0002", - "\u0002\u06fc\u06fb\u0003\u0002\u0002\u0002\u06fd\u06fe\u0003\u0002\u0002", - "\u0002\u06fe\u06fc\u0003\u0002\u0002\u0002\u06fe\u06ff\u0003\u0002\u0002", - "\u0002\u06ff\u0700\u0003\u0002\u0002\u0002\u0700\u0701\b\u0089\u0002", - "\u0002\u0701\u0112\u0003\u0002\u0002\u0002\u0702\u0703\u00071\u0002", - "\u0002\u0703\u0704\u0007,\u0002\u0002\u0704\u0708\u0003\u0002\u0002", - "\u0002\u0705\u0707\u000b\u0002\u0002\u0002\u0706\u0705\u0003\u0002\u0002", - "\u0002\u0707\u070a\u0003\u0002\u0002\u0002\u0708\u0709\u0003\u0002\u0002", - "\u0002\u0708\u0706\u0003\u0002\u0002\u0002\u0709\u070b\u0003\u0002\u0002", - "\u0002\u070a\u0708\u0003\u0002\u0002\u0002\u070b\u070c\u0007,\u0002", - "\u0002\u070c\u070d\u00071\u0002\u0002\u070d\u070e\u0003\u0002\u0002", - "\u0002\u070e\u070f\b\u008a\u0003\u0002\u070f\u0114\u0003\u0002\u0002", - "\u0002\u0710\u0711\u00071\u0002\u0002\u0711\u0712\u00071\u0002\u0002", - "\u0712\u0716\u0003\u0002\u0002\u0002\u0713\u0715\n\u000b\u0002\u0002", - "\u0714\u0713\u0003\u0002\u0002\u0002\u0715\u0718\u0003\u0002\u0002\u0002", - "\u0716\u0714\u0003\u0002\u0002\u0002\u0716\u0717\u0003\u0002\u0002\u0002", - "\u0717\u0719\u0003\u0002\u0002\u0002\u0718\u0716\u0003\u0002\u0002\u0002", - "\u0719\u071a\b\u008b\u0003\u0002\u071a\u0116\u0003\u0002\u0002\u0002", - "&\u0002\u036b\u0444\u0522\u0532\u0538\u053a\u054c\u0552\u0554\u055f", - "\u0563\u0567\u056b\u056f\u0574\u057d\u0582\u05b9\u05c1\u05c6\u05c9\u0628", - "\u06c5\u06d0\u06d8\u06dc\u06e1\u06e6\u06eb\u06f1\u06f7\u06f9\u06fe\u0708", - "\u0716\u0004\b\u0002\u0002\u0002\u0003\u0002"].join(""); - - -const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); - -const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); +const decisionsToDFA = atn.decisionToState.map( + (ds, index) => new antlr4.dfa.DFA(ds, index) +) export default class SolidityLexer extends antlr4.Lexer { + static grammarFileName = 'Solidity.g4' + static channelNames = ['DEFAULT_TOKEN_CHANNEL', 'HIDDEN'] + static modeNames = ['DEFAULT_MODE'] + static literalNames = [ + null, + "'pragma'", + "';'", + "'^'", + "'~'", + "'>='", + "'>'", + "'<'", + "'<='", + "'='", + "'as'", + "'import'", + "'*'", + "'from'", + "'{'", + "','", + "'}'", + "'abstract'", + "'contract'", + "'interface'", + "'library'", + "'is'", + "'('", + "')'", + "'using'", + "'for'", + "'struct'", + "'modifier'", + "'function'", + "'returns'", + "'event'", + "'enum'", + "'['", + "']'", + "'address'", + "'.'", + "'mapping'", + "'=>'", + "'memory'", + "'storage'", + "'calldata'", + "'if'", + "'else'", + "'try'", + "'catch'", + "'while'", + "'assembly'", + "'do'", + "'return'", + "'throw'", + "'emit'", + "'var'", + "'bool'", + "'string'", + "'byte'", + "'++'", + "'--'", + "'new'", + "':'", + "'+'", + "'-'", + "'after'", + "'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'", + "'constructor'", + "'fallback'", + "'receive'" + ] + static symbolicNames = [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 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', + 'ConstructorKeyword', + 'FallbackKeyword', + 'ReceiveKeyword', + 'Identifier', + 'StringLiteralFragment', + 'VersionLiteral', + 'WS', + 'COMMENT', + 'LINE_COMMENT' + ] + static ruleNames = [ + 'T__0', + 'T__1', + 'T__2', + 'T__3', + 'T__4', + 'T__5', + 'T__6', + 'T__7', + 'T__8', + 'T__9', + 'T__10', + 'T__11', + 'T__12', + 'T__13', + 'T__14', + 'T__15', + 'T__16', + 'T__17', + 'T__18', + 'T__19', + 'T__20', + 'T__21', + 'T__22', + 'T__23', + 'T__24', + 'T__25', + 'T__26', + 'T__27', + 'T__28', + 'T__29', + 'T__30', + 'T__31', + 'T__32', + 'T__33', + 'T__34', + 'T__35', + 'T__36', + 'T__37', + 'T__38', + 'T__39', + 'T__40', + 'T__41', + 'T__42', + 'T__43', + 'T__44', + 'T__45', + 'T__46', + 'T__47', + 'T__48', + 'T__49', + 'T__50', + 'T__51', + 'T__52', + 'T__53', + 'T__54', + 'T__55', + 'T__56', + 'T__57', + 'T__58', + 'T__59', + 'T__60', + 'T__61', + 'T__62', + 'T__63', + 'T__64', + 'T__65', + 'T__66', + 'T__67', + 'T__68', + 'T__69', + 'T__70', + 'T__71', + 'T__72', + 'T__73', + 'T__74', + 'T__75', + 'T__76', + 'T__77', + 'T__78', + 'T__79', + 'T__80', + 'T__81', + 'T__82', + 'T__83', + 'T__84', + 'T__85', + 'T__86', + 'T__87', + 'T__88', + 'T__89', + 'T__90', + 'T__91', + 'T__92', + 'T__93', + 'Int', + 'Uint', + 'Byte', + 'Fixed', + 'Ufixed', + 'BooleanLiteral', + 'DecimalNumber', + 'DecimalDigits', + 'HexNumber', + 'HexDigits', + 'NumberUnit', + 'HexLiteralFragment', + 'HexPair', + 'HexCharacter', + 'ReservedKeyword', + 'AnonymousKeyword', + 'BreakKeyword', + 'ConstantKeyword', + 'ImmutableKeyword', + 'ContinueKeyword', + 'LeaveKeyword', + 'ExternalKeyword', + 'IndexedKeyword', + 'InternalKeyword', + 'PayableKeyword', + 'PrivateKeyword', + 'PublicKeyword', + 'VirtualKeyword', + 'PureKeyword', + 'TypeKeyword', + 'ViewKeyword', + 'ConstructorKeyword', + 'FallbackKeyword', + 'ReceiveKeyword', + 'Identifier', + 'IdentifierStart', + 'IdentifierPart', + 'StringLiteralFragment', + 'DoubleQuotedStringCharacter', + 'SingleQuotedStringCharacter', + 'VersionLiteral', + 'WS', + 'COMMENT', + 'LINE_COMMENT' + ] - static grammarFileName = "Solidity.g4"; - static channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; - static modeNames = [ "DEFAULT_MODE" ]; - static literalNames = [ null, "'pragma'", "';'", "'^'", "'~'", "'>='", - "'>'", "'<'", "'<='", "'='", "'as'", "'import'", - "'*'", "'from'", "'{'", "','", "'}'", "'abstract'", - "'contract'", "'interface'", "'library'", "'is'", - "'('", "')'", "'using'", "'for'", "'struct'", "'modifier'", - "'function'", "'returns'", "'event'", "'enum'", - "'['", "']'", "'address'", "'.'", "'mapping'", - "'=>'", "'memory'", "'storage'", "'calldata'", - "'if'", "'else'", "'try'", "'catch'", "'while'", - "'assembly'", "'do'", "'return'", "'throw'", "'emit'", - "'var'", "'bool'", "'string'", "'byte'", "'++'", - "'--'", "'new'", "':'", "'+'", "'-'", "'after'", - "'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'", "'constructor'", - "'fallback'", "'receive'" ]; - static symbolicNames = [ null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, 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", "ConstructorKeyword", - "FallbackKeyword", "ReceiveKeyword", "Identifier", - "StringLiteralFragment", "VersionLiteral", "WS", - "COMMENT", "LINE_COMMENT" ]; - static ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", - "T__7", "T__8", "T__9", "T__10", "T__11", "T__12", - "T__13", "T__14", "T__15", "T__16", "T__17", "T__18", - "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", - "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", - "T__31", "T__32", "T__33", "T__34", "T__35", "T__36", - "T__37", "T__38", "T__39", "T__40", "T__41", "T__42", - "T__43", "T__44", "T__45", "T__46", "T__47", "T__48", - "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", - "T__55", "T__56", "T__57", "T__58", "T__59", "T__60", - "T__61", "T__62", "T__63", "T__64", "T__65", "T__66", - "T__67", "T__68", "T__69", "T__70", "T__71", "T__72", - "T__73", "T__74", "T__75", "T__76", "T__77", "T__78", - "T__79", "T__80", "T__81", "T__82", "T__83", "T__84", - "T__85", "T__86", "T__87", "T__88", "T__89", "T__90", - "T__91", "T__92", "T__93", "Int", "Uint", "Byte", - "Fixed", "Ufixed", "BooleanLiteral", "DecimalNumber", - "DecimalDigits", "HexNumber", "HexDigits", "NumberUnit", - "HexLiteralFragment", "HexPair", "HexCharacter", "ReservedKeyword", - "AnonymousKeyword", "BreakKeyword", "ConstantKeyword", - "ImmutableKeyword", "ContinueKeyword", "LeaveKeyword", - "ExternalKeyword", "IndexedKeyword", "InternalKeyword", - "PayableKeyword", "PrivateKeyword", "PublicKeyword", - "VirtualKeyword", "PureKeyword", "TypeKeyword", "ViewKeyword", - "ConstructorKeyword", "FallbackKeyword", "ReceiveKeyword", - "Identifier", "IdentifierStart", "IdentifierPart", - "StringLiteralFragment", "DoubleQuotedStringCharacter", - "SingleQuotedStringCharacter", "VersionLiteral", "WS", - "COMMENT", "LINE_COMMENT" ]; - - constructor(input) { - super(input) - this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); - } + constructor(input) { + super(input) + this._interp = new antlr4.atn.LexerATNSimulator( + this, + atn, + decisionsToDFA, + new antlr4.PredictionContextCache() + ) + } - get atn() { - return atn; - } + get atn() { + return atn + } } -SolidityLexer.EOF = antlr4.Token.EOF; -SolidityLexer.T__0 = 1; -SolidityLexer.T__1 = 2; -SolidityLexer.T__2 = 3; -SolidityLexer.T__3 = 4; -SolidityLexer.T__4 = 5; -SolidityLexer.T__5 = 6; -SolidityLexer.T__6 = 7; -SolidityLexer.T__7 = 8; -SolidityLexer.T__8 = 9; -SolidityLexer.T__9 = 10; -SolidityLexer.T__10 = 11; -SolidityLexer.T__11 = 12; -SolidityLexer.T__12 = 13; -SolidityLexer.T__13 = 14; -SolidityLexer.T__14 = 15; -SolidityLexer.T__15 = 16; -SolidityLexer.T__16 = 17; -SolidityLexer.T__17 = 18; -SolidityLexer.T__18 = 19; -SolidityLexer.T__19 = 20; -SolidityLexer.T__20 = 21; -SolidityLexer.T__21 = 22; -SolidityLexer.T__22 = 23; -SolidityLexer.T__23 = 24; -SolidityLexer.T__24 = 25; -SolidityLexer.T__25 = 26; -SolidityLexer.T__26 = 27; -SolidityLexer.T__27 = 28; -SolidityLexer.T__28 = 29; -SolidityLexer.T__29 = 30; -SolidityLexer.T__30 = 31; -SolidityLexer.T__31 = 32; -SolidityLexer.T__32 = 33; -SolidityLexer.T__33 = 34; -SolidityLexer.T__34 = 35; -SolidityLexer.T__35 = 36; -SolidityLexer.T__36 = 37; -SolidityLexer.T__37 = 38; -SolidityLexer.T__38 = 39; -SolidityLexer.T__39 = 40; -SolidityLexer.T__40 = 41; -SolidityLexer.T__41 = 42; -SolidityLexer.T__42 = 43; -SolidityLexer.T__43 = 44; -SolidityLexer.T__44 = 45; -SolidityLexer.T__45 = 46; -SolidityLexer.T__46 = 47; -SolidityLexer.T__47 = 48; -SolidityLexer.T__48 = 49; -SolidityLexer.T__49 = 50; -SolidityLexer.T__50 = 51; -SolidityLexer.T__51 = 52; -SolidityLexer.T__52 = 53; -SolidityLexer.T__53 = 54; -SolidityLexer.T__54 = 55; -SolidityLexer.T__55 = 56; -SolidityLexer.T__56 = 57; -SolidityLexer.T__57 = 58; -SolidityLexer.T__58 = 59; -SolidityLexer.T__59 = 60; -SolidityLexer.T__60 = 61; -SolidityLexer.T__61 = 62; -SolidityLexer.T__62 = 63; -SolidityLexer.T__63 = 64; -SolidityLexer.T__64 = 65; -SolidityLexer.T__65 = 66; -SolidityLexer.T__66 = 67; -SolidityLexer.T__67 = 68; -SolidityLexer.T__68 = 69; -SolidityLexer.T__69 = 70; -SolidityLexer.T__70 = 71; -SolidityLexer.T__71 = 72; -SolidityLexer.T__72 = 73; -SolidityLexer.T__73 = 74; -SolidityLexer.T__74 = 75; -SolidityLexer.T__75 = 76; -SolidityLexer.T__76 = 77; -SolidityLexer.T__77 = 78; -SolidityLexer.T__78 = 79; -SolidityLexer.T__79 = 80; -SolidityLexer.T__80 = 81; -SolidityLexer.T__81 = 82; -SolidityLexer.T__82 = 83; -SolidityLexer.T__83 = 84; -SolidityLexer.T__84 = 85; -SolidityLexer.T__85 = 86; -SolidityLexer.T__86 = 87; -SolidityLexer.T__87 = 88; -SolidityLexer.T__88 = 89; -SolidityLexer.T__89 = 90; -SolidityLexer.T__90 = 91; -SolidityLexer.T__91 = 92; -SolidityLexer.T__92 = 93; -SolidityLexer.T__93 = 94; -SolidityLexer.Int = 95; -SolidityLexer.Uint = 96; -SolidityLexer.Byte = 97; -SolidityLexer.Fixed = 98; -SolidityLexer.Ufixed = 99; -SolidityLexer.BooleanLiteral = 100; -SolidityLexer.DecimalNumber = 101; -SolidityLexer.HexNumber = 102; -SolidityLexer.NumberUnit = 103; -SolidityLexer.HexLiteralFragment = 104; -SolidityLexer.ReservedKeyword = 105; -SolidityLexer.AnonymousKeyword = 106; -SolidityLexer.BreakKeyword = 107; -SolidityLexer.ConstantKeyword = 108; -SolidityLexer.ImmutableKeyword = 109; -SolidityLexer.ContinueKeyword = 110; -SolidityLexer.LeaveKeyword = 111; -SolidityLexer.ExternalKeyword = 112; -SolidityLexer.IndexedKeyword = 113; -SolidityLexer.InternalKeyword = 114; -SolidityLexer.PayableKeyword = 115; -SolidityLexer.PrivateKeyword = 116; -SolidityLexer.PublicKeyword = 117; -SolidityLexer.VirtualKeyword = 118; -SolidityLexer.PureKeyword = 119; -SolidityLexer.TypeKeyword = 120; -SolidityLexer.ViewKeyword = 121; -SolidityLexer.ConstructorKeyword = 122; -SolidityLexer.FallbackKeyword = 123; -SolidityLexer.ReceiveKeyword = 124; -SolidityLexer.Identifier = 125; -SolidityLexer.StringLiteralFragment = 126; -SolidityLexer.VersionLiteral = 127; -SolidityLexer.WS = 128; -SolidityLexer.COMMENT = 129; -SolidityLexer.LINE_COMMENT = 130; - - - +SolidityLexer.EOF = antlr4.Token.EOF +SolidityLexer.T__0 = 1 +SolidityLexer.T__1 = 2 +SolidityLexer.T__2 = 3 +SolidityLexer.T__3 = 4 +SolidityLexer.T__4 = 5 +SolidityLexer.T__5 = 6 +SolidityLexer.T__6 = 7 +SolidityLexer.T__7 = 8 +SolidityLexer.T__8 = 9 +SolidityLexer.T__9 = 10 +SolidityLexer.T__10 = 11 +SolidityLexer.T__11 = 12 +SolidityLexer.T__12 = 13 +SolidityLexer.T__13 = 14 +SolidityLexer.T__14 = 15 +SolidityLexer.T__15 = 16 +SolidityLexer.T__16 = 17 +SolidityLexer.T__17 = 18 +SolidityLexer.T__18 = 19 +SolidityLexer.T__19 = 20 +SolidityLexer.T__20 = 21 +SolidityLexer.T__21 = 22 +SolidityLexer.T__22 = 23 +SolidityLexer.T__23 = 24 +SolidityLexer.T__24 = 25 +SolidityLexer.T__25 = 26 +SolidityLexer.T__26 = 27 +SolidityLexer.T__27 = 28 +SolidityLexer.T__28 = 29 +SolidityLexer.T__29 = 30 +SolidityLexer.T__30 = 31 +SolidityLexer.T__31 = 32 +SolidityLexer.T__32 = 33 +SolidityLexer.T__33 = 34 +SolidityLexer.T__34 = 35 +SolidityLexer.T__35 = 36 +SolidityLexer.T__36 = 37 +SolidityLexer.T__37 = 38 +SolidityLexer.T__38 = 39 +SolidityLexer.T__39 = 40 +SolidityLexer.T__40 = 41 +SolidityLexer.T__41 = 42 +SolidityLexer.T__42 = 43 +SolidityLexer.T__43 = 44 +SolidityLexer.T__44 = 45 +SolidityLexer.T__45 = 46 +SolidityLexer.T__46 = 47 +SolidityLexer.T__47 = 48 +SolidityLexer.T__48 = 49 +SolidityLexer.T__49 = 50 +SolidityLexer.T__50 = 51 +SolidityLexer.T__51 = 52 +SolidityLexer.T__52 = 53 +SolidityLexer.T__53 = 54 +SolidityLexer.T__54 = 55 +SolidityLexer.T__55 = 56 +SolidityLexer.T__56 = 57 +SolidityLexer.T__57 = 58 +SolidityLexer.T__58 = 59 +SolidityLexer.T__59 = 60 +SolidityLexer.T__60 = 61 +SolidityLexer.T__61 = 62 +SolidityLexer.T__62 = 63 +SolidityLexer.T__63 = 64 +SolidityLexer.T__64 = 65 +SolidityLexer.T__65 = 66 +SolidityLexer.T__66 = 67 +SolidityLexer.T__67 = 68 +SolidityLexer.T__68 = 69 +SolidityLexer.T__69 = 70 +SolidityLexer.T__70 = 71 +SolidityLexer.T__71 = 72 +SolidityLexer.T__72 = 73 +SolidityLexer.T__73 = 74 +SolidityLexer.T__74 = 75 +SolidityLexer.T__75 = 76 +SolidityLexer.T__76 = 77 +SolidityLexer.T__77 = 78 +SolidityLexer.T__78 = 79 +SolidityLexer.T__79 = 80 +SolidityLexer.T__80 = 81 +SolidityLexer.T__81 = 82 +SolidityLexer.T__82 = 83 +SolidityLexer.T__83 = 84 +SolidityLexer.T__84 = 85 +SolidityLexer.T__85 = 86 +SolidityLexer.T__86 = 87 +SolidityLexer.T__87 = 88 +SolidityLexer.T__88 = 89 +SolidityLexer.T__89 = 90 +SolidityLexer.T__90 = 91 +SolidityLexer.T__91 = 92 +SolidityLexer.T__92 = 93 +SolidityLexer.T__93 = 94 +SolidityLexer.Int = 95 +SolidityLexer.Uint = 96 +SolidityLexer.Byte = 97 +SolidityLexer.Fixed = 98 +SolidityLexer.Ufixed = 99 +SolidityLexer.BooleanLiteral = 100 +SolidityLexer.DecimalNumber = 101 +SolidityLexer.HexNumber = 102 +SolidityLexer.NumberUnit = 103 +SolidityLexer.HexLiteralFragment = 104 +SolidityLexer.ReservedKeyword = 105 +SolidityLexer.AnonymousKeyword = 106 +SolidityLexer.BreakKeyword = 107 +SolidityLexer.ConstantKeyword = 108 +SolidityLexer.ImmutableKeyword = 109 +SolidityLexer.ContinueKeyword = 110 +SolidityLexer.LeaveKeyword = 111 +SolidityLexer.ExternalKeyword = 112 +SolidityLexer.IndexedKeyword = 113 +SolidityLexer.InternalKeyword = 114 +SolidityLexer.PayableKeyword = 115 +SolidityLexer.PrivateKeyword = 116 +SolidityLexer.PublicKeyword = 117 +SolidityLexer.VirtualKeyword = 118 +SolidityLexer.PureKeyword = 119 +SolidityLexer.TypeKeyword = 120 +SolidityLexer.ViewKeyword = 121 +SolidityLexer.ConstructorKeyword = 122 +SolidityLexer.FallbackKeyword = 123 +SolidityLexer.ReceiveKeyword = 124 +SolidityLexer.Identifier = 125 +SolidityLexer.StringLiteralFragment = 126 +SolidityLexer.VersionLiteral = 127 +SolidityLexer.WS = 128 +SolidityLexer.COMMENT = 129 +SolidityLexer.LINE_COMMENT = 130 diff --git a/src/lib/SolidityListener.js b/src/lib/SolidityListener.js index 4e55a10..744ba4f 100644 --- a/src/lib/SolidityListener.js +++ b/src/lib/SolidityListener.js @@ -1,837 +1,558 @@ -// Generated from antlr/Solidity.g4 by ANTLR 4.8 +// Generated from antlr/Solidity.g4 by ANTLR 4.9 // jshint ignore: start -import antlr4 from 'antlr4'; +import antlr4 from 'antlr4' // This class defines a complete listener for a parse tree produced by SolidityParser. export default class SolidityListener extends antlr4.tree.ParseTreeListener { + // Enter a parse tree produced by SolidityParser#sourceUnit. + enterSourceUnit(ctx) {} - // Enter a parse tree produced by SolidityParser#sourceUnit. - enterSourceUnit(ctx) { - } + // Exit a parse tree produced by SolidityParser#sourceUnit. + exitSourceUnit(ctx) {} - // Exit a parse tree produced by SolidityParser#sourceUnit. - exitSourceUnit(ctx) { - } + // Enter a parse tree produced by SolidityParser#pragmaDirective. + enterPragmaDirective(ctx) {} + // Exit a parse tree produced by SolidityParser#pragmaDirective. + exitPragmaDirective(ctx) {} - // Enter a parse tree produced by SolidityParser#pragmaDirective. - enterPragmaDirective(ctx) { - } + // Enter a parse tree produced by SolidityParser#pragmaName. + enterPragmaName(ctx) {} - // Exit a parse tree produced by SolidityParser#pragmaDirective. - exitPragmaDirective(ctx) { - } + // Exit a parse tree produced by SolidityParser#pragmaName. + exitPragmaName(ctx) {} + // Enter a parse tree produced by SolidityParser#pragmaValue. + enterPragmaValue(ctx) {} - // Enter a parse tree produced by SolidityParser#pragmaName. - enterPragmaName(ctx) { - } + // Exit a parse tree produced by SolidityParser#pragmaValue. + exitPragmaValue(ctx) {} - // Exit a parse tree produced by SolidityParser#pragmaName. - exitPragmaName(ctx) { - } + // Enter a parse tree produced by SolidityParser#version. + enterVersion(ctx) {} + // Exit a parse tree produced by SolidityParser#version. + exitVersion(ctx) {} - // Enter a parse tree produced by SolidityParser#pragmaValue. - enterPragmaValue(ctx) { - } + // Enter a parse tree produced by SolidityParser#versionOperator. + enterVersionOperator(ctx) {} - // Exit a parse tree produced by SolidityParser#pragmaValue. - exitPragmaValue(ctx) { - } + // Exit a parse tree produced by SolidityParser#versionOperator. + exitVersionOperator(ctx) {} + // Enter a parse tree produced by SolidityParser#versionConstraint. + enterVersionConstraint(ctx) {} - // Enter a parse tree produced by SolidityParser#version. - enterVersion(ctx) { - } + // Exit a parse tree produced by SolidityParser#versionConstraint. + exitVersionConstraint(ctx) {} - // Exit a parse tree produced by SolidityParser#version. - exitVersion(ctx) { - } + // Enter a parse tree produced by SolidityParser#importDeclaration. + enterImportDeclaration(ctx) {} + // Exit a parse tree produced by SolidityParser#importDeclaration. + exitImportDeclaration(ctx) {} - // Enter a parse tree produced by SolidityParser#versionOperator. - enterVersionOperator(ctx) { - } + // Enter a parse tree produced by SolidityParser#importDirective. + enterImportDirective(ctx) {} - // Exit a parse tree produced by SolidityParser#versionOperator. - exitVersionOperator(ctx) { - } + // Exit a parse tree produced by SolidityParser#importDirective. + exitImportDirective(ctx) {} + // Enter a parse tree produced by SolidityParser#contractDefinition. + enterContractDefinition(ctx) {} - // Enter a parse tree produced by SolidityParser#versionConstraint. - enterVersionConstraint(ctx) { - } + // Exit a parse tree produced by SolidityParser#contractDefinition. + exitContractDefinition(ctx) {} - // Exit a parse tree produced by SolidityParser#versionConstraint. - exitVersionConstraint(ctx) { - } + // Enter a parse tree produced by SolidityParser#inheritanceSpecifier. + enterInheritanceSpecifier(ctx) {} + // Exit a parse tree produced by SolidityParser#inheritanceSpecifier. + exitInheritanceSpecifier(ctx) {} - // Enter a parse tree produced by SolidityParser#importDeclaration. - enterImportDeclaration(ctx) { - } + // Enter a parse tree produced by SolidityParser#contractPart. + enterContractPart(ctx) {} - // Exit a parse tree produced by SolidityParser#importDeclaration. - exitImportDeclaration(ctx) { - } + // Exit a parse tree produced by SolidityParser#contractPart. + exitContractPart(ctx) {} + // Enter a parse tree produced by SolidityParser#stateVariableDeclaration. + enterStateVariableDeclaration(ctx) {} - // Enter a parse tree produced by SolidityParser#importDirective. - enterImportDirective(ctx) { - } + // Exit a parse tree produced by SolidityParser#stateVariableDeclaration. + exitStateVariableDeclaration(ctx) {} - // Exit a parse tree produced by SolidityParser#importDirective. - exitImportDirective(ctx) { - } + // Enter a parse tree produced by SolidityParser#fileLevelConstant. + enterFileLevelConstant(ctx) {} + // Exit a parse tree produced by SolidityParser#fileLevelConstant. + exitFileLevelConstant(ctx) {} - // Enter a parse tree produced by SolidityParser#contractDefinition. - enterContractDefinition(ctx) { - } + // Enter a parse tree produced by SolidityParser#usingForDeclaration. + enterUsingForDeclaration(ctx) {} - // Exit a parse tree produced by SolidityParser#contractDefinition. - exitContractDefinition(ctx) { - } + // Exit a parse tree produced by SolidityParser#usingForDeclaration. + exitUsingForDeclaration(ctx) {} + // Enter a parse tree produced by SolidityParser#structDefinition. + enterStructDefinition(ctx) {} - // Enter a parse tree produced by SolidityParser#inheritanceSpecifier. - enterInheritanceSpecifier(ctx) { - } + // Exit a parse tree produced by SolidityParser#structDefinition. + exitStructDefinition(ctx) {} - // Exit a parse tree produced by SolidityParser#inheritanceSpecifier. - exitInheritanceSpecifier(ctx) { - } + // Enter a parse tree produced by SolidityParser#modifierDefinition. + enterModifierDefinition(ctx) {} + // Exit a parse tree produced by SolidityParser#modifierDefinition. + exitModifierDefinition(ctx) {} - // Enter a parse tree produced by SolidityParser#contractPart. - enterContractPart(ctx) { - } + // Enter a parse tree produced by SolidityParser#modifierInvocation. + enterModifierInvocation(ctx) {} - // Exit a parse tree produced by SolidityParser#contractPart. - exitContractPart(ctx) { - } + // Exit a parse tree produced by SolidityParser#modifierInvocation. + exitModifierInvocation(ctx) {} + // Enter a parse tree produced by SolidityParser#functionDefinition. + enterFunctionDefinition(ctx) {} - // Enter a parse tree produced by SolidityParser#stateVariableDeclaration. - enterStateVariableDeclaration(ctx) { - } + // Exit a parse tree produced by SolidityParser#functionDefinition. + exitFunctionDefinition(ctx) {} - // Exit a parse tree produced by SolidityParser#stateVariableDeclaration. - exitStateVariableDeclaration(ctx) { - } + // Enter a parse tree produced by SolidityParser#functionDescriptor. + enterFunctionDescriptor(ctx) {} + // Exit a parse tree produced by SolidityParser#functionDescriptor. + exitFunctionDescriptor(ctx) {} - // Enter a parse tree produced by SolidityParser#fileLevelConstant. - enterFileLevelConstant(ctx) { - } + // Enter a parse tree produced by SolidityParser#returnParameters. + enterReturnParameters(ctx) {} - // Exit a parse tree produced by SolidityParser#fileLevelConstant. - exitFileLevelConstant(ctx) { - } + // Exit a parse tree produced by SolidityParser#returnParameters. + exitReturnParameters(ctx) {} + // Enter a parse tree produced by SolidityParser#modifierList. + enterModifierList(ctx) {} - // Enter a parse tree produced by SolidityParser#usingForDeclaration. - enterUsingForDeclaration(ctx) { - } + // Exit a parse tree produced by SolidityParser#modifierList. + exitModifierList(ctx) {} - // Exit a parse tree produced by SolidityParser#usingForDeclaration. - exitUsingForDeclaration(ctx) { - } + // Enter a parse tree produced by SolidityParser#eventDefinition. + enterEventDefinition(ctx) {} + // Exit a parse tree produced by SolidityParser#eventDefinition. + exitEventDefinition(ctx) {} - // Enter a parse tree produced by SolidityParser#structDefinition. - enterStructDefinition(ctx) { - } + // Enter a parse tree produced by SolidityParser#enumValue. + enterEnumValue(ctx) {} - // Exit a parse tree produced by SolidityParser#structDefinition. - exitStructDefinition(ctx) { - } + // Exit a parse tree produced by SolidityParser#enumValue. + exitEnumValue(ctx) {} + // Enter a parse tree produced by SolidityParser#enumDefinition. + enterEnumDefinition(ctx) {} - // Enter a parse tree produced by SolidityParser#modifierDefinition. - enterModifierDefinition(ctx) { - } + // Exit a parse tree produced by SolidityParser#enumDefinition. + exitEnumDefinition(ctx) {} - // Exit a parse tree produced by SolidityParser#modifierDefinition. - exitModifierDefinition(ctx) { - } + // Enter a parse tree produced by SolidityParser#parameterList. + enterParameterList(ctx) {} + // Exit a parse tree produced by SolidityParser#parameterList. + exitParameterList(ctx) {} - // Enter a parse tree produced by SolidityParser#modifierInvocation. - enterModifierInvocation(ctx) { - } + // Enter a parse tree produced by SolidityParser#parameter. + enterParameter(ctx) {} - // Exit a parse tree produced by SolidityParser#modifierInvocation. - exitModifierInvocation(ctx) { - } + // Exit a parse tree produced by SolidityParser#parameter. + exitParameter(ctx) {} + // Enter a parse tree produced by SolidityParser#eventParameterList. + enterEventParameterList(ctx) {} - // Enter a parse tree produced by SolidityParser#functionDefinition. - enterFunctionDefinition(ctx) { - } + // Exit a parse tree produced by SolidityParser#eventParameterList. + exitEventParameterList(ctx) {} - // Exit a parse tree produced by SolidityParser#functionDefinition. - exitFunctionDefinition(ctx) { - } + // Enter a parse tree produced by SolidityParser#eventParameter. + enterEventParameter(ctx) {} + // Exit a parse tree produced by SolidityParser#eventParameter. + exitEventParameter(ctx) {} - // Enter a parse tree produced by SolidityParser#functionDescriptor. - enterFunctionDescriptor(ctx) { - } + // Enter a parse tree produced by SolidityParser#functionTypeParameterList. + enterFunctionTypeParameterList(ctx) {} - // Exit a parse tree produced by SolidityParser#functionDescriptor. - exitFunctionDescriptor(ctx) { - } + // Exit a parse tree produced by SolidityParser#functionTypeParameterList. + exitFunctionTypeParameterList(ctx) {} + // Enter a parse tree produced by SolidityParser#functionTypeParameter. + enterFunctionTypeParameter(ctx) {} - // Enter a parse tree produced by SolidityParser#returnParameters. - enterReturnParameters(ctx) { - } + // Exit a parse tree produced by SolidityParser#functionTypeParameter. + exitFunctionTypeParameter(ctx) {} - // Exit a parse tree produced by SolidityParser#returnParameters. - exitReturnParameters(ctx) { - } + // Enter a parse tree produced by SolidityParser#variableDeclaration. + enterVariableDeclaration(ctx) {} + // Exit a parse tree produced by SolidityParser#variableDeclaration. + exitVariableDeclaration(ctx) {} - // Enter a parse tree produced by SolidityParser#modifierList. - enterModifierList(ctx) { - } + // Enter a parse tree produced by SolidityParser#typeName. + enterTypeName(ctx) {} - // Exit a parse tree produced by SolidityParser#modifierList. - exitModifierList(ctx) { - } + // Exit a parse tree produced by SolidityParser#typeName. + exitTypeName(ctx) {} + // Enter a parse tree produced by SolidityParser#userDefinedTypeName. + enterUserDefinedTypeName(ctx) {} - // Enter a parse tree produced by SolidityParser#eventDefinition. - enterEventDefinition(ctx) { - } + // Exit a parse tree produced by SolidityParser#userDefinedTypeName. + exitUserDefinedTypeName(ctx) {} - // Exit a parse tree produced by SolidityParser#eventDefinition. - exitEventDefinition(ctx) { - } + // Enter a parse tree produced by SolidityParser#mappingKey. + enterMappingKey(ctx) {} + // Exit a parse tree produced by SolidityParser#mappingKey. + exitMappingKey(ctx) {} - // Enter a parse tree produced by SolidityParser#enumValue. - enterEnumValue(ctx) { - } + // Enter a parse tree produced by SolidityParser#mapping. + enterMapping(ctx) {} - // Exit a parse tree produced by SolidityParser#enumValue. - exitEnumValue(ctx) { - } + // Exit a parse tree produced by SolidityParser#mapping. + exitMapping(ctx) {} + // Enter a parse tree produced by SolidityParser#functionTypeName. + enterFunctionTypeName(ctx) {} - // Enter a parse tree produced by SolidityParser#enumDefinition. - enterEnumDefinition(ctx) { - } + // Exit a parse tree produced by SolidityParser#functionTypeName. + exitFunctionTypeName(ctx) {} - // Exit a parse tree produced by SolidityParser#enumDefinition. - exitEnumDefinition(ctx) { - } + // Enter a parse tree produced by SolidityParser#storageLocation. + enterStorageLocation(ctx) {} + // Exit a parse tree produced by SolidityParser#storageLocation. + exitStorageLocation(ctx) {} - // Enter a parse tree produced by SolidityParser#parameterList. - enterParameterList(ctx) { - } + // Enter a parse tree produced by SolidityParser#stateMutability. + enterStateMutability(ctx) {} - // Exit a parse tree produced by SolidityParser#parameterList. - exitParameterList(ctx) { - } + // Exit a parse tree produced by SolidityParser#stateMutability. + exitStateMutability(ctx) {} + // Enter a parse tree produced by SolidityParser#block. + enterBlock(ctx) {} - // Enter a parse tree produced by SolidityParser#parameter. - enterParameter(ctx) { - } + // Exit a parse tree produced by SolidityParser#block. + exitBlock(ctx) {} - // Exit a parse tree produced by SolidityParser#parameter. - exitParameter(ctx) { - } + // Enter a parse tree produced by SolidityParser#statement. + enterStatement(ctx) {} + // Exit a parse tree produced by SolidityParser#statement. + exitStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#eventParameterList. - enterEventParameterList(ctx) { - } + // Enter a parse tree produced by SolidityParser#expressionStatement. + enterExpressionStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#eventParameterList. - exitEventParameterList(ctx) { - } + // Exit a parse tree produced by SolidityParser#expressionStatement. + exitExpressionStatement(ctx) {} + // Enter a parse tree produced by SolidityParser#ifStatement. + enterIfStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#eventParameter. - enterEventParameter(ctx) { - } + // Exit a parse tree produced by SolidityParser#ifStatement. + exitIfStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#eventParameter. - exitEventParameter(ctx) { - } + // Enter a parse tree produced by SolidityParser#tryStatement. + enterTryStatement(ctx) {} + // Exit a parse tree produced by SolidityParser#tryStatement. + exitTryStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#functionTypeParameterList. - enterFunctionTypeParameterList(ctx) { - } + // Enter a parse tree produced by SolidityParser#catchClause. + enterCatchClause(ctx) {} - // Exit a parse tree produced by SolidityParser#functionTypeParameterList. - exitFunctionTypeParameterList(ctx) { - } + // Exit a parse tree produced by SolidityParser#catchClause. + exitCatchClause(ctx) {} + // Enter a parse tree produced by SolidityParser#whileStatement. + enterWhileStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#functionTypeParameter. - enterFunctionTypeParameter(ctx) { - } + // Exit a parse tree produced by SolidityParser#whileStatement. + exitWhileStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#functionTypeParameter. - exitFunctionTypeParameter(ctx) { - } + // Enter a parse tree produced by SolidityParser#simpleStatement. + enterSimpleStatement(ctx) {} + // Exit a parse tree produced by SolidityParser#simpleStatement. + exitSimpleStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#variableDeclaration. - enterVariableDeclaration(ctx) { - } + // Enter a parse tree produced by SolidityParser#forStatement. + enterForStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#variableDeclaration. - exitVariableDeclaration(ctx) { - } + // Exit a parse tree produced by SolidityParser#forStatement. + exitForStatement(ctx) {} + // Enter a parse tree produced by SolidityParser#inlineAssemblyStatement. + enterInlineAssemblyStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#typeName. - enterTypeName(ctx) { - } + // Exit a parse tree produced by SolidityParser#inlineAssemblyStatement. + exitInlineAssemblyStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#typeName. - exitTypeName(ctx) { - } + // Enter a parse tree produced by SolidityParser#doWhileStatement. + enterDoWhileStatement(ctx) {} + // Exit a parse tree produced by SolidityParser#doWhileStatement. + exitDoWhileStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#userDefinedTypeName. - enterUserDefinedTypeName(ctx) { - } + // Enter a parse tree produced by SolidityParser#continueStatement. + enterContinueStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#userDefinedTypeName. - exitUserDefinedTypeName(ctx) { - } + // Exit a parse tree produced by SolidityParser#continueStatement. + exitContinueStatement(ctx) {} + // Enter a parse tree produced by SolidityParser#breakStatement. + enterBreakStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#mappingKey. - enterMappingKey(ctx) { - } + // Exit a parse tree produced by SolidityParser#breakStatement. + exitBreakStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#mappingKey. - exitMappingKey(ctx) { - } + // Enter a parse tree produced by SolidityParser#returnStatement. + enterReturnStatement(ctx) {} + // Exit a parse tree produced by SolidityParser#returnStatement. + exitReturnStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#mapping. - enterMapping(ctx) { - } + // Enter a parse tree produced by SolidityParser#throwStatement. + enterThrowStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#mapping. - exitMapping(ctx) { - } + // Exit a parse tree produced by SolidityParser#throwStatement. + exitThrowStatement(ctx) {} + // Enter a parse tree produced by SolidityParser#emitStatement. + enterEmitStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#functionTypeName. - enterFunctionTypeName(ctx) { - } + // Exit a parse tree produced by SolidityParser#emitStatement. + exitEmitStatement(ctx) {} - // Exit a parse tree produced by SolidityParser#functionTypeName. - exitFunctionTypeName(ctx) { - } + // Enter a parse tree produced by SolidityParser#variableDeclarationStatement. + enterVariableDeclarationStatement(ctx) {} + // Exit a parse tree produced by SolidityParser#variableDeclarationStatement. + exitVariableDeclarationStatement(ctx) {} - // Enter a parse tree produced by SolidityParser#storageLocation. - enterStorageLocation(ctx) { - } + // Enter a parse tree produced by SolidityParser#variableDeclarationList. + enterVariableDeclarationList(ctx) {} - // Exit a parse tree produced by SolidityParser#storageLocation. - exitStorageLocation(ctx) { - } + // Exit a parse tree produced by SolidityParser#variableDeclarationList. + exitVariableDeclarationList(ctx) {} + // Enter a parse tree produced by SolidityParser#identifierList. + enterIdentifierList(ctx) {} - // Enter a parse tree produced by SolidityParser#stateMutability. - enterStateMutability(ctx) { - } + // Exit a parse tree produced by SolidityParser#identifierList. + exitIdentifierList(ctx) {} - // Exit a parse tree produced by SolidityParser#stateMutability. - exitStateMutability(ctx) { - } + // Enter a parse tree produced by SolidityParser#elementaryTypeName. + enterElementaryTypeName(ctx) {} + // Exit a parse tree produced by SolidityParser#elementaryTypeName. + exitElementaryTypeName(ctx) {} - // Enter a parse tree produced by SolidityParser#block. - enterBlock(ctx) { - } + // Enter a parse tree produced by SolidityParser#expression. + enterExpression(ctx) {} - // Exit a parse tree produced by SolidityParser#block. - exitBlock(ctx) { - } + // Exit a parse tree produced by SolidityParser#expression. + exitExpression(ctx) {} + // Enter a parse tree produced by SolidityParser#primaryExpression. + enterPrimaryExpression(ctx) {} - // Enter a parse tree produced by SolidityParser#statement. - enterStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#primaryExpression. + exitPrimaryExpression(ctx) {} - // Exit a parse tree produced by SolidityParser#statement. - exitStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#expressionList. + enterExpressionList(ctx) {} + // Exit a parse tree produced by SolidityParser#expressionList. + exitExpressionList(ctx) {} - // Enter a parse tree produced by SolidityParser#expressionStatement. - enterExpressionStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#nameValueList. + enterNameValueList(ctx) {} - // Exit a parse tree produced by SolidityParser#expressionStatement. - exitExpressionStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#nameValueList. + exitNameValueList(ctx) {} + // Enter a parse tree produced by SolidityParser#nameValue. + enterNameValue(ctx) {} - // Enter a parse tree produced by SolidityParser#ifStatement. - enterIfStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#nameValue. + exitNameValue(ctx) {} - // Exit a parse tree produced by SolidityParser#ifStatement. - exitIfStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#functionCallArguments. + enterFunctionCallArguments(ctx) {} + // Exit a parse tree produced by SolidityParser#functionCallArguments. + exitFunctionCallArguments(ctx) {} - // Enter a parse tree produced by SolidityParser#tryStatement. - enterTryStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#functionCall. + enterFunctionCall(ctx) {} - // Exit a parse tree produced by SolidityParser#tryStatement. - exitTryStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#functionCall. + exitFunctionCall(ctx) {} + // Enter a parse tree produced by SolidityParser#assemblyBlock. + enterAssemblyBlock(ctx) {} - // Enter a parse tree produced by SolidityParser#catchClause. - enterCatchClause(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyBlock. + exitAssemblyBlock(ctx) {} - // Exit a parse tree produced by SolidityParser#catchClause. - exitCatchClause(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyItem. + enterAssemblyItem(ctx) {} + // Exit a parse tree produced by SolidityParser#assemblyItem. + exitAssemblyItem(ctx) {} - // Enter a parse tree produced by SolidityParser#whileStatement. - enterWhileStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyExpression. + enterAssemblyExpression(ctx) {} - // Exit a parse tree produced by SolidityParser#whileStatement. - exitWhileStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyExpression. + exitAssemblyExpression(ctx) {} + // Enter a parse tree produced by SolidityParser#assemblyMember. + enterAssemblyMember(ctx) {} - // Enter a parse tree produced by SolidityParser#simpleStatement. - enterSimpleStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyMember. + exitAssemblyMember(ctx) {} - // Exit a parse tree produced by SolidityParser#simpleStatement. - exitSimpleStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyCall. + enterAssemblyCall(ctx) {} + // Exit a parse tree produced by SolidityParser#assemblyCall. + exitAssemblyCall(ctx) {} - // Enter a parse tree produced by SolidityParser#forStatement. - enterForStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyLocalDefinition. + enterAssemblyLocalDefinition(ctx) {} - // Exit a parse tree produced by SolidityParser#forStatement. - exitForStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyLocalDefinition. + exitAssemblyLocalDefinition(ctx) {} + // Enter a parse tree produced by SolidityParser#assemblyAssignment. + enterAssemblyAssignment(ctx) {} - // Enter a parse tree produced by SolidityParser#inlineAssemblyStatement. - enterInlineAssemblyStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyAssignment. + exitAssemblyAssignment(ctx) {} - // Exit a parse tree produced by SolidityParser#inlineAssemblyStatement. - exitInlineAssemblyStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyIdentifierOrList. + enterAssemblyIdentifierOrList(ctx) {} + // Exit a parse tree produced by SolidityParser#assemblyIdentifierOrList. + exitAssemblyIdentifierOrList(ctx) {} - // Enter a parse tree produced by SolidityParser#doWhileStatement. - enterDoWhileStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyIdentifierList. + enterAssemblyIdentifierList(ctx) {} - // Exit a parse tree produced by SolidityParser#doWhileStatement. - exitDoWhileStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyIdentifierList. + exitAssemblyIdentifierList(ctx) {} + // Enter a parse tree produced by SolidityParser#assemblyStackAssignment. + enterAssemblyStackAssignment(ctx) {} - // Enter a parse tree produced by SolidityParser#continueStatement. - enterContinueStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyStackAssignment. + exitAssemblyStackAssignment(ctx) {} - // Exit a parse tree produced by SolidityParser#continueStatement. - exitContinueStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#labelDefinition. + enterLabelDefinition(ctx) {} + // Exit a parse tree produced by SolidityParser#labelDefinition. + exitLabelDefinition(ctx) {} - // Enter a parse tree produced by SolidityParser#breakStatement. - enterBreakStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblySwitch. + enterAssemblySwitch(ctx) {} - // Exit a parse tree produced by SolidityParser#breakStatement. - exitBreakStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblySwitch. + exitAssemblySwitch(ctx) {} + // Enter a parse tree produced by SolidityParser#assemblyCase. + enterAssemblyCase(ctx) {} - // Enter a parse tree produced by SolidityParser#returnStatement. - enterReturnStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyCase. + exitAssemblyCase(ctx) {} - // Exit a parse tree produced by SolidityParser#returnStatement. - exitReturnStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyFunctionDefinition. + enterAssemblyFunctionDefinition(ctx) {} + // Exit a parse tree produced by SolidityParser#assemblyFunctionDefinition. + exitAssemblyFunctionDefinition(ctx) {} - // Enter a parse tree produced by SolidityParser#throwStatement. - enterThrowStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyFunctionReturns. + enterAssemblyFunctionReturns(ctx) {} - // Exit a parse tree produced by SolidityParser#throwStatement. - exitThrowStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyFunctionReturns. + exitAssemblyFunctionReturns(ctx) {} + // Enter a parse tree produced by SolidityParser#assemblyFor. + enterAssemblyFor(ctx) {} - // Enter a parse tree produced by SolidityParser#emitStatement. - enterEmitStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyFor. + exitAssemblyFor(ctx) {} - // Exit a parse tree produced by SolidityParser#emitStatement. - exitEmitStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyIf. + enterAssemblyIf(ctx) {} + // Exit a parse tree produced by SolidityParser#assemblyIf. + exitAssemblyIf(ctx) {} - // Enter a parse tree produced by SolidityParser#variableDeclarationStatement. - enterVariableDeclarationStatement(ctx) { - } + // Enter a parse tree produced by SolidityParser#assemblyLiteral. + enterAssemblyLiteral(ctx) {} - // Exit a parse tree produced by SolidityParser#variableDeclarationStatement. - exitVariableDeclarationStatement(ctx) { - } + // Exit a parse tree produced by SolidityParser#assemblyLiteral. + exitAssemblyLiteral(ctx) {} + // Enter a parse tree produced by SolidityParser#subAssembly. + enterSubAssembly(ctx) {} - // Enter a parse tree produced by SolidityParser#variableDeclarationList. - enterVariableDeclarationList(ctx) { - } + // Exit a parse tree produced by SolidityParser#subAssembly. + exitSubAssembly(ctx) {} - // Exit a parse tree produced by SolidityParser#variableDeclarationList. - exitVariableDeclarationList(ctx) { - } + // Enter a parse tree produced by SolidityParser#tupleExpression. + enterTupleExpression(ctx) {} + // Exit a parse tree produced by SolidityParser#tupleExpression. + exitTupleExpression(ctx) {} - // Enter a parse tree produced by SolidityParser#identifierList. - enterIdentifierList(ctx) { - } + // Enter a parse tree produced by SolidityParser#typeNameExpression. + enterTypeNameExpression(ctx) {} - // Exit a parse tree produced by SolidityParser#identifierList. - exitIdentifierList(ctx) { - } + // Exit a parse tree produced by SolidityParser#typeNameExpression. + exitTypeNameExpression(ctx) {} + // Enter a parse tree produced by SolidityParser#numberLiteral. + enterNumberLiteral(ctx) {} - // Enter a parse tree produced by SolidityParser#elementaryTypeName. - enterElementaryTypeName(ctx) { - } + // Exit a parse tree produced by SolidityParser#numberLiteral. + exitNumberLiteral(ctx) {} - // Exit a parse tree produced by SolidityParser#elementaryTypeName. - exitElementaryTypeName(ctx) { - } + // Enter a parse tree produced by SolidityParser#identifier. + enterIdentifier(ctx) {} + // Exit a parse tree produced by SolidityParser#identifier. + exitIdentifier(ctx) {} - // Enter a parse tree produced by SolidityParser#expression. - enterExpression(ctx) { - } + // Enter a parse tree produced by SolidityParser#hexLiteral. + enterHexLiteral(ctx) {} - // Exit a parse tree produced by SolidityParser#expression. - exitExpression(ctx) { - } + // Exit a parse tree produced by SolidityParser#hexLiteral. + exitHexLiteral(ctx) {} + // Enter a parse tree produced by SolidityParser#overrideSpecifier. + enterOverrideSpecifier(ctx) {} - // Enter a parse tree produced by SolidityParser#primaryExpression. - enterPrimaryExpression(ctx) { - } + // Exit a parse tree produced by SolidityParser#overrideSpecifier. + exitOverrideSpecifier(ctx) {} - // Exit a parse tree produced by SolidityParser#primaryExpression. - exitPrimaryExpression(ctx) { - } + // Enter a parse tree produced by SolidityParser#stringLiteral. + enterStringLiteral(ctx) {} - - // Enter a parse tree produced by SolidityParser#expressionList. - enterExpressionList(ctx) { - } - - // Exit a parse tree produced by SolidityParser#expressionList. - exitExpressionList(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#nameValueList. - enterNameValueList(ctx) { - } - - // Exit a parse tree produced by SolidityParser#nameValueList. - exitNameValueList(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#nameValue. - enterNameValue(ctx) { - } - - // Exit a parse tree produced by SolidityParser#nameValue. - exitNameValue(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#functionCallArguments. - enterFunctionCallArguments(ctx) { - } - - // Exit a parse tree produced by SolidityParser#functionCallArguments. - exitFunctionCallArguments(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#functionCall. - enterFunctionCall(ctx) { - } - - // Exit a parse tree produced by SolidityParser#functionCall. - exitFunctionCall(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyBlock. - enterAssemblyBlock(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyBlock. - exitAssemblyBlock(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyItem. - enterAssemblyItem(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyItem. - exitAssemblyItem(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyExpression. - enterAssemblyExpression(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyExpression. - exitAssemblyExpression(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyMember. - enterAssemblyMember(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyMember. - exitAssemblyMember(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyCall. - enterAssemblyCall(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyCall. - exitAssemblyCall(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyLocalDefinition. - enterAssemblyLocalDefinition(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyLocalDefinition. - exitAssemblyLocalDefinition(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyAssignment. - enterAssemblyAssignment(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyAssignment. - exitAssemblyAssignment(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyIdentifierOrList. - enterAssemblyIdentifierOrList(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyIdentifierOrList. - exitAssemblyIdentifierOrList(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyIdentifierList. - enterAssemblyIdentifierList(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyIdentifierList. - exitAssemblyIdentifierList(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyStackAssignment. - enterAssemblyStackAssignment(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyStackAssignment. - exitAssemblyStackAssignment(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#labelDefinition. - enterLabelDefinition(ctx) { - } - - // Exit a parse tree produced by SolidityParser#labelDefinition. - exitLabelDefinition(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblySwitch. - enterAssemblySwitch(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblySwitch. - exitAssemblySwitch(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyCase. - enterAssemblyCase(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyCase. - exitAssemblyCase(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyFunctionDefinition. - enterAssemblyFunctionDefinition(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyFunctionDefinition. - exitAssemblyFunctionDefinition(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyFunctionReturns. - enterAssemblyFunctionReturns(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyFunctionReturns. - exitAssemblyFunctionReturns(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyFor. - enterAssemblyFor(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyFor. - exitAssemblyFor(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyIf. - enterAssemblyIf(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyIf. - exitAssemblyIf(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#assemblyLiteral. - enterAssemblyLiteral(ctx) { - } - - // Exit a parse tree produced by SolidityParser#assemblyLiteral. - exitAssemblyLiteral(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#subAssembly. - enterSubAssembly(ctx) { - } - - // Exit a parse tree produced by SolidityParser#subAssembly. - exitSubAssembly(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#tupleExpression. - enterTupleExpression(ctx) { - } - - // Exit a parse tree produced by SolidityParser#tupleExpression. - exitTupleExpression(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#typeNameExpression. - enterTypeNameExpression(ctx) { - } - - // Exit a parse tree produced by SolidityParser#typeNameExpression. - exitTypeNameExpression(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#numberLiteral. - enterNumberLiteral(ctx) { - } - - // Exit a parse tree produced by SolidityParser#numberLiteral. - exitNumberLiteral(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#identifier. - enterIdentifier(ctx) { - } - - // Exit a parse tree produced by SolidityParser#identifier. - exitIdentifier(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#hexLiteral. - enterHexLiteral(ctx) { - } - - // Exit a parse tree produced by SolidityParser#hexLiteral. - exitHexLiteral(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#overrideSpecifier. - enterOverrideSpecifier(ctx) { - } - - // Exit a parse tree produced by SolidityParser#overrideSpecifier. - exitOverrideSpecifier(ctx) { - } - - - // Enter a parse tree produced by SolidityParser#stringLiteral. - enterStringLiteral(ctx) { - } - - // Exit a parse tree produced by SolidityParser#stringLiteral. - exitStringLiteral(ctx) { - } - - - -} \ No newline at end of file + // Exit a parse tree produced by SolidityParser#stringLiteral. + exitStringLiteral(ctx) {} +} diff --git a/src/lib/SolidityParser.js b/src/lib/SolidityParser.js index 2616e65..319ce80 100644 --- a/src/lib/SolidityParser.js +++ b/src/lib/SolidityParser.js @@ -1,10289 +1,11255 @@ -// Generated from antlr/Solidity.g4 by ANTLR 4.8 +// Generated from antlr/Solidity.g4 by ANTLR 4.9 // jshint ignore: start -import antlr4 from 'antlr4'; -import SolidityListener from './SolidityListener.js'; - -const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", - "\u5964\u0003\u0084\u0440\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004", - "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t", - "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", - "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", - "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", - "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", - "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", - "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", - "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", - "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", - "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", - "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", - "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", - "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", - "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", - "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", - "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", - "[\t[\u0004\\\t\\\u0004]\t]\u0003\u0002\u0003\u0002\u0003\u0002\u0003", - "\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0007\u0002\u00c2\n\u0002", - "\f\u0002\u000e\u0002\u00c5\u000b\u0002\u0003\u0002\u0003\u0002\u0003", - "\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0003", - "\u0004\u0003\u0005\u0003\u0005\u0005\u0005\u00d2\n\u0005\u0003\u0006", - "\u0003\u0006\u0005\u0006\u00d6\n\u0006\u0003\u0007\u0003\u0007\u0003", - "\b\u0005\b\u00db\n\b\u0003\b\u0003\b\u0005\b\u00df\n\b\u0003\b\u0005", - "\b\u00e2\n\b\u0003\t\u0003\t\u0003\t\u0005\t\u00e7\n\t\u0003\n\u0003", - "\n\u0003\n\u0003\n\u0005\n\u00ed\n\n\u0003\n\u0003\n\u0003\n\u0003\n", - "\u0005\n\u00f3\n\n\u0003\n\u0003\n\u0005\n\u00f7\n\n\u0003\n\u0003\n", - "\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0007\n\u0101\n\n\f", - "\n\u000e\n\u0104\u000b\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0005", - "\n\u010b\n\n\u0003\u000b\u0005\u000b\u010e\n\u000b\u0003\u000b\u0003", - "\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0007\u000b\u0116", - "\n\u000b\f\u000b\u000e\u000b\u0119\u000b\u000b\u0005\u000b\u011b\n\u000b", - "\u0003\u000b\u0003\u000b\u0007\u000b\u011f\n\u000b\f\u000b\u000e\u000b", - "\u0122\u000b\u000b\u0003\u000b\u0003\u000b\u0003\f\u0003\f\u0003\f\u0005", - "\f\u0129\n\f\u0003\f\u0005\f\u012c\n\f\u0003\r\u0003\r\u0003\r\u0003", - "\r\u0003\r\u0003\r\u0003\r\u0005\r\u0135\n\r\u0003\u000e\u0003\u000e", - "\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0007\u000e", - "\u013e\n\u000e\f\u000e\u000e\u000e\u0141\u000b\u000e\u0003\u000e\u0003", - "\u000e\u0003\u000e\u0005\u000e\u0146\n\u000e\u0003\u000e\u0003\u000e", - "\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f", - "\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010", - "\u0005\u0010\u0156\n\u0010\u0003\u0010\u0003\u0010\u0003\u0011\u0003", - "\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", - "\u0011\u0007\u0011\u0162\n\u0011\f\u0011\u000e\u0011\u0165\u000b\u0011", - "\u0005\u0011\u0167\n\u0011\u0003\u0011\u0003\u0011\u0003\u0012\u0003", - "\u0012\u0003\u0012\u0005\u0012\u016e\n\u0012\u0003\u0012\u0003\u0012", - "\u0007\u0012\u0172\n\u0012\f\u0012\u000e\u0012\u0175\u000b\u0012\u0003", - "\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0005\u0013\u017c", - "\n\u0013\u0003\u0013\u0005\u0013\u017f\n\u0013\u0003\u0014\u0003\u0014", - "\u0003\u0014\u0003\u0014\u0005\u0014\u0185\n\u0014\u0003\u0014\u0003", - "\u0014\u0005\u0014\u0189\n\u0014\u0003\u0015\u0003\u0015\u0005\u0015", - "\u018d\n\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u0192", - "\n\u0015\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017", - "\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017", - "\u0007\u0017\u019f\n\u0017\f\u0017\u000e\u0017\u01a2\u000b\u0017\u0003", - "\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0005\u0018\u01a8\n\u0018", - "\u0003\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a", - "\u0003\u001a\u0003\u001a\u0005\u001a\u01b2\n\u001a\u0003\u001a\u0003", - "\u001a\u0007\u001a\u01b6\n\u001a\f\u001a\u000e\u001a\u01b9\u000b\u001a", - "\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b", - "\u0007\u001b\u01c1\n\u001b\f\u001b\u000e\u001b\u01c4\u000b\u001b\u0005", - "\u001b\u01c6\n\u001b\u0003\u001b\u0003\u001b\u0003\u001c\u0003\u001c", - "\u0005\u001c\u01cc\n\u001c\u0003\u001c\u0005\u001c\u01cf\n\u001c\u0003", - "\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0007\u001d\u01d5\n\u001d", - "\f\u001d\u000e\u001d\u01d8\u000b\u001d\u0005\u001d\u01da\n\u001d\u0003", - "\u001d\u0003\u001d\u0003\u001e\u0003\u001e\u0005\u001e\u01e0\n\u001e", - "\u0003\u001e\u0005\u001e\u01e3\n\u001e\u0003\u001f\u0003\u001f\u0003", - "\u001f\u0003\u001f\u0007\u001f\u01e9\n\u001f\f\u001f\u000e\u001f\u01ec", - "\u000b\u001f\u0005\u001f\u01ee\n\u001f\u0003\u001f\u0003\u001f\u0003", - " \u0003 \u0005 \u01f4\n \u0003!\u0003!\u0005!\u01f8\n!\u0003!\u0003", - "!\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0005\"\u0203", - "\n\"\u0003\"\u0003\"\u0003\"\u0005\"\u0208\n\"\u0003\"\u0007\"\u020b", - "\n\"\f\"\u000e\"\u020e\u000b\"\u0003#\u0003#\u0003#\u0007#\u0213\n#", - "\f#\u000e#\u0216\u000b#\u0003$\u0003$\u0005$\u021a\n$\u0003%\u0003%", - "\u0003%\u0003%\u0003%\u0003%\u0003%\u0003&\u0003&\u0003&\u0003&\u0003", - "&\u0007&\u0228\n&\f&\u000e&\u022b\u000b&\u0003&\u0003&\u0005&\u022f", - "\n&\u0003\'\u0003\'\u0003(\u0003(\u0003)\u0003)\u0007)\u0237\n)\f)\u000e", - ")\u023a\u000b)\u0003)\u0003)\u0003*\u0003*\u0003*\u0003*\u0003*\u0003", - "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0005*\u024b\n*\u0003", - "+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0005", - ",\u0257\n,\u0003-\u0003-\u0003-\u0005-\u025c\n-\u0003-\u0003-\u0006", - "-\u0260\n-\r-\u000e-\u0261\u0003.\u0003.\u0005.\u0266\n.\u0003.\u0005", - ".\u0269\n.\u0003.\u0003.\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", - "0\u00030\u00050\u0275\n0\u00031\u00031\u00031\u00031\u00051\u027b\n", - "1\u00031\u00031\u00051\u027f\n1\u00031\u00051\u0282\n1\u00031\u0003", - "1\u00031\u00032\u00032\u00052\u0289\n2\u00032\u00032\u00033\u00033\u0003", - "3\u00033\u00033\u00033\u00033\u00033\u00034\u00034\u00034\u00035\u0003", - "5\u00035\u00036\u00036\u00056\u029d\n6\u00036\u00036\u00037\u00037\u0003", - "7\u00038\u00038\u00038\u00038\u00039\u00039\u00039\u00039\u00039\u0003", - "9\u00039\u00059\u02af\n9\u00039\u00039\u00059\u02b3\n9\u00039\u0003", - "9\u0003:\u0005:\u02b8\n:\u0003:\u0003:\u0005:\u02bc\n:\u0007:\u02be", - "\n:\f:\u000e:\u02c1\u000b:\u0003;\u0003;\u0005;\u02c5\n;\u0003;\u0007", - ";\u02c8\n;\f;\u000e;\u02cb\u000b;\u0003;\u0005;\u02ce\n;\u0003;\u0003", - ";\u0003<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0005=\u02e6\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0005", - "=\u0317\n=\u0003=\u0003=\u0003=\u0003=\u0005=\u031d\n=\u0003=\u0003", - "=\u0005=\u0321\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0007=\u0331\n=\f=\u000e", - "=\u0334\u000b=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0005", - ">\u033d\n>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0005>\u0345\n", - ">\u0005>\u0347\n>\u0003?\u0003?\u0003?\u0007?\u034c\n?\f?\u000e?\u034f", - "\u000b?\u0003@\u0003@\u0003@\u0007@\u0354\n@\f@\u000e@\u0357\u000b@", - "\u0003@\u0005@\u035a\n@\u0003A\u0003A\u0003A\u0003A\u0003B\u0003B\u0005", - "B\u0362\nB\u0003B\u0003B\u0005B\u0366\nB\u0005B\u0368\nB\u0003C\u0003", - "C\u0003C\u0003C\u0003C\u0003D\u0003D\u0007D\u0371\nD\fD\u000eD\u0374", - "\u000bD\u0003D\u0003D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", - "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", - "E\u0003E\u0005E\u038a\nE\u0003F\u0003F\u0003F\u0005F\u038f\nF\u0003", - "G\u0003G\u0003G\u0003G\u0003H\u0003H\u0003H\u0003H\u0005H\u0399\nH\u0003", - "H\u0003H\u0005H\u039d\nH\u0003H\u0003H\u0007H\u03a1\nH\fH\u000eH\u03a4", - "\u000bH\u0003H\u0005H\u03a7\nH\u0003I\u0003I\u0003I\u0003I\u0005I\u03ad", - "\nI\u0003J\u0003J\u0003J\u0003J\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", - "K\u0005K\u03b9\nK\u0003L\u0003L\u0003L\u0007L\u03be\nL\fL\u000eL\u03c1", - "\u000bL\u0003M\u0003M\u0003M\u0003N\u0003N\u0003N\u0003O\u0003O\u0003", - "O\u0007O\u03cc\nO\fO\u000eO\u03cf\u000bO\u0003P\u0003P\u0003P\u0003", - "P\u0003P\u0003P\u0005P\u03d7\nP\u0003Q\u0003Q\u0003Q\u0003Q\u0005Q\u03dd", - "\nQ\u0003Q\u0003Q\u0005Q\u03e1\nQ\u0003Q\u0003Q\u0003R\u0003R\u0003", - "R\u0003S\u0003S\u0003S\u0005S\u03eb\nS\u0003S\u0003S\u0003S\u0005S\u03f0", - "\nS\u0003S\u0003S\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003", - "U\u0005U\u03fc\nU\u0003V\u0003V\u0003V\u0003V\u0003W\u0003W\u0005W\u0404", - "\nW\u0003W\u0003W\u0005W\u0408\nW\u0007W\u040a\nW\fW\u000eW\u040d\u000b", - "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0007W\u0414\nW\fW\u000eW\u0417", - "\u000bW\u0005W\u0419\nW\u0003W\u0005W\u041c\nW\u0003X\u0003X\u0005X", - "\u0420\nX\u0003Y\u0003Y\u0005Y\u0424\nY\u0003Z\u0003Z\u0003[\u0006[", - "\u0429\n[\r[\u000e[\u042a\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0007", - "\\\u0432\n\\\f\\\u000e\\\u0435\u000b\\\u0003\\\u0003\\\u0005\\\u0439", - "\n\\\u0003]\u0006]\u043c\n]\r]\u000e]\u043d\u0003]\u0002\u0004Bx^\u0002", - "\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e", - " \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084", - "\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c", - "\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4", - "\u00b6\u00b8\u0002\u0011\u0003\u0002\u0005\u000b\u0003\u0002\u0014\u0016", - "\u0003\u0002(*\u0006\u0002nnuuyy{{\u0005\u0002$$58ae\u0003\u00029:\u0003", - "\u0002=>\u0003\u0002?@\u0004\u0002\u000e\u000eCD\u0003\u0002EF\u0003", - "\u0002\u0007\n\u0003\u0002IJ\u0004\u0002\u000b\u000bNW\u0003\u0002g", - "h\b\u0002\u000f\u000f**__qquu~\u007f\u0002\u04bb\u0002\u00c3\u0003\u0002", - "\u0002\u0002\u0004\u00c8\u0003\u0002\u0002\u0002\u0006\u00cd\u0003\u0002", - "\u0002\u0002\b\u00d1\u0003\u0002\u0002\u0002\n\u00d3\u0003\u0002\u0002", - "\u0002\f\u00d7\u0003\u0002\u0002\u0002\u000e\u00e1\u0003\u0002\u0002", - "\u0002\u0010\u00e3\u0003\u0002\u0002\u0002\u0012\u010a\u0003\u0002\u0002", - "\u0002\u0014\u010d\u0003\u0002\u0002\u0002\u0016\u0125\u0003\u0002\u0002", - "\u0002\u0018\u0134\u0003\u0002\u0002\u0002\u001a\u0136\u0003\u0002\u0002", - "\u0002\u001c\u0149\u0003\u0002\u0002\u0002\u001e\u0150\u0003\u0002\u0002", - "\u0002 \u0159\u0003\u0002\u0002\u0002\"\u016a\u0003\u0002\u0002\u0002", - "$\u0178\u0003\u0002\u0002\u0002&\u0180\u0003\u0002\u0002\u0002(\u0191", - "\u0003\u0002\u0002\u0002*\u0193\u0003\u0002\u0002\u0002,\u01a0\u0003", - "\u0002\u0002\u0002.\u01a3\u0003\u0002\u0002\u00020\u01ab\u0003\u0002", - "\u0002\u00022\u01ad\u0003\u0002\u0002\u00024\u01bc\u0003\u0002\u0002", - "\u00026\u01c9\u0003\u0002\u0002\u00028\u01d0\u0003\u0002\u0002\u0002", - ":\u01dd\u0003\u0002\u0002\u0002<\u01e4\u0003\u0002\u0002\u0002>\u01f1", - "\u0003\u0002\u0002\u0002@\u01f5\u0003\u0002\u0002\u0002B\u0202\u0003", - "\u0002\u0002\u0002D\u020f\u0003\u0002\u0002\u0002F\u0219\u0003\u0002", - "\u0002\u0002H\u021b\u0003\u0002\u0002\u0002J\u0222\u0003\u0002\u0002", - "\u0002L\u0230\u0003\u0002\u0002\u0002N\u0232\u0003\u0002\u0002\u0002", - "P\u0234\u0003\u0002\u0002\u0002R\u024a\u0003\u0002\u0002\u0002T\u024c", - "\u0003\u0002\u0002\u0002V\u024f\u0003\u0002\u0002\u0002X\u0258\u0003", - "\u0002\u0002\u0002Z\u0263\u0003\u0002\u0002\u0002\\\u026c\u0003\u0002", - "\u0002\u0002^\u0274\u0003\u0002\u0002\u0002`\u0276\u0003\u0002\u0002", - "\u0002b\u0286\u0003\u0002\u0002\u0002d\u028c\u0003\u0002\u0002\u0002", - "f\u0294\u0003\u0002\u0002\u0002h\u0297\u0003\u0002\u0002\u0002j\u029a", - "\u0003\u0002\u0002\u0002l\u02a0\u0003\u0002\u0002\u0002n\u02a3\u0003", - "\u0002\u0002\u0002p\u02ae\u0003\u0002\u0002\u0002r\u02b7\u0003\u0002", - "\u0002\u0002t\u02c2\u0003\u0002\u0002\u0002v\u02d1\u0003\u0002\u0002", - "\u0002x\u02e5\u0003\u0002\u0002\u0002z\u0346\u0003\u0002\u0002\u0002", - "|\u0348\u0003\u0002\u0002\u0002~\u0350\u0003\u0002\u0002\u0002\u0080", - "\u035b\u0003\u0002\u0002\u0002\u0082\u0367\u0003\u0002\u0002\u0002\u0084", - "\u0369\u0003\u0002\u0002\u0002\u0086\u036e\u0003\u0002\u0002\u0002\u0088", - "\u0389\u0003\u0002\u0002\u0002\u008a\u038e\u0003\u0002\u0002\u0002\u008c", - "\u0390\u0003\u0002\u0002\u0002\u008e\u0398\u0003\u0002\u0002\u0002\u0090", - "\u03a8\u0003\u0002\u0002\u0002\u0092\u03ae\u0003\u0002\u0002\u0002\u0094", - "\u03b8\u0003\u0002\u0002\u0002\u0096\u03ba\u0003\u0002\u0002\u0002\u0098", - "\u03c2\u0003\u0002\u0002\u0002\u009a\u03c5\u0003\u0002\u0002\u0002\u009c", - "\u03c8\u0003\u0002\u0002\u0002\u009e\u03d6\u0003\u0002\u0002\u0002\u00a0", - "\u03d8\u0003\u0002\u0002\u0002\u00a2\u03e4\u0003\u0002\u0002\u0002\u00a4", - "\u03e7\u0003\u0002\u0002\u0002\u00a6\u03f3\u0003\u0002\u0002\u0002\u00a8", - "\u03fb\u0003\u0002\u0002\u0002\u00aa\u03fd\u0003\u0002\u0002\u0002\u00ac", - "\u041b\u0003\u0002\u0002\u0002\u00ae\u041f\u0003\u0002\u0002\u0002\u00b0", - "\u0421\u0003\u0002\u0002\u0002\u00b2\u0425\u0003\u0002\u0002\u0002\u00b4", - "\u0428\u0003\u0002\u0002\u0002\u00b6\u042c\u0003\u0002\u0002\u0002\u00b8", - "\u043b\u0003\u0002\u0002\u0002\u00ba\u00c2\u0005\u0004\u0003\u0002\u00bb", - "\u00c2\u0005\u0012\n\u0002\u00bc\u00c2\u0005\u0014\u000b\u0002\u00bd", - "\u00c2\u00052\u001a\u0002\u00be\u00c2\u0005 \u0011\u0002\u00bf\u00c2", - "\u0005&\u0014\u0002\u00c0\u00c2\u0005\u001c\u000f\u0002\u00c1\u00ba", - "\u0003\u0002\u0002\u0002\u00c1\u00bb\u0003\u0002\u0002\u0002\u00c1\u00bc", - "\u0003\u0002\u0002\u0002\u00c1\u00bd\u0003\u0002\u0002\u0002\u00c1\u00be", - "\u0003\u0002\u0002\u0002\u00c1\u00bf\u0003\u0002\u0002\u0002\u00c1\u00c0", - "\u0003\u0002\u0002\u0002\u00c2\u00c5\u0003\u0002\u0002\u0002\u00c3\u00c1", - "\u0003\u0002\u0002\u0002\u00c3\u00c4\u0003\u0002\u0002\u0002\u00c4\u00c6", - "\u0003\u0002\u0002\u0002\u00c5\u00c3\u0003\u0002\u0002\u0002\u00c6\u00c7", - "\u0007\u0002\u0002\u0003\u00c7\u0003\u0003\u0002\u0002\u0002\u00c8\u00c9", - "\u0007\u0003\u0002\u0002\u00c9\u00ca\u0005\u0006\u0004\u0002\u00ca\u00cb", - "\u0005\b\u0005\u0002\u00cb\u00cc\u0007\u0004\u0002\u0002\u00cc\u0005", - "\u0003\u0002\u0002\u0002\u00cd\u00ce\u0005\u00b2Z\u0002\u00ce\u0007", - "\u0003\u0002\u0002\u0002\u00cf\u00d2\u0005\n\u0006\u0002\u00d0\u00d2", - "\u0005x=\u0002\u00d1\u00cf\u0003\u0002\u0002\u0002\u00d1\u00d0\u0003", - "\u0002\u0002\u0002\u00d2\t\u0003\u0002\u0002\u0002\u00d3\u00d5\u0005", - "\u000e\b\u0002\u00d4\u00d6\u0005\u000e\b\u0002\u00d5\u00d4\u0003\u0002", - "\u0002\u0002\u00d5\u00d6\u0003\u0002\u0002\u0002\u00d6\u000b\u0003\u0002", - "\u0002\u0002\u00d7\u00d8\t\u0002\u0002\u0002\u00d8\r\u0003\u0002\u0002", - "\u0002\u00d9\u00db\u0005\f\u0007\u0002\u00da\u00d9\u0003\u0002\u0002", - "\u0002\u00da\u00db\u0003\u0002\u0002\u0002\u00db\u00dc\u0003\u0002\u0002", - "\u0002\u00dc\u00e2\u0007\u0081\u0002\u0002\u00dd\u00df\u0005\f\u0007", - "\u0002\u00de\u00dd\u0003\u0002\u0002\u0002\u00de\u00df\u0003\u0002\u0002", - "\u0002\u00df\u00e0\u0003\u0002\u0002\u0002\u00e0\u00e2\u0007g\u0002", - "\u0002\u00e1\u00da\u0003\u0002\u0002\u0002\u00e1\u00de\u0003\u0002\u0002", - "\u0002\u00e2\u000f\u0003\u0002\u0002\u0002\u00e3\u00e6\u0005\u00b2Z", - "\u0002\u00e4\u00e5\u0007\f\u0002\u0002\u00e5\u00e7\u0005\u00b2Z\u0002", - "\u00e6\u00e4\u0003\u0002\u0002\u0002\u00e6\u00e7\u0003\u0002\u0002\u0002", - "\u00e7\u0011\u0003\u0002\u0002\u0002\u00e8\u00e9\u0007\r\u0002\u0002", - "\u00e9\u00ec\u0007\u0080\u0002\u0002\u00ea\u00eb\u0007\f\u0002\u0002", - "\u00eb\u00ed\u0005\u00b2Z\u0002\u00ec\u00ea\u0003\u0002\u0002\u0002", - "\u00ec\u00ed\u0003\u0002\u0002\u0002\u00ed\u00ee\u0003\u0002\u0002\u0002", - "\u00ee\u010b\u0007\u0004\u0002\u0002\u00ef\u00f2\u0007\r\u0002\u0002", - "\u00f0\u00f3\u0007\u000e\u0002\u0002\u00f1\u00f3\u0005\u00b2Z\u0002", - "\u00f2\u00f0\u0003\u0002\u0002\u0002\u00f2\u00f1\u0003\u0002\u0002\u0002", - "\u00f3\u00f6\u0003\u0002\u0002\u0002\u00f4\u00f5\u0007\f\u0002\u0002", - "\u00f5\u00f7\u0005\u00b2Z\u0002\u00f6\u00f4\u0003\u0002\u0002\u0002", - "\u00f6\u00f7\u0003\u0002\u0002\u0002\u00f7\u00f8\u0003\u0002\u0002\u0002", - "\u00f8\u00f9\u0007\u000f\u0002\u0002\u00f9\u00fa\u0007\u0080\u0002\u0002", - "\u00fa\u010b\u0007\u0004\u0002\u0002\u00fb\u00fc\u0007\r\u0002\u0002", - "\u00fc\u00fd\u0007\u0010\u0002\u0002\u00fd\u0102\u0005\u0010\t\u0002", - "\u00fe\u00ff\u0007\u0011\u0002\u0002\u00ff\u0101\u0005\u0010\t\u0002", - "\u0100\u00fe\u0003\u0002\u0002\u0002\u0101\u0104\u0003\u0002\u0002\u0002", - "\u0102\u0100\u0003\u0002\u0002\u0002\u0102\u0103\u0003\u0002\u0002\u0002", - "\u0103\u0105\u0003\u0002\u0002\u0002\u0104\u0102\u0003\u0002\u0002\u0002", - "\u0105\u0106\u0007\u0012\u0002\u0002\u0106\u0107\u0007\u000f\u0002\u0002", - "\u0107\u0108\u0007\u0080\u0002\u0002\u0108\u0109\u0007\u0004\u0002\u0002", - "\u0109\u010b\u0003\u0002\u0002\u0002\u010a\u00e8\u0003\u0002\u0002\u0002", - "\u010a\u00ef\u0003\u0002\u0002\u0002\u010a\u00fb\u0003\u0002\u0002\u0002", - "\u010b\u0013\u0003\u0002\u0002\u0002\u010c\u010e\u0007\u0013\u0002\u0002", - "\u010d\u010c\u0003\u0002\u0002\u0002\u010d\u010e\u0003\u0002\u0002\u0002", - "\u010e\u010f\u0003\u0002\u0002\u0002\u010f\u0110\t\u0003\u0002\u0002", - "\u0110\u011a\u0005\u00b2Z\u0002\u0111\u0112\u0007\u0017\u0002\u0002", - "\u0112\u0117\u0005\u0016\f\u0002\u0113\u0114\u0007\u0011\u0002\u0002", - "\u0114\u0116\u0005\u0016\f\u0002\u0115\u0113\u0003\u0002\u0002\u0002", - "\u0116\u0119\u0003\u0002\u0002\u0002\u0117\u0115\u0003\u0002\u0002\u0002", - "\u0117\u0118\u0003\u0002\u0002\u0002\u0118\u011b\u0003\u0002\u0002\u0002", - "\u0119\u0117\u0003\u0002\u0002\u0002\u011a\u0111\u0003\u0002\u0002\u0002", - "\u011a\u011b\u0003\u0002\u0002\u0002\u011b\u011c\u0003\u0002\u0002\u0002", - "\u011c\u0120\u0007\u0010\u0002\u0002\u011d\u011f\u0005\u0018\r\u0002", - "\u011e\u011d\u0003\u0002\u0002\u0002\u011f\u0122\u0003\u0002\u0002\u0002", - "\u0120\u011e\u0003\u0002\u0002\u0002\u0120\u0121\u0003\u0002\u0002\u0002", - "\u0121\u0123\u0003\u0002\u0002\u0002\u0122\u0120\u0003\u0002\u0002\u0002", - "\u0123\u0124\u0007\u0012\u0002\u0002\u0124\u0015\u0003\u0002\u0002\u0002", - "\u0125\u012b\u0005D#\u0002\u0126\u0128\u0007\u0018\u0002\u0002\u0127", - "\u0129\u0005|?\u0002\u0128\u0127\u0003\u0002\u0002\u0002\u0128\u0129", - "\u0003\u0002\u0002\u0002\u0129\u012a\u0003\u0002\u0002\u0002\u012a\u012c", - "\u0007\u0019\u0002\u0002\u012b\u0126\u0003\u0002\u0002\u0002\u012b\u012c", - "\u0003\u0002\u0002\u0002\u012c\u0017\u0003\u0002\u0002\u0002\u012d\u0135", - "\u0005\u001a\u000e\u0002\u012e\u0135\u0005\u001e\u0010\u0002\u012f\u0135", - "\u0005 \u0011\u0002\u0130\u0135\u0005\"\u0012\u0002\u0131\u0135\u0005", - "&\u0014\u0002\u0132\u0135\u0005.\u0018\u0002\u0133\u0135\u00052\u001a", - "\u0002\u0134\u012d\u0003\u0002\u0002\u0002\u0134\u012e\u0003\u0002\u0002", - "\u0002\u0134\u012f\u0003\u0002\u0002\u0002\u0134\u0130\u0003\u0002\u0002", - "\u0002\u0134\u0131\u0003\u0002\u0002\u0002\u0134\u0132\u0003\u0002\u0002", - "\u0002\u0134\u0133\u0003\u0002\u0002\u0002\u0135\u0019\u0003\u0002\u0002", - "\u0002\u0136\u013f\u0005B\"\u0002\u0137\u013e\u0007w\u0002\u0002\u0138", - "\u013e\u0007t\u0002\u0002\u0139\u013e\u0007v\u0002\u0002\u013a\u013e", - "\u0007n\u0002\u0002\u013b\u013e\u0007o\u0002\u0002\u013c\u013e\u0005", - "\u00b6\\\u0002\u013d\u0137\u0003\u0002\u0002\u0002\u013d\u0138\u0003", - "\u0002\u0002\u0002\u013d\u0139\u0003\u0002\u0002\u0002\u013d\u013a\u0003", - "\u0002\u0002\u0002\u013d\u013b\u0003\u0002\u0002\u0002\u013d\u013c\u0003", - "\u0002\u0002\u0002\u013e\u0141\u0003\u0002\u0002\u0002\u013f\u013d\u0003", - "\u0002\u0002\u0002\u013f\u0140\u0003\u0002\u0002\u0002\u0140\u0142\u0003", - "\u0002\u0002\u0002\u0141\u013f\u0003\u0002\u0002\u0002\u0142\u0145\u0005", - "\u00b2Z\u0002\u0143\u0144\u0007\u000b\u0002\u0002\u0144\u0146\u0005", - "x=\u0002\u0145\u0143\u0003\u0002\u0002\u0002\u0145\u0146\u0003\u0002", - "\u0002\u0002\u0146\u0147\u0003\u0002\u0002\u0002\u0147\u0148\u0007\u0004", - "\u0002\u0002\u0148\u001b\u0003\u0002\u0002\u0002\u0149\u014a\u0005B", - "\"\u0002\u014a\u014b\u0007n\u0002\u0002\u014b\u014c\u0005\u00b2Z\u0002", - "\u014c\u014d\u0007\u000b\u0002\u0002\u014d\u014e\u0005x=\u0002\u014e", - "\u014f\u0007\u0004\u0002\u0002\u014f\u001d\u0003\u0002\u0002\u0002\u0150", - "\u0151\u0007\u001a\u0002\u0002\u0151\u0152\u0005\u00b2Z\u0002\u0152", - "\u0155\u0007\u001b\u0002\u0002\u0153\u0156\u0007\u000e\u0002\u0002\u0154", - "\u0156\u0005B\"\u0002\u0155\u0153\u0003\u0002\u0002\u0002\u0155\u0154", - "\u0003\u0002\u0002\u0002\u0156\u0157\u0003\u0002\u0002\u0002\u0157\u0158", - "\u0007\u0004\u0002\u0002\u0158\u001f\u0003\u0002\u0002\u0002\u0159\u015a", - "\u0007\u001c\u0002\u0002\u015a\u015b\u0005\u00b2Z\u0002\u015b\u0166", - "\u0007\u0010\u0002\u0002\u015c\u015d\u0005@!\u0002\u015d\u0163\u0007", - "\u0004\u0002\u0002\u015e\u015f\u0005@!\u0002\u015f\u0160\u0007\u0004", - "\u0002\u0002\u0160\u0162\u0003\u0002\u0002\u0002\u0161\u015e\u0003\u0002", - "\u0002\u0002\u0162\u0165\u0003\u0002\u0002\u0002\u0163\u0161\u0003\u0002", - "\u0002\u0002\u0163\u0164\u0003\u0002\u0002\u0002\u0164\u0167\u0003\u0002", - "\u0002\u0002\u0165\u0163\u0003\u0002\u0002\u0002\u0166\u015c\u0003\u0002", - "\u0002\u0002\u0166\u0167\u0003\u0002\u0002\u0002\u0167\u0168\u0003\u0002", - "\u0002\u0002\u0168\u0169\u0007\u0012\u0002\u0002\u0169!\u0003\u0002", - "\u0002\u0002\u016a\u016b\u0007\u001d\u0002\u0002\u016b\u016d\u0005\u00b2", - "Z\u0002\u016c\u016e\u00054\u001b\u0002\u016d\u016c\u0003\u0002\u0002", - "\u0002\u016d\u016e\u0003\u0002\u0002\u0002\u016e\u0173\u0003\u0002\u0002", - "\u0002\u016f\u0172\u0007x\u0002\u0002\u0170\u0172\u0005\u00b6\\\u0002", - "\u0171\u016f\u0003\u0002\u0002\u0002\u0171\u0170\u0003\u0002\u0002\u0002", - "\u0172\u0175\u0003\u0002\u0002\u0002\u0173\u0171\u0003\u0002\u0002\u0002", - "\u0173\u0174\u0003\u0002\u0002\u0002\u0174\u0176\u0003\u0002\u0002\u0002", - "\u0175\u0173\u0003\u0002\u0002\u0002\u0176\u0177\u0005P)\u0002\u0177", - "#\u0003\u0002\u0002\u0002\u0178\u017e\u0005\u00b2Z\u0002\u0179\u017b", - "\u0007\u0018\u0002\u0002\u017a\u017c\u0005|?\u0002\u017b\u017a\u0003", - "\u0002\u0002\u0002\u017b\u017c\u0003\u0002\u0002\u0002\u017c\u017d\u0003", - "\u0002\u0002\u0002\u017d\u017f\u0007\u0019\u0002\u0002\u017e\u0179\u0003", - "\u0002\u0002\u0002\u017e\u017f\u0003\u0002\u0002\u0002\u017f%\u0003", - "\u0002\u0002\u0002\u0180\u0181\u0005(\u0015\u0002\u0181\u0182\u0005", - "4\u001b\u0002\u0182\u0184\u0005,\u0017\u0002\u0183\u0185\u0005*\u0016", - "\u0002\u0184\u0183\u0003\u0002\u0002\u0002\u0184\u0185\u0003\u0002\u0002", - "\u0002\u0185\u0188\u0003\u0002\u0002\u0002\u0186\u0189\u0007\u0004\u0002", - "\u0002\u0187\u0189\u0005P)\u0002\u0188\u0186\u0003\u0002\u0002\u0002", - "\u0188\u0187\u0003\u0002\u0002\u0002\u0189\'\u0003\u0002\u0002\u0002", - "\u018a\u018c\u0007\u001e\u0002\u0002\u018b\u018d\u0005\u00b2Z\u0002", - "\u018c\u018b\u0003\u0002\u0002\u0002\u018c\u018d\u0003\u0002\u0002\u0002", - "\u018d\u0192\u0003\u0002\u0002\u0002\u018e\u0192\u0007|\u0002\u0002", - "\u018f\u0192\u0007}\u0002\u0002\u0190\u0192\u0007~\u0002\u0002\u0191", - "\u018a\u0003\u0002\u0002\u0002\u0191\u018e\u0003\u0002\u0002\u0002\u0191", - "\u018f\u0003\u0002\u0002\u0002\u0191\u0190\u0003\u0002\u0002\u0002\u0192", - ")\u0003\u0002\u0002\u0002\u0193\u0194\u0007\u001f\u0002\u0002\u0194", - "\u0195\u00054\u001b\u0002\u0195+\u0003\u0002\u0002\u0002\u0196\u019f", - "\u0007r\u0002\u0002\u0197\u019f\u0007w\u0002\u0002\u0198\u019f\u0007", - "t\u0002\u0002\u0199\u019f\u0007v\u0002\u0002\u019a\u019f\u0007x\u0002", - "\u0002\u019b\u019f\u0005N(\u0002\u019c\u019f\u0005$\u0013\u0002\u019d", - "\u019f\u0005\u00b6\\\u0002\u019e\u0196\u0003\u0002\u0002\u0002\u019e", - "\u0197\u0003\u0002\u0002\u0002\u019e\u0198\u0003\u0002\u0002\u0002\u019e", - "\u0199\u0003\u0002\u0002\u0002\u019e\u019a\u0003\u0002\u0002\u0002\u019e", - "\u019b\u0003\u0002\u0002\u0002\u019e\u019c\u0003\u0002\u0002\u0002\u019e", - "\u019d\u0003\u0002\u0002\u0002\u019f\u01a2\u0003\u0002\u0002\u0002\u01a0", - "\u019e\u0003\u0002\u0002\u0002\u01a0\u01a1\u0003\u0002\u0002\u0002\u01a1", - "-\u0003\u0002\u0002\u0002\u01a2\u01a0\u0003\u0002\u0002\u0002\u01a3", - "\u01a4\u0007 \u0002\u0002\u01a4\u01a5\u0005\u00b2Z\u0002\u01a5\u01a7", - "\u00058\u001d\u0002\u01a6\u01a8\u0007l\u0002\u0002\u01a7\u01a6\u0003", - "\u0002\u0002\u0002\u01a7\u01a8\u0003\u0002\u0002\u0002\u01a8\u01a9\u0003", - "\u0002\u0002\u0002\u01a9\u01aa\u0007\u0004\u0002\u0002\u01aa/\u0003", - "\u0002\u0002\u0002\u01ab\u01ac\u0005\u00b2Z\u0002\u01ac1\u0003\u0002", - "\u0002\u0002\u01ad\u01ae\u0007!\u0002\u0002\u01ae\u01af\u0005\u00b2", - "Z\u0002\u01af\u01b1\u0007\u0010\u0002\u0002\u01b0\u01b2\u00050\u0019", - "\u0002\u01b1\u01b0\u0003\u0002\u0002\u0002\u01b1\u01b2\u0003\u0002\u0002", - "\u0002\u01b2\u01b7\u0003\u0002\u0002\u0002\u01b3\u01b4\u0007\u0011\u0002", - "\u0002\u01b4\u01b6\u00050\u0019\u0002\u01b5\u01b3\u0003\u0002\u0002", - "\u0002\u01b6\u01b9\u0003\u0002\u0002\u0002\u01b7\u01b5\u0003\u0002\u0002", - "\u0002\u01b7\u01b8\u0003\u0002\u0002\u0002\u01b8\u01ba\u0003\u0002\u0002", - "\u0002\u01b9\u01b7\u0003\u0002\u0002\u0002\u01ba\u01bb\u0007\u0012\u0002", - "\u0002\u01bb3\u0003\u0002\u0002\u0002\u01bc\u01c5\u0007\u0018\u0002", - "\u0002\u01bd\u01c2\u00056\u001c\u0002\u01be\u01bf\u0007\u0011\u0002", - "\u0002\u01bf\u01c1\u00056\u001c\u0002\u01c0\u01be\u0003\u0002\u0002", - "\u0002\u01c1\u01c4\u0003\u0002\u0002\u0002\u01c2\u01c0\u0003\u0002\u0002", - "\u0002\u01c2\u01c3\u0003\u0002\u0002\u0002\u01c3\u01c6\u0003\u0002\u0002", - "\u0002\u01c4\u01c2\u0003\u0002\u0002\u0002\u01c5\u01bd\u0003\u0002\u0002", - "\u0002\u01c5\u01c6\u0003\u0002\u0002\u0002\u01c6\u01c7\u0003\u0002\u0002", - "\u0002\u01c7\u01c8\u0007\u0019\u0002\u0002\u01c85\u0003\u0002\u0002", - "\u0002\u01c9\u01cb\u0005B\"\u0002\u01ca\u01cc\u0005L\'\u0002\u01cb\u01ca", - "\u0003\u0002\u0002\u0002\u01cb\u01cc\u0003\u0002\u0002\u0002\u01cc\u01ce", - "\u0003\u0002\u0002\u0002\u01cd\u01cf\u0005\u00b2Z\u0002\u01ce\u01cd", - "\u0003\u0002\u0002\u0002\u01ce\u01cf\u0003\u0002\u0002\u0002\u01cf7", - "\u0003\u0002\u0002\u0002\u01d0\u01d9\u0007\u0018\u0002\u0002\u01d1\u01d6", - "\u0005:\u001e\u0002\u01d2\u01d3\u0007\u0011\u0002\u0002\u01d3\u01d5", - "\u0005:\u001e\u0002\u01d4\u01d2\u0003\u0002\u0002\u0002\u01d5\u01d8", - "\u0003\u0002\u0002\u0002\u01d6\u01d4\u0003\u0002\u0002\u0002\u01d6\u01d7", - "\u0003\u0002\u0002\u0002\u01d7\u01da\u0003\u0002\u0002\u0002\u01d8\u01d6", - "\u0003\u0002\u0002\u0002\u01d9\u01d1\u0003\u0002\u0002\u0002\u01d9\u01da", - "\u0003\u0002\u0002\u0002\u01da\u01db\u0003\u0002\u0002\u0002\u01db\u01dc", - "\u0007\u0019\u0002\u0002\u01dc9\u0003\u0002\u0002\u0002\u01dd\u01df", - "\u0005B\"\u0002\u01de\u01e0\u0007s\u0002\u0002\u01df\u01de\u0003\u0002", - "\u0002\u0002\u01df\u01e0\u0003\u0002\u0002\u0002\u01e0\u01e2\u0003\u0002", - "\u0002\u0002\u01e1\u01e3\u0005\u00b2Z\u0002\u01e2\u01e1\u0003\u0002", - "\u0002\u0002\u01e2\u01e3\u0003\u0002\u0002\u0002\u01e3;\u0003\u0002", - "\u0002\u0002\u01e4\u01ed\u0007\u0018\u0002\u0002\u01e5\u01ea\u0005>", - " \u0002\u01e6\u01e7\u0007\u0011\u0002\u0002\u01e7\u01e9\u0005> \u0002", - "\u01e8\u01e6\u0003\u0002\u0002\u0002\u01e9\u01ec\u0003\u0002\u0002\u0002", - "\u01ea\u01e8\u0003\u0002\u0002\u0002\u01ea\u01eb\u0003\u0002\u0002\u0002", - "\u01eb\u01ee\u0003\u0002\u0002\u0002\u01ec\u01ea\u0003\u0002\u0002\u0002", - "\u01ed\u01e5\u0003\u0002\u0002\u0002\u01ed\u01ee\u0003\u0002\u0002\u0002", - "\u01ee\u01ef\u0003\u0002\u0002\u0002\u01ef\u01f0\u0007\u0019\u0002\u0002", - "\u01f0=\u0003\u0002\u0002\u0002\u01f1\u01f3\u0005B\"\u0002\u01f2\u01f4", - "\u0005L\'\u0002\u01f3\u01f2\u0003\u0002\u0002\u0002\u01f3\u01f4\u0003", - "\u0002\u0002\u0002\u01f4?\u0003\u0002\u0002\u0002\u01f5\u01f7\u0005", - "B\"\u0002\u01f6\u01f8\u0005L\'\u0002\u01f7\u01f6\u0003\u0002\u0002\u0002", - "\u01f7\u01f8\u0003\u0002\u0002\u0002\u01f8\u01f9\u0003\u0002\u0002\u0002", - "\u01f9\u01fa\u0005\u00b2Z\u0002\u01faA\u0003\u0002\u0002\u0002\u01fb", - "\u01fc\b\"\u0001\u0002\u01fc\u0203\u0005v<\u0002\u01fd\u0203\u0005D", - "#\u0002\u01fe\u0203\u0005H%\u0002\u01ff\u0203\u0005J&\u0002\u0200\u0201", - "\u0007$\u0002\u0002\u0201\u0203\u0007u\u0002\u0002\u0202\u01fb\u0003", - "\u0002\u0002\u0002\u0202\u01fd\u0003\u0002\u0002\u0002\u0202\u01fe\u0003", - "\u0002\u0002\u0002\u0202\u01ff\u0003\u0002\u0002\u0002\u0202\u0200\u0003", - "\u0002\u0002\u0002\u0203\u020c\u0003\u0002\u0002\u0002\u0204\u0205\f", - "\u0005\u0002\u0002\u0205\u0207\u0007\"\u0002\u0002\u0206\u0208\u0005", - "x=\u0002\u0207\u0206\u0003\u0002\u0002\u0002\u0207\u0208\u0003\u0002", - "\u0002\u0002\u0208\u0209\u0003\u0002\u0002\u0002\u0209\u020b\u0007#", - "\u0002\u0002\u020a\u0204\u0003\u0002\u0002\u0002\u020b\u020e\u0003\u0002", - "\u0002\u0002\u020c\u020a\u0003\u0002\u0002\u0002\u020c\u020d\u0003\u0002", - "\u0002\u0002\u020dC\u0003\u0002\u0002\u0002\u020e\u020c\u0003\u0002", - "\u0002\u0002\u020f\u0214\u0005\u00b2Z\u0002\u0210\u0211\u0007%\u0002", - "\u0002\u0211\u0213\u0005\u00b2Z\u0002\u0212\u0210\u0003\u0002\u0002", - "\u0002\u0213\u0216\u0003\u0002\u0002\u0002\u0214\u0212\u0003\u0002\u0002", - "\u0002\u0214\u0215\u0003\u0002\u0002\u0002\u0215E\u0003\u0002\u0002", - "\u0002\u0216\u0214\u0003\u0002\u0002\u0002\u0217\u021a\u0005v<\u0002", - "\u0218\u021a\u0005D#\u0002\u0219\u0217\u0003\u0002\u0002\u0002\u0219", - "\u0218\u0003\u0002\u0002\u0002\u021aG\u0003\u0002\u0002\u0002\u021b", - "\u021c\u0007&\u0002\u0002\u021c\u021d\u0007\u0018\u0002\u0002\u021d", - "\u021e\u0005F$\u0002\u021e\u021f\u0007\'\u0002\u0002\u021f\u0220\u0005", - "B\"\u0002\u0220\u0221\u0007\u0019\u0002\u0002\u0221I\u0003\u0002\u0002", - "\u0002\u0222\u0223\u0007\u001e\u0002\u0002\u0223\u0229\u0005<\u001f", - "\u0002\u0224\u0228\u0007t\u0002\u0002\u0225\u0228\u0007r\u0002\u0002", - "\u0226\u0228\u0005N(\u0002\u0227\u0224\u0003\u0002\u0002\u0002\u0227", - "\u0225\u0003\u0002\u0002\u0002\u0227\u0226\u0003\u0002\u0002\u0002\u0228", - "\u022b\u0003\u0002\u0002\u0002\u0229\u0227\u0003\u0002\u0002\u0002\u0229", - "\u022a\u0003\u0002\u0002\u0002\u022a\u022e\u0003\u0002\u0002\u0002\u022b", - "\u0229\u0003\u0002\u0002\u0002\u022c\u022d\u0007\u001f\u0002\u0002\u022d", - "\u022f\u0005<\u001f\u0002\u022e\u022c\u0003\u0002\u0002\u0002\u022e", - "\u022f\u0003\u0002\u0002\u0002\u022fK\u0003\u0002\u0002\u0002\u0230", - "\u0231\t\u0004\u0002\u0002\u0231M\u0003\u0002\u0002\u0002\u0232\u0233", - "\t\u0005\u0002\u0002\u0233O\u0003\u0002\u0002\u0002\u0234\u0238\u0007", - "\u0010\u0002\u0002\u0235\u0237\u0005R*\u0002\u0236\u0235\u0003\u0002", - "\u0002\u0002\u0237\u023a\u0003\u0002\u0002\u0002\u0238\u0236\u0003\u0002", - "\u0002\u0002\u0238\u0239\u0003\u0002\u0002\u0002\u0239\u023b\u0003\u0002", - "\u0002\u0002\u023a\u0238\u0003\u0002\u0002\u0002\u023b\u023c\u0007\u0012", - "\u0002\u0002\u023cQ\u0003\u0002\u0002\u0002\u023d\u024b\u0005V,\u0002", - "\u023e\u024b\u0005X-\u0002\u023f\u024b\u0005\\/\u0002\u0240\u024b\u0005", - "`1\u0002\u0241\u024b\u0005P)\u0002\u0242\u024b\u0005b2\u0002\u0243\u024b", - "\u0005d3\u0002\u0244\u024b\u0005f4\u0002\u0245\u024b\u0005h5\u0002\u0246", - "\u024b\u0005j6\u0002\u0247\u024b\u0005l7\u0002\u0248\u024b\u0005n8\u0002", - "\u0249\u024b\u0005^0\u0002\u024a\u023d\u0003\u0002\u0002\u0002\u024a", - "\u023e\u0003\u0002\u0002\u0002\u024a\u023f\u0003\u0002\u0002\u0002\u024a", - "\u0240\u0003\u0002\u0002\u0002\u024a\u0241\u0003\u0002\u0002\u0002\u024a", - "\u0242\u0003\u0002\u0002\u0002\u024a\u0243\u0003\u0002\u0002\u0002\u024a", - "\u0244\u0003\u0002\u0002\u0002\u024a\u0245\u0003\u0002\u0002\u0002\u024a", - "\u0246\u0003\u0002\u0002\u0002\u024a\u0247\u0003\u0002\u0002\u0002\u024a", - "\u0248\u0003\u0002\u0002\u0002\u024a\u0249\u0003\u0002\u0002\u0002\u024b", - "S\u0003\u0002\u0002\u0002\u024c\u024d\u0005x=\u0002\u024d\u024e\u0007", - "\u0004\u0002\u0002\u024eU\u0003\u0002\u0002\u0002\u024f\u0250\u0007", - "+\u0002\u0002\u0250\u0251\u0007\u0018\u0002\u0002\u0251\u0252\u0005", - "x=\u0002\u0252\u0253\u0007\u0019\u0002\u0002\u0253\u0256\u0005R*\u0002", - "\u0254\u0255\u0007,\u0002\u0002\u0255\u0257\u0005R*\u0002\u0256\u0254", - "\u0003\u0002\u0002\u0002\u0256\u0257\u0003\u0002\u0002\u0002\u0257W", - "\u0003\u0002\u0002\u0002\u0258\u0259\u0007-\u0002\u0002\u0259\u025b", - "\u0005x=\u0002\u025a\u025c\u0005*\u0016\u0002\u025b\u025a\u0003\u0002", - "\u0002\u0002\u025b\u025c\u0003\u0002\u0002\u0002\u025c\u025d\u0003\u0002", - "\u0002\u0002\u025d\u025f\u0005P)\u0002\u025e\u0260\u0005Z.\u0002\u025f", - "\u025e\u0003\u0002\u0002\u0002\u0260\u0261\u0003\u0002\u0002\u0002\u0261", - "\u025f\u0003\u0002\u0002\u0002\u0261\u0262\u0003\u0002\u0002\u0002\u0262", - "Y\u0003\u0002\u0002\u0002\u0263\u0268\u0007.\u0002\u0002\u0264\u0266", - "\u0005\u00b2Z\u0002\u0265\u0264\u0003\u0002\u0002\u0002\u0265\u0266", - "\u0003\u0002\u0002\u0002\u0266\u0267\u0003\u0002\u0002\u0002\u0267\u0269", - "\u00054\u001b\u0002\u0268\u0265\u0003\u0002\u0002\u0002\u0268\u0269", - "\u0003\u0002\u0002\u0002\u0269\u026a\u0003\u0002\u0002\u0002\u026a\u026b", - "\u0005P)\u0002\u026b[\u0003\u0002\u0002\u0002\u026c\u026d\u0007/\u0002", - "\u0002\u026d\u026e\u0007\u0018\u0002\u0002\u026e\u026f\u0005x=\u0002", - "\u026f\u0270\u0007\u0019\u0002\u0002\u0270\u0271\u0005R*\u0002\u0271", - "]\u0003\u0002\u0002\u0002\u0272\u0275\u0005p9\u0002\u0273\u0275\u0005", - "T+\u0002\u0274\u0272\u0003\u0002\u0002\u0002\u0274\u0273\u0003\u0002", - "\u0002\u0002\u0275_\u0003\u0002\u0002\u0002\u0276\u0277\u0007\u001b", - "\u0002\u0002\u0277\u027a\u0007\u0018\u0002\u0002\u0278\u027b\u0005^", - "0\u0002\u0279\u027b\u0007\u0004\u0002\u0002\u027a\u0278\u0003\u0002", - "\u0002\u0002\u027a\u0279\u0003\u0002\u0002\u0002\u027b\u027e\u0003\u0002", - "\u0002\u0002\u027c\u027f\u0005T+\u0002\u027d\u027f\u0007\u0004\u0002", - "\u0002\u027e\u027c\u0003\u0002\u0002\u0002\u027e\u027d\u0003\u0002\u0002", - "\u0002\u027f\u0281\u0003\u0002\u0002\u0002\u0280\u0282\u0005x=\u0002", - "\u0281\u0280\u0003\u0002\u0002\u0002\u0281\u0282\u0003\u0002\u0002\u0002", - "\u0282\u0283\u0003\u0002\u0002\u0002\u0283\u0284\u0007\u0019\u0002\u0002", - "\u0284\u0285\u0005R*\u0002\u0285a\u0003\u0002\u0002\u0002\u0286\u0288", - "\u00070\u0002\u0002\u0287\u0289\u0007\u0080\u0002\u0002\u0288\u0287", - "\u0003\u0002\u0002\u0002\u0288\u0289\u0003\u0002\u0002\u0002\u0289\u028a", - "\u0003\u0002\u0002\u0002\u028a\u028b\u0005\u0086D\u0002\u028bc\u0003", - "\u0002\u0002\u0002\u028c\u028d\u00071\u0002\u0002\u028d\u028e\u0005", - "R*\u0002\u028e\u028f\u0007/\u0002\u0002\u028f\u0290\u0007\u0018\u0002", - "\u0002\u0290\u0291\u0005x=\u0002\u0291\u0292\u0007\u0019\u0002\u0002", - "\u0292\u0293\u0007\u0004\u0002\u0002\u0293e\u0003\u0002\u0002\u0002", - "\u0294\u0295\u0007p\u0002\u0002\u0295\u0296\u0007\u0004\u0002\u0002", - "\u0296g\u0003\u0002\u0002\u0002\u0297\u0298\u0007m\u0002\u0002\u0298", - "\u0299\u0007\u0004\u0002\u0002\u0299i\u0003\u0002\u0002\u0002\u029a", - "\u029c\u00072\u0002\u0002\u029b\u029d\u0005x=\u0002\u029c\u029b\u0003", - "\u0002\u0002\u0002\u029c\u029d\u0003\u0002\u0002\u0002\u029d\u029e\u0003", - "\u0002\u0002\u0002\u029e\u029f\u0007\u0004\u0002\u0002\u029fk\u0003", - "\u0002\u0002\u0002\u02a0\u02a1\u00073\u0002\u0002\u02a1\u02a2\u0007", - "\u0004\u0002\u0002\u02a2m\u0003\u0002\u0002\u0002\u02a3\u02a4\u0007", - "4\u0002\u0002\u02a4\u02a5\u0005\u0084C\u0002\u02a5\u02a6\u0007\u0004", - "\u0002\u0002\u02a6o\u0003\u0002\u0002\u0002\u02a7\u02a8\u00075\u0002", - "\u0002\u02a8\u02af\u0005t;\u0002\u02a9\u02af\u0005@!\u0002\u02aa\u02ab", - "\u0007\u0018\u0002\u0002\u02ab\u02ac\u0005r:\u0002\u02ac\u02ad\u0007", - "\u0019\u0002\u0002\u02ad\u02af\u0003\u0002\u0002\u0002\u02ae\u02a7\u0003", - "\u0002\u0002\u0002\u02ae\u02a9\u0003\u0002\u0002\u0002\u02ae\u02aa\u0003", - "\u0002\u0002\u0002\u02af\u02b2\u0003\u0002\u0002\u0002\u02b0\u02b1\u0007", - "\u000b\u0002\u0002\u02b1\u02b3\u0005x=\u0002\u02b2\u02b0\u0003\u0002", - "\u0002\u0002\u02b2\u02b3\u0003\u0002\u0002\u0002\u02b3\u02b4\u0003\u0002", - "\u0002\u0002\u02b4\u02b5\u0007\u0004\u0002\u0002\u02b5q\u0003\u0002", - "\u0002\u0002\u02b6\u02b8\u0005@!\u0002\u02b7\u02b6\u0003\u0002\u0002", - "\u0002\u02b7\u02b8\u0003\u0002\u0002\u0002\u02b8\u02bf\u0003\u0002\u0002", - "\u0002\u02b9\u02bb\u0007\u0011\u0002\u0002\u02ba\u02bc\u0005@!\u0002", - "\u02bb\u02ba\u0003\u0002\u0002\u0002\u02bb\u02bc\u0003\u0002\u0002\u0002", - "\u02bc\u02be\u0003\u0002\u0002\u0002\u02bd\u02b9\u0003\u0002\u0002\u0002", - "\u02be\u02c1\u0003\u0002\u0002\u0002\u02bf\u02bd\u0003\u0002\u0002\u0002", - "\u02bf\u02c0\u0003\u0002\u0002\u0002\u02c0s\u0003\u0002\u0002\u0002", - "\u02c1\u02bf\u0003\u0002\u0002\u0002\u02c2\u02c9\u0007\u0018\u0002\u0002", - "\u02c3\u02c5\u0005\u00b2Z\u0002\u02c4\u02c3\u0003\u0002\u0002\u0002", - "\u02c4\u02c5\u0003\u0002\u0002\u0002\u02c5\u02c6\u0003\u0002\u0002\u0002", - "\u02c6\u02c8\u0007\u0011\u0002\u0002\u02c7\u02c4\u0003\u0002\u0002\u0002", - "\u02c8\u02cb\u0003\u0002\u0002\u0002\u02c9\u02c7\u0003\u0002\u0002\u0002", - "\u02c9\u02ca\u0003\u0002\u0002\u0002\u02ca\u02cd\u0003\u0002\u0002\u0002", - "\u02cb\u02c9\u0003\u0002\u0002\u0002\u02cc\u02ce\u0005\u00b2Z\u0002", - "\u02cd\u02cc\u0003\u0002\u0002\u0002\u02cd\u02ce\u0003\u0002\u0002\u0002", - "\u02ce\u02cf\u0003\u0002\u0002\u0002\u02cf\u02d0\u0007\u0019\u0002\u0002", - "\u02d0u\u0003\u0002\u0002\u0002\u02d1\u02d2\t\u0006\u0002\u0002\u02d2", - "w\u0003\u0002\u0002\u0002\u02d3\u02d4\b=\u0001\u0002\u02d4\u02d5\u0007", - ";\u0002\u0002\u02d5\u02e6\u0005B\"\u0002\u02d6\u02d7\u0007\u0018\u0002", - "\u0002\u02d7\u02d8\u0005x=\u0002\u02d8\u02d9\u0007\u0019\u0002\u0002", - "\u02d9\u02e6\u0003\u0002\u0002\u0002\u02da\u02db\t\u0007\u0002\u0002", - "\u02db\u02e6\u0005x=\u0015\u02dc\u02dd\t\b\u0002\u0002\u02dd\u02e6\u0005", - "x=\u0014\u02de\u02df\t\t\u0002\u0002\u02df\u02e6\u0005x=\u0013\u02e0", - "\u02e1\u0007A\u0002\u0002\u02e1\u02e6\u0005x=\u0012\u02e2\u02e3\u0007", - "\u0006\u0002\u0002\u02e3\u02e6\u0005x=\u0011\u02e4\u02e6\u0005z>\u0002", - "\u02e5\u02d3\u0003\u0002\u0002\u0002\u02e5\u02d6\u0003\u0002\u0002\u0002", - "\u02e5\u02da\u0003\u0002\u0002\u0002\u02e5\u02dc\u0003\u0002\u0002\u0002", - "\u02e5\u02de\u0003\u0002\u0002\u0002\u02e5\u02e0\u0003\u0002\u0002\u0002", - "\u02e5\u02e2\u0003\u0002\u0002\u0002\u02e5\u02e4\u0003\u0002\u0002\u0002", - "\u02e6\u0332\u0003\u0002\u0002\u0002\u02e7\u02e8\f\u0010\u0002\u0002", - "\u02e8\u02e9\u0007B\u0002\u0002\u02e9\u0331\u0005x=\u0011\u02ea\u02eb", - "\f\u000f\u0002\u0002\u02eb\u02ec\t\n\u0002\u0002\u02ec\u0331\u0005x", - "=\u0010\u02ed\u02ee\f\u000e\u0002\u0002\u02ee\u02ef\t\b\u0002\u0002", - "\u02ef\u0331\u0005x=\u000f\u02f0\u02f1\f\r\u0002\u0002\u02f1\u02f2\t", - "\u000b\u0002\u0002\u02f2\u0331\u0005x=\u000e\u02f3\u02f4\f\f\u0002\u0002", - "\u02f4\u02f5\u0007G\u0002\u0002\u02f5\u0331\u0005x=\r\u02f6\u02f7\f", - "\u000b\u0002\u0002\u02f7\u02f8\u0007\u0005\u0002\u0002\u02f8\u0331\u0005", - "x=\f\u02f9\u02fa\f\n\u0002\u0002\u02fa\u02fb\u0007H\u0002\u0002\u02fb", - "\u0331\u0005x=\u000b\u02fc\u02fd\f\t\u0002\u0002\u02fd\u02fe\t\f\u0002", - "\u0002\u02fe\u0331\u0005x=\n\u02ff\u0300\f\b\u0002\u0002\u0300\u0301", - "\t\r\u0002\u0002\u0301\u0331\u0005x=\t\u0302\u0303\f\u0007\u0002\u0002", - "\u0303\u0304\u0007K\u0002\u0002\u0304\u0331\u0005x=\b\u0305\u0306\f", - "\u0006\u0002\u0002\u0306\u0307\u0007L\u0002\u0002\u0307\u0331\u0005", - "x=\u0007\u0308\u0309\f\u0005\u0002\u0002\u0309\u030a\u0007M\u0002\u0002", - "\u030a\u030b\u0005x=\u0002\u030b\u030c\u0007<\u0002\u0002\u030c\u030d", - "\u0005x=\u0006\u030d\u0331\u0003\u0002\u0002\u0002\u030e\u030f\f\u0004", - "\u0002\u0002\u030f\u0310\t\u000e\u0002\u0002\u0310\u0331\u0005x=\u0005", - "\u0311\u0312\f\u001d\u0002\u0002\u0312\u0331\t\u0007\u0002\u0002\u0313", - "\u0314\f\u001b\u0002\u0002\u0314\u0316\u0007\"\u0002\u0002\u0315\u0317", - "\u0005x=\u0002\u0316\u0315\u0003\u0002\u0002\u0002\u0316\u0317\u0003", - "\u0002\u0002\u0002\u0317\u0318\u0003\u0002\u0002\u0002\u0318\u0331\u0007", - "#\u0002\u0002\u0319\u031a\f\u001a\u0002\u0002\u031a\u031c\u0007\"\u0002", - "\u0002\u031b\u031d\u0005x=\u0002\u031c\u031b\u0003\u0002\u0002\u0002", - "\u031c\u031d\u0003\u0002\u0002\u0002\u031d\u031e\u0003\u0002\u0002\u0002", - "\u031e\u0320\u0007<\u0002\u0002\u031f\u0321\u0005x=\u0002\u0320\u031f", - "\u0003\u0002\u0002\u0002\u0320\u0321\u0003\u0002\u0002\u0002\u0321\u0322", - "\u0003\u0002\u0002\u0002\u0322\u0331\u0007#\u0002\u0002\u0323\u0324", - "\f\u0019\u0002\u0002\u0324\u0325\u0007%\u0002\u0002\u0325\u0331\u0005", - "\u00b2Z\u0002\u0326\u0327\f\u0018\u0002\u0002\u0327\u0328\u0007\u0010", - "\u0002\u0002\u0328\u0329\u0005~@\u0002\u0329\u032a\u0007\u0012\u0002", - "\u0002\u032a\u0331\u0003\u0002\u0002\u0002\u032b\u032c\f\u0017\u0002", - "\u0002\u032c\u032d\u0007\u0018\u0002\u0002\u032d\u032e\u0005\u0082B", - "\u0002\u032e\u032f\u0007\u0019\u0002\u0002\u032f\u0331\u0003\u0002\u0002", - "\u0002\u0330\u02e7\u0003\u0002\u0002\u0002\u0330\u02ea\u0003\u0002\u0002", - "\u0002\u0330\u02ed\u0003\u0002\u0002\u0002\u0330\u02f0\u0003\u0002\u0002", - "\u0002\u0330\u02f3\u0003\u0002\u0002\u0002\u0330\u02f6\u0003\u0002\u0002", - "\u0002\u0330\u02f9\u0003\u0002\u0002\u0002\u0330\u02fc\u0003\u0002\u0002", - "\u0002\u0330\u02ff\u0003\u0002\u0002\u0002\u0330\u0302\u0003\u0002\u0002", - "\u0002\u0330\u0305\u0003\u0002\u0002\u0002\u0330\u0308\u0003\u0002\u0002", - "\u0002\u0330\u030e\u0003\u0002\u0002\u0002\u0330\u0311\u0003\u0002\u0002", - "\u0002\u0330\u0313\u0003\u0002\u0002\u0002\u0330\u0319\u0003\u0002\u0002", - "\u0002\u0330\u0323\u0003\u0002\u0002\u0002\u0330\u0326\u0003\u0002\u0002", - "\u0002\u0330\u032b\u0003\u0002\u0002\u0002\u0331\u0334\u0003\u0002\u0002", - "\u0002\u0332\u0330\u0003\u0002\u0002\u0002\u0332\u0333\u0003\u0002\u0002", - "\u0002\u0333y\u0003\u0002\u0002\u0002\u0334\u0332\u0003\u0002\u0002", - "\u0002\u0335\u0347\u0007f\u0002\u0002\u0336\u0347\u0005\u00b0Y\u0002", - "\u0337\u0347\u0005\u00b4[\u0002\u0338\u0347\u0005\u00b8]\u0002\u0339", - "\u033c\u0005\u00b2Z\u0002\u033a\u033b\u0007\"\u0002\u0002\u033b\u033d", - "\u0007#\u0002\u0002\u033c\u033a\u0003\u0002\u0002\u0002\u033c\u033d", - "\u0003\u0002\u0002\u0002\u033d\u0347\u0003\u0002\u0002\u0002\u033e\u0347", - "\u0007z\u0002\u0002\u033f\u0347\u0007u\u0002\u0002\u0340\u0347\u0005", - "\u00acW\u0002\u0341\u0344\u0005\u00aeX\u0002\u0342\u0343\u0007\"\u0002", - "\u0002\u0343\u0345\u0007#\u0002\u0002\u0344\u0342\u0003\u0002\u0002", - "\u0002\u0344\u0345\u0003\u0002\u0002\u0002\u0345\u0347\u0003\u0002\u0002", - "\u0002\u0346\u0335\u0003\u0002\u0002\u0002\u0346\u0336\u0003\u0002\u0002", - "\u0002\u0346\u0337\u0003\u0002\u0002\u0002\u0346\u0338\u0003\u0002\u0002", - "\u0002\u0346\u0339\u0003\u0002\u0002\u0002\u0346\u033e\u0003\u0002\u0002", - "\u0002\u0346\u033f\u0003\u0002\u0002\u0002\u0346\u0340\u0003\u0002\u0002", - "\u0002\u0346\u0341\u0003\u0002\u0002\u0002\u0347{\u0003\u0002\u0002", - "\u0002\u0348\u034d\u0005x=\u0002\u0349\u034a\u0007\u0011\u0002\u0002", - "\u034a\u034c\u0005x=\u0002\u034b\u0349\u0003\u0002\u0002\u0002\u034c", - "\u034f\u0003\u0002\u0002\u0002\u034d\u034b\u0003\u0002\u0002\u0002\u034d", - "\u034e\u0003\u0002\u0002\u0002\u034e}\u0003\u0002\u0002\u0002\u034f", - "\u034d\u0003\u0002\u0002\u0002\u0350\u0355\u0005\u0080A\u0002\u0351", - "\u0352\u0007\u0011\u0002\u0002\u0352\u0354\u0005\u0080A\u0002\u0353", - "\u0351\u0003\u0002\u0002\u0002\u0354\u0357\u0003\u0002\u0002\u0002\u0355", - "\u0353\u0003\u0002\u0002\u0002\u0355\u0356\u0003\u0002\u0002\u0002\u0356", - "\u0359\u0003\u0002\u0002\u0002\u0357\u0355\u0003\u0002\u0002\u0002\u0358", - "\u035a\u0007\u0011\u0002\u0002\u0359\u0358\u0003\u0002\u0002\u0002\u0359", - "\u035a\u0003\u0002\u0002\u0002\u035a\u007f\u0003\u0002\u0002\u0002\u035b", - "\u035c\u0005\u00b2Z\u0002\u035c\u035d\u0007<\u0002\u0002\u035d\u035e", - "\u0005x=\u0002\u035e\u0081\u0003\u0002\u0002\u0002\u035f\u0361\u0007", - "\u0010\u0002\u0002\u0360\u0362\u0005~@\u0002\u0361\u0360\u0003\u0002", - "\u0002\u0002\u0361\u0362\u0003\u0002\u0002\u0002\u0362\u0363\u0003\u0002", - "\u0002\u0002\u0363\u0368\u0007\u0012\u0002\u0002\u0364\u0366\u0005|", - "?\u0002\u0365\u0364\u0003\u0002\u0002\u0002\u0365\u0366\u0003\u0002", - "\u0002\u0002\u0366\u0368\u0003\u0002\u0002\u0002\u0367\u035f\u0003\u0002", - "\u0002\u0002\u0367\u0365\u0003\u0002\u0002\u0002\u0368\u0083\u0003\u0002", - "\u0002\u0002\u0369\u036a\u0005x=\u0002\u036a\u036b\u0007\u0018\u0002", - "\u0002\u036b\u036c\u0005\u0082B\u0002\u036c\u036d\u0007\u0019\u0002", - "\u0002\u036d\u0085\u0003\u0002\u0002\u0002\u036e\u0372\u0007\u0010\u0002", - "\u0002\u036f\u0371\u0005\u0088E\u0002\u0370\u036f\u0003\u0002\u0002", - "\u0002\u0371\u0374\u0003\u0002\u0002\u0002\u0372\u0370\u0003\u0002\u0002", - "\u0002\u0372\u0373\u0003\u0002\u0002\u0002\u0373\u0375\u0003\u0002\u0002", - "\u0002\u0374\u0372\u0003\u0002\u0002\u0002\u0375\u0376\u0007\u0012\u0002", - "\u0002\u0376\u0087\u0003\u0002\u0002\u0002\u0377\u038a\u0005\u00b2Z", - "\u0002\u0378\u038a\u0005\u0086D\u0002\u0379\u038a\u0005\u008aF\u0002", - "\u037a\u038a\u0005\u0090I\u0002\u037b\u038a\u0005\u0092J\u0002\u037c", - "\u038a\u0005\u0098M\u0002\u037d\u038a\u0005\u009aN\u0002\u037e\u038a", - "\u0005\u009cO\u0002\u037f\u038a\u0005\u00a0Q\u0002\u0380\u038a\u0005", - "\u00a4S\u0002\u0381\u038a\u0005\u00a6T\u0002\u0382\u038a\u0007m\u0002", - "\u0002\u0383\u038a\u0007p\u0002\u0002\u0384\u038a\u0007q\u0002\u0002", - "\u0385\u038a\u0005\u00aaV\u0002\u0386\u038a\u0005\u00b0Y\u0002\u0387", - "\u038a\u0005\u00b8]\u0002\u0388\u038a\u0005\u00b4[\u0002\u0389\u0377", - "\u0003\u0002\u0002\u0002\u0389\u0378\u0003\u0002\u0002\u0002\u0389\u0379", - "\u0003\u0002\u0002\u0002\u0389\u037a\u0003\u0002\u0002\u0002\u0389\u037b", - "\u0003\u0002\u0002\u0002\u0389\u037c\u0003\u0002\u0002\u0002\u0389\u037d", - "\u0003\u0002\u0002\u0002\u0389\u037e\u0003\u0002\u0002\u0002\u0389\u037f", - "\u0003\u0002\u0002\u0002\u0389\u0380\u0003\u0002\u0002\u0002\u0389\u0381", - "\u0003\u0002\u0002\u0002\u0389\u0382\u0003\u0002\u0002\u0002\u0389\u0383", - "\u0003\u0002\u0002\u0002\u0389\u0384\u0003\u0002\u0002\u0002\u0389\u0385", - "\u0003\u0002\u0002\u0002\u0389\u0386\u0003\u0002\u0002\u0002\u0389\u0387", - "\u0003\u0002\u0002\u0002\u0389\u0388\u0003\u0002\u0002\u0002\u038a\u0089", - "\u0003\u0002\u0002\u0002\u038b\u038f\u0005\u008eH\u0002\u038c\u038f", - "\u0005\u00a8U\u0002\u038d\u038f\u0005\u008cG\u0002\u038e\u038b\u0003", - "\u0002\u0002\u0002\u038e\u038c\u0003\u0002\u0002\u0002\u038e\u038d\u0003", - "\u0002\u0002\u0002\u038f\u008b\u0003\u0002\u0002\u0002\u0390\u0391\u0005", - "\u00b2Z\u0002\u0391\u0392\u0007%\u0002\u0002\u0392\u0393\u0005\u00b2", - "Z\u0002\u0393\u008d\u0003\u0002\u0002\u0002\u0394\u0399\u00072\u0002", - "\u0002\u0395\u0399\u0007$\u0002\u0002\u0396\u0399\u00078\u0002\u0002", - "\u0397\u0399\u0005\u00b2Z\u0002\u0398\u0394\u0003\u0002\u0002\u0002", - "\u0398\u0395\u0003\u0002\u0002\u0002\u0398\u0396\u0003\u0002\u0002\u0002", - "\u0398\u0397\u0003\u0002\u0002\u0002\u0399\u03a6\u0003\u0002\u0002\u0002", - "\u039a\u039c\u0007\u0018\u0002\u0002\u039b\u039d\u0005\u008aF\u0002", - "\u039c\u039b\u0003\u0002\u0002\u0002\u039c\u039d\u0003\u0002\u0002\u0002", - "\u039d\u03a2\u0003\u0002\u0002\u0002\u039e\u039f\u0007\u0011\u0002\u0002", - "\u039f\u03a1\u0005\u008aF\u0002\u03a0\u039e\u0003\u0002\u0002\u0002", - "\u03a1\u03a4\u0003\u0002\u0002\u0002\u03a2\u03a0\u0003\u0002\u0002\u0002", - "\u03a2\u03a3\u0003\u0002\u0002\u0002\u03a3\u03a5\u0003\u0002\u0002\u0002", - "\u03a4\u03a2\u0003\u0002\u0002\u0002\u03a5\u03a7\u0007\u0019\u0002\u0002", - "\u03a6\u039a\u0003\u0002\u0002\u0002\u03a6\u03a7\u0003\u0002\u0002\u0002", - "\u03a7\u008f\u0003\u0002\u0002\u0002\u03a8\u03a9\u0007X\u0002\u0002", - "\u03a9\u03ac\u0005\u0094K\u0002\u03aa\u03ab\u0007Y\u0002\u0002\u03ab", - "\u03ad\u0005\u008aF\u0002\u03ac\u03aa\u0003\u0002\u0002\u0002\u03ac", - "\u03ad\u0003\u0002\u0002\u0002\u03ad\u0091\u0003\u0002\u0002\u0002\u03ae", - "\u03af\u0005\u0094K\u0002\u03af\u03b0\u0007Y\u0002\u0002\u03b0\u03b1", - "\u0005\u008aF\u0002\u03b1\u0093\u0003\u0002\u0002\u0002\u03b2\u03b9", - "\u0005\u00b2Z\u0002\u03b3\u03b9\u0005\u008cG\u0002\u03b4\u03b5\u0007", - "\u0018\u0002\u0002\u03b5\u03b6\u0005\u0096L\u0002\u03b6\u03b7\u0007", - "\u0019\u0002\u0002\u03b7\u03b9\u0003\u0002\u0002\u0002\u03b8\u03b2\u0003", - "\u0002\u0002\u0002\u03b8\u03b3\u0003\u0002\u0002\u0002\u03b8\u03b4\u0003", - "\u0002\u0002\u0002\u03b9\u0095\u0003\u0002\u0002\u0002\u03ba\u03bf\u0005", - "\u00b2Z\u0002\u03bb\u03bc\u0007\u0011\u0002\u0002\u03bc\u03be\u0005", - "\u00b2Z\u0002\u03bd\u03bb\u0003\u0002\u0002\u0002\u03be\u03c1\u0003", - "\u0002\u0002\u0002\u03bf\u03bd\u0003\u0002\u0002\u0002\u03bf\u03c0\u0003", - "\u0002\u0002\u0002\u03c0\u0097\u0003\u0002\u0002\u0002\u03c1\u03bf\u0003", - "\u0002\u0002\u0002\u03c2\u03c3\u0007Z\u0002\u0002\u03c3\u03c4\u0005", - "\u00b2Z\u0002\u03c4\u0099\u0003\u0002\u0002\u0002\u03c5\u03c6\u0005", - "\u00b2Z\u0002\u03c6\u03c7\u0007<\u0002\u0002\u03c7\u009b\u0003\u0002", - "\u0002\u0002\u03c8\u03c9\u0007[\u0002\u0002\u03c9\u03cd\u0005\u008a", - "F\u0002\u03ca\u03cc\u0005\u009eP\u0002\u03cb\u03ca\u0003\u0002\u0002", - "\u0002\u03cc\u03cf\u0003\u0002\u0002\u0002\u03cd\u03cb\u0003\u0002\u0002", - "\u0002\u03cd\u03ce\u0003\u0002\u0002\u0002\u03ce\u009d\u0003\u0002\u0002", - "\u0002\u03cf\u03cd\u0003\u0002\u0002\u0002\u03d0\u03d1\u0007\\\u0002", - "\u0002\u03d1\u03d2\u0005\u00a8U\u0002\u03d2\u03d3\u0005\u0086D\u0002", - "\u03d3\u03d7\u0003\u0002\u0002\u0002\u03d4\u03d5\u0007]\u0002\u0002", - "\u03d5\u03d7\u0005\u0086D\u0002\u03d6\u03d0\u0003\u0002\u0002\u0002", - "\u03d6\u03d4\u0003\u0002\u0002\u0002\u03d7\u009f\u0003\u0002\u0002\u0002", - "\u03d8\u03d9\u0007\u001e\u0002\u0002\u03d9\u03da\u0005\u00b2Z\u0002", - "\u03da\u03dc\u0007\u0018\u0002\u0002\u03db\u03dd\u0005\u0096L\u0002", - "\u03dc\u03db\u0003\u0002\u0002\u0002\u03dc\u03dd\u0003\u0002\u0002\u0002", - "\u03dd\u03de\u0003\u0002\u0002\u0002\u03de\u03e0\u0007\u0019\u0002\u0002", - "\u03df\u03e1\u0005\u00a2R\u0002\u03e0\u03df\u0003\u0002\u0002\u0002", - "\u03e0\u03e1\u0003\u0002\u0002\u0002\u03e1\u03e2\u0003\u0002\u0002\u0002", - "\u03e2\u03e3\u0005\u0086D\u0002\u03e3\u00a1\u0003\u0002\u0002\u0002", - "\u03e4\u03e5\u0007^\u0002\u0002\u03e5\u03e6\u0005\u0096L\u0002\u03e6", - "\u00a3\u0003\u0002\u0002\u0002\u03e7\u03ea\u0007\u001b\u0002\u0002\u03e8", - "\u03eb\u0005\u0086D\u0002\u03e9\u03eb\u0005\u008aF\u0002\u03ea\u03e8", - "\u0003\u0002\u0002\u0002\u03ea\u03e9\u0003\u0002\u0002\u0002\u03eb\u03ec", - "\u0003\u0002\u0002\u0002\u03ec\u03ef\u0005\u008aF\u0002\u03ed\u03f0", - "\u0005\u0086D\u0002\u03ee\u03f0\u0005\u008aF\u0002\u03ef\u03ed\u0003", - "\u0002\u0002\u0002\u03ef\u03ee\u0003\u0002\u0002\u0002\u03f0\u03f1\u0003", - "\u0002\u0002\u0002\u03f1\u03f2\u0005\u0086D\u0002\u03f2\u00a5\u0003", - "\u0002\u0002\u0002\u03f3\u03f4\u0007+\u0002\u0002\u03f4\u03f5\u0005", - "\u008aF\u0002\u03f5\u03f6\u0005\u0086D\u0002\u03f6\u00a7\u0003\u0002", - "\u0002\u0002\u03f7\u03fc\u0005\u00b8]\u0002\u03f8\u03fc\u0007g\u0002", - "\u0002\u03f9\u03fc\u0007h\u0002\u0002\u03fa\u03fc\u0005\u00b4[\u0002", - "\u03fb\u03f7\u0003\u0002\u0002\u0002\u03fb\u03f8\u0003\u0002\u0002\u0002", - "\u03fb\u03f9\u0003\u0002\u0002\u0002\u03fb\u03fa\u0003\u0002\u0002\u0002", - "\u03fc\u00a9\u0003\u0002\u0002\u0002\u03fd\u03fe\u00070\u0002\u0002", - "\u03fe\u03ff\u0005\u00b2Z\u0002\u03ff\u0400\u0005\u0086D\u0002\u0400", - "\u00ab\u0003\u0002\u0002\u0002\u0401\u0403\u0007\u0018\u0002\u0002\u0402", - "\u0404\u0005x=\u0002\u0403\u0402\u0003\u0002\u0002\u0002\u0403\u0404", - "\u0003\u0002\u0002\u0002\u0404\u040b\u0003\u0002\u0002\u0002\u0405\u0407", - "\u0007\u0011\u0002\u0002\u0406\u0408\u0005x=\u0002\u0407\u0406\u0003", - "\u0002\u0002\u0002\u0407\u0408\u0003\u0002\u0002\u0002\u0408\u040a\u0003", - "\u0002\u0002\u0002\u0409\u0405\u0003\u0002\u0002\u0002\u040a\u040d\u0003", - "\u0002\u0002\u0002\u040b\u0409\u0003\u0002\u0002\u0002\u040b\u040c\u0003", - "\u0002\u0002\u0002\u040c\u040e\u0003\u0002\u0002\u0002\u040d\u040b\u0003", - "\u0002\u0002\u0002\u040e\u041c\u0007\u0019\u0002\u0002\u040f\u0418\u0007", - "\"\u0002\u0002\u0410\u0415\u0005x=\u0002\u0411\u0412\u0007\u0011\u0002", - "\u0002\u0412\u0414\u0005x=\u0002\u0413\u0411\u0003\u0002\u0002\u0002", - "\u0414\u0417\u0003\u0002\u0002\u0002\u0415\u0413\u0003\u0002\u0002\u0002", - "\u0415\u0416\u0003\u0002\u0002\u0002\u0416\u0419\u0003\u0002\u0002\u0002", - "\u0417\u0415\u0003\u0002\u0002\u0002\u0418\u0410\u0003\u0002\u0002\u0002", - "\u0418\u0419\u0003\u0002\u0002\u0002\u0419\u041a\u0003\u0002\u0002\u0002", - "\u041a\u041c\u0007#\u0002\u0002\u041b\u0401\u0003\u0002\u0002\u0002", - "\u041b\u040f\u0003\u0002\u0002\u0002\u041c\u00ad\u0003\u0002\u0002\u0002", - "\u041d\u0420\u0005v<\u0002\u041e\u0420\u0005D#\u0002\u041f\u041d\u0003", - "\u0002\u0002\u0002\u041f\u041e\u0003\u0002\u0002\u0002\u0420\u00af\u0003", - "\u0002\u0002\u0002\u0421\u0423\t\u000f\u0002\u0002\u0422\u0424\u0007", - "i\u0002\u0002\u0423\u0422\u0003\u0002\u0002\u0002\u0423\u0424\u0003", - "\u0002\u0002\u0002\u0424\u00b1\u0003\u0002\u0002\u0002\u0425\u0426\t", - "\u0010\u0002\u0002\u0426\u00b3\u0003\u0002\u0002\u0002\u0427\u0429\u0007", - "j\u0002\u0002\u0428\u0427\u0003\u0002\u0002\u0002\u0429\u042a\u0003", - "\u0002\u0002\u0002\u042a\u0428\u0003\u0002\u0002\u0002\u042a\u042b\u0003", - "\u0002\u0002\u0002\u042b\u00b5\u0003\u0002\u0002\u0002\u042c\u0438\u0007", - "`\u0002\u0002\u042d\u042e\u0007\u0018\u0002\u0002\u042e\u0433\u0005", - "D#\u0002\u042f\u0430\u0007\u0011\u0002\u0002\u0430\u0432\u0005D#\u0002", - "\u0431\u042f\u0003\u0002\u0002\u0002\u0432\u0435\u0003\u0002\u0002\u0002", - "\u0433\u0431\u0003\u0002\u0002\u0002\u0433\u0434\u0003\u0002\u0002\u0002", - "\u0434\u0436\u0003\u0002\u0002\u0002\u0435\u0433\u0003\u0002\u0002\u0002", - "\u0436\u0437\u0007\u0019\u0002\u0002\u0437\u0439\u0003\u0002\u0002\u0002", - "\u0438\u042d\u0003\u0002\u0002\u0002\u0438\u0439\u0003\u0002\u0002\u0002", - "\u0439\u00b7\u0003\u0002\u0002\u0002\u043a\u043c\u0007\u0080\u0002\u0002", - "\u043b\u043a\u0003\u0002\u0002\u0002\u043c\u043d\u0003\u0002\u0002\u0002", - "\u043d\u043b\u0003\u0002\u0002\u0002\u043d\u043e\u0003\u0002\u0002\u0002", - "\u043e\u00b9\u0003\u0002\u0002\u0002\u007f\u00c1\u00c3\u00d1\u00d5\u00da", - "\u00de\u00e1\u00e6\u00ec\u00f2\u00f6\u0102\u010a\u010d\u0117\u011a\u0120", - "\u0128\u012b\u0134\u013d\u013f\u0145\u0155\u0163\u0166\u016d\u0171\u0173", - "\u017b\u017e\u0184\u0188\u018c\u0191\u019e\u01a0\u01a7\u01b1\u01b7\u01c2", - "\u01c5\u01cb\u01ce\u01d6\u01d9\u01df\u01e2\u01ea\u01ed\u01f3\u01f7\u0202", - "\u0207\u020c\u0214\u0219\u0227\u0229\u022e\u0238\u024a\u0256\u025b\u0261", - "\u0265\u0268\u0274\u027a\u027e\u0281\u0288\u029c\u02ae\u02b2\u02b7\u02bb", - "\u02bf\u02c4\u02c9\u02cd\u02e5\u0316\u031c\u0320\u0330\u0332\u033c\u0344", - "\u0346\u034d\u0355\u0359\u0361\u0365\u0367\u0372\u0389\u038e\u0398\u039c", - "\u03a2\u03a6\u03ac\u03b8\u03bf\u03cd\u03d6\u03dc\u03e0\u03ea\u03ef\u03fb", - "\u0403\u0407\u040b\u0415\u0418\u041b\u041f\u0423\u042a\u0433\u0438\u043d"].join(""); - - -const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); - -const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); - -const sharedContextCache = new antlr4.PredictionContextCache(); +import antlr4 from 'antlr4' +import SolidityListener from './SolidityListener.js' + +const serializedATN = [ + '\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786', + '\u5964\u0003\u0084\u0440\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004', + '\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t', + '\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004', + '\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010', + '\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013', + '\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017', + '\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a', + '\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e', + '\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004"\t"\u0004#', + "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004'\t'\u0004(\t(\u0004)\t)\u0004", + '*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004', + '1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004', + '8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004', + '?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004', + 'F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004', + 'M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004', + 'T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004', + '[\t[\u0004\\\t\\\u0004]\t]\u0003\u0002\u0003\u0002\u0003\u0002\u0003', + '\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0007\u0002\u00c2\n\u0002', + '\f\u0002\u000e\u0002\u00c5\u000b\u0002\u0003\u0002\u0003\u0002\u0003', + '\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0003', + '\u0004\u0003\u0005\u0003\u0005\u0005\u0005\u00d2\n\u0005\u0003\u0006', + '\u0003\u0006\u0005\u0006\u00d6\n\u0006\u0003\u0007\u0003\u0007\u0003', + '\b\u0005\b\u00db\n\b\u0003\b\u0003\b\u0005\b\u00df\n\b\u0003\b\u0005', + '\b\u00e2\n\b\u0003\t\u0003\t\u0003\t\u0005\t\u00e7\n\t\u0003\n\u0003', + '\n\u0003\n\u0003\n\u0005\n\u00ed\n\n\u0003\n\u0003\n\u0003\n\u0003\n', + '\u0005\n\u00f3\n\n\u0003\n\u0003\n\u0005\n\u00f7\n\n\u0003\n\u0003\n', + '\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0007\n\u0101\n\n\f', + '\n\u000e\n\u0104\u000b\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n\u0005', + '\n\u010b\n\n\u0003\u000b\u0005\u000b\u010e\n\u000b\u0003\u000b\u0003', + '\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0007\u000b\u0116', + '\n\u000b\f\u000b\u000e\u000b\u0119\u000b\u000b\u0005\u000b\u011b\n\u000b', + '\u0003\u000b\u0003\u000b\u0007\u000b\u011f\n\u000b\f\u000b\u000e\u000b', + '\u0122\u000b\u000b\u0003\u000b\u0003\u000b\u0003\f\u0003\f\u0003\f\u0005', + '\f\u0129\n\f\u0003\f\u0005\f\u012c\n\f\u0003\r\u0003\r\u0003\r\u0003', + '\r\u0003\r\u0003\r\u0003\r\u0005\r\u0135\n\r\u0003\u000e\u0003\u000e', + '\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0007\u000e', + '\u013e\n\u000e\f\u000e\u000e\u000e\u0141\u000b\u000e\u0003\u000e\u0003', + '\u000e\u0003\u000e\u0005\u000e\u0146\n\u000e\u0003\u000e\u0003\u000e', + '\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f', + '\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010', + '\u0005\u0010\u0156\n\u0010\u0003\u0010\u0003\u0010\u0003\u0011\u0003', + '\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003', + '\u0011\u0007\u0011\u0162\n\u0011\f\u0011\u000e\u0011\u0165\u000b\u0011', + '\u0005\u0011\u0167\n\u0011\u0003\u0011\u0003\u0011\u0003\u0012\u0003', + '\u0012\u0003\u0012\u0005\u0012\u016e\n\u0012\u0003\u0012\u0003\u0012', + '\u0007\u0012\u0172\n\u0012\f\u0012\u000e\u0012\u0175\u000b\u0012\u0003', + '\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0005\u0013\u017c', + '\n\u0013\u0003\u0013\u0005\u0013\u017f\n\u0013\u0003\u0014\u0003\u0014', + '\u0003\u0014\u0003\u0014\u0005\u0014\u0185\n\u0014\u0003\u0014\u0003', + '\u0014\u0005\u0014\u0189\n\u0014\u0003\u0015\u0003\u0015\u0005\u0015', + '\u018d\n\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u0192', + '\n\u0015\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017', + '\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017', + '\u0007\u0017\u019f\n\u0017\f\u0017\u000e\u0017\u01a2\u000b\u0017\u0003', + '\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0005\u0018\u01a8\n\u0018', + '\u0003\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a', + '\u0003\u001a\u0003\u001a\u0005\u001a\u01b2\n\u001a\u0003\u001a\u0003', + '\u001a\u0007\u001a\u01b6\n\u001a\f\u001a\u000e\u001a\u01b9\u000b\u001a', + '\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b', + '\u0007\u001b\u01c1\n\u001b\f\u001b\u000e\u001b\u01c4\u000b\u001b\u0005', + '\u001b\u01c6\n\u001b\u0003\u001b\u0003\u001b\u0003\u001c\u0003\u001c', + '\u0005\u001c\u01cc\n\u001c\u0003\u001c\u0005\u001c\u01cf\n\u001c\u0003', + '\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0007\u001d\u01d5\n\u001d', + '\f\u001d\u000e\u001d\u01d8\u000b\u001d\u0005\u001d\u01da\n\u001d\u0003', + '\u001d\u0003\u001d\u0003\u001e\u0003\u001e\u0005\u001e\u01e0\n\u001e', + '\u0003\u001e\u0005\u001e\u01e3\n\u001e\u0003\u001f\u0003\u001f\u0003', + '\u001f\u0003\u001f\u0007\u001f\u01e9\n\u001f\f\u001f\u000e\u001f\u01ec', + '\u000b\u001f\u0005\u001f\u01ee\n\u001f\u0003\u001f\u0003\u001f\u0003', + ' \u0003 \u0005 \u01f4\n \u0003!\u0003!\u0005!\u01f8\n!\u0003!\u0003', + '!\u0003"\u0003"\u0003"\u0003"\u0003"\u0003"\u0003"\u0005"\u0203', + '\n"\u0003"\u0003"\u0003"\u0005"\u0208\n"\u0003"\u0007"\u020b', + '\n"\f"\u000e"\u020e\u000b"\u0003#\u0003#\u0003#\u0007#\u0213\n#', + '\f#\u000e#\u0216\u000b#\u0003$\u0003$\u0005$\u021a\n$\u0003%\u0003%', + '\u0003%\u0003%\u0003%\u0003%\u0003%\u0003&\u0003&\u0003&\u0003&\u0003', + '&\u0007&\u0228\n&\f&\u000e&\u022b\u000b&\u0003&\u0003&\u0005&\u022f', + "\n&\u0003'\u0003'\u0003(\u0003(\u0003)\u0003)\u0007)\u0237\n)\f)\u000e", + ')\u023a\u000b)\u0003)\u0003)\u0003*\u0003*\u0003*\u0003*\u0003*\u0003', + '*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0005*\u024b\n*\u0003', + '+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0005', + ',\u0257\n,\u0003-\u0003-\u0003-\u0005-\u025c\n-\u0003-\u0003-\u0006', + '-\u0260\n-\r-\u000e-\u0261\u0003.\u0003.\u0005.\u0266\n.\u0003.\u0005', + '.\u0269\n.\u0003.\u0003.\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003', + '0\u00030\u00050\u0275\n0\u00031\u00031\u00031\u00031\u00051\u027b\n', + '1\u00031\u00031\u00051\u027f\n1\u00031\u00051\u0282\n1\u00031\u0003', + '1\u00031\u00032\u00032\u00052\u0289\n2\u00032\u00032\u00033\u00033\u0003', + '3\u00033\u00033\u00033\u00033\u00033\u00034\u00034\u00034\u00035\u0003', + '5\u00035\u00036\u00036\u00056\u029d\n6\u00036\u00036\u00037\u00037\u0003', + '7\u00038\u00038\u00038\u00038\u00039\u00039\u00039\u00039\u00039\u0003', + '9\u00039\u00059\u02af\n9\u00039\u00039\u00059\u02b3\n9\u00039\u0003', + '9\u0003:\u0005:\u02b8\n:\u0003:\u0003:\u0005:\u02bc\n:\u0007:\u02be', + '\n:\f:\u000e:\u02c1\u000b:\u0003;\u0003;\u0005;\u02c5\n;\u0003;\u0007', + ';\u02c8\n;\f;\u000e;\u02cb\u000b;\u0003;\u0005;\u02ce\n;\u0003;\u0003', + ';\u0003<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003', + '=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003', + '=\u0005=\u02e6\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003', + '=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003', + '=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003', + '=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003', + '=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0005', + '=\u0317\n=\u0003=\u0003=\u0003=\u0003=\u0005=\u031d\n=\u0003=\u0003', + '=\u0005=\u0321\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003', + '=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0007=\u0331\n=\f=\u000e', + '=\u0334\u000b=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0005', + '>\u033d\n>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0005>\u0345\n', + '>\u0005>\u0347\n>\u0003?\u0003?\u0003?\u0007?\u034c\n?\f?\u000e?\u034f', + '\u000b?\u0003@\u0003@\u0003@\u0007@\u0354\n@\f@\u000e@\u0357\u000b@', + '\u0003@\u0005@\u035a\n@\u0003A\u0003A\u0003A\u0003A\u0003B\u0003B\u0005', + 'B\u0362\nB\u0003B\u0003B\u0005B\u0366\nB\u0005B\u0368\nB\u0003C\u0003', + 'C\u0003C\u0003C\u0003C\u0003D\u0003D\u0007D\u0371\nD\fD\u000eD\u0374', + '\u000bD\u0003D\u0003D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003', + 'E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003', + 'E\u0003E\u0005E\u038a\nE\u0003F\u0003F\u0003F\u0005F\u038f\nF\u0003', + 'G\u0003G\u0003G\u0003G\u0003H\u0003H\u0003H\u0003H\u0005H\u0399\nH\u0003', + 'H\u0003H\u0005H\u039d\nH\u0003H\u0003H\u0007H\u03a1\nH\fH\u000eH\u03a4', + '\u000bH\u0003H\u0005H\u03a7\nH\u0003I\u0003I\u0003I\u0003I\u0005I\u03ad', + '\nI\u0003J\u0003J\u0003J\u0003J\u0003K\u0003K\u0003K\u0003K\u0003K\u0003', + 'K\u0005K\u03b9\nK\u0003L\u0003L\u0003L\u0007L\u03be\nL\fL\u000eL\u03c1', + '\u000bL\u0003M\u0003M\u0003M\u0003N\u0003N\u0003N\u0003O\u0003O\u0003', + 'O\u0007O\u03cc\nO\fO\u000eO\u03cf\u000bO\u0003P\u0003P\u0003P\u0003', + 'P\u0003P\u0003P\u0005P\u03d7\nP\u0003Q\u0003Q\u0003Q\u0003Q\u0005Q\u03dd', + '\nQ\u0003Q\u0003Q\u0005Q\u03e1\nQ\u0003Q\u0003Q\u0003R\u0003R\u0003', + 'R\u0003S\u0003S\u0003S\u0005S\u03eb\nS\u0003S\u0003S\u0003S\u0005S\u03f0', + '\nS\u0003S\u0003S\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003', + 'U\u0005U\u03fc\nU\u0003V\u0003V\u0003V\u0003V\u0003W\u0003W\u0005W\u0404', + '\nW\u0003W\u0003W\u0005W\u0408\nW\u0007W\u040a\nW\fW\u000eW\u040d\u000b', + 'W\u0003W\u0003W\u0003W\u0003W\u0003W\u0007W\u0414\nW\fW\u000eW\u0417', + '\u000bW\u0005W\u0419\nW\u0003W\u0005W\u041c\nW\u0003X\u0003X\u0005X', + '\u0420\nX\u0003Y\u0003Y\u0005Y\u0424\nY\u0003Z\u0003Z\u0003[\u0006[', + '\u0429\n[\r[\u000e[\u042a\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0007', + '\\\u0432\n\\\f\\\u000e\\\u0435\u000b\\\u0003\\\u0003\\\u0005\\\u0439', + '\n\\\u0003]\u0006]\u043c\n]\r]\u000e]\u043d\u0003]\u0002\u0004Bx^\u0002', + '\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e', + ' "$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084', + '\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c', + '\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4', + '\u00b6\u00b8\u0002\u0011\u0003\u0002\u0005\u000b\u0003\u0002\u0014\u0016', + '\u0003\u0002(*\u0006\u0002nnuuyy{{\u0005\u0002$$58ae\u0003\u00029:\u0003', + '\u0002=>\u0003\u0002?@\u0004\u0002\u000e\u000eCD\u0003\u0002EF\u0003', + '\u0002\u0007\n\u0003\u0002IJ\u0004\u0002\u000b\u000bNW\u0003\u0002g', + 'h\b\u0002\u000f\u000f**__qquu~\u007f\u0002\u04bb\u0002\u00c3\u0003\u0002', + '\u0002\u0002\u0004\u00c8\u0003\u0002\u0002\u0002\u0006\u00cd\u0003\u0002', + '\u0002\u0002\b\u00d1\u0003\u0002\u0002\u0002\n\u00d3\u0003\u0002\u0002', + '\u0002\f\u00d7\u0003\u0002\u0002\u0002\u000e\u00e1\u0003\u0002\u0002', + '\u0002\u0010\u00e3\u0003\u0002\u0002\u0002\u0012\u010a\u0003\u0002\u0002', + '\u0002\u0014\u010d\u0003\u0002\u0002\u0002\u0016\u0125\u0003\u0002\u0002', + '\u0002\u0018\u0134\u0003\u0002\u0002\u0002\u001a\u0136\u0003\u0002\u0002', + '\u0002\u001c\u0149\u0003\u0002\u0002\u0002\u001e\u0150\u0003\u0002\u0002', + '\u0002 \u0159\u0003\u0002\u0002\u0002"\u016a\u0003\u0002\u0002\u0002', + '$\u0178\u0003\u0002\u0002\u0002&\u0180\u0003\u0002\u0002\u0002(\u0191', + '\u0003\u0002\u0002\u0002*\u0193\u0003\u0002\u0002\u0002,\u01a0\u0003', + '\u0002\u0002\u0002.\u01a3\u0003\u0002\u0002\u00020\u01ab\u0003\u0002', + '\u0002\u00022\u01ad\u0003\u0002\u0002\u00024\u01bc\u0003\u0002\u0002', + '\u00026\u01c9\u0003\u0002\u0002\u00028\u01d0\u0003\u0002\u0002\u0002', + ':\u01dd\u0003\u0002\u0002\u0002<\u01e4\u0003\u0002\u0002\u0002>\u01f1', + '\u0003\u0002\u0002\u0002@\u01f5\u0003\u0002\u0002\u0002B\u0202\u0003', + '\u0002\u0002\u0002D\u020f\u0003\u0002\u0002\u0002F\u0219\u0003\u0002', + '\u0002\u0002H\u021b\u0003\u0002\u0002\u0002J\u0222\u0003\u0002\u0002', + '\u0002L\u0230\u0003\u0002\u0002\u0002N\u0232\u0003\u0002\u0002\u0002', + 'P\u0234\u0003\u0002\u0002\u0002R\u024a\u0003\u0002\u0002\u0002T\u024c', + '\u0003\u0002\u0002\u0002V\u024f\u0003\u0002\u0002\u0002X\u0258\u0003', + '\u0002\u0002\u0002Z\u0263\u0003\u0002\u0002\u0002\\\u026c\u0003\u0002', + '\u0002\u0002^\u0274\u0003\u0002\u0002\u0002`\u0276\u0003\u0002\u0002', + '\u0002b\u0286\u0003\u0002\u0002\u0002d\u028c\u0003\u0002\u0002\u0002', + 'f\u0294\u0003\u0002\u0002\u0002h\u0297\u0003\u0002\u0002\u0002j\u029a', + '\u0003\u0002\u0002\u0002l\u02a0\u0003\u0002\u0002\u0002n\u02a3\u0003', + '\u0002\u0002\u0002p\u02ae\u0003\u0002\u0002\u0002r\u02b7\u0003\u0002', + '\u0002\u0002t\u02c2\u0003\u0002\u0002\u0002v\u02d1\u0003\u0002\u0002', + '\u0002x\u02e5\u0003\u0002\u0002\u0002z\u0346\u0003\u0002\u0002\u0002', + '|\u0348\u0003\u0002\u0002\u0002~\u0350\u0003\u0002\u0002\u0002\u0080', + '\u035b\u0003\u0002\u0002\u0002\u0082\u0367\u0003\u0002\u0002\u0002\u0084', + '\u0369\u0003\u0002\u0002\u0002\u0086\u036e\u0003\u0002\u0002\u0002\u0088', + '\u0389\u0003\u0002\u0002\u0002\u008a\u038e\u0003\u0002\u0002\u0002\u008c', + '\u0390\u0003\u0002\u0002\u0002\u008e\u0398\u0003\u0002\u0002\u0002\u0090', + '\u03a8\u0003\u0002\u0002\u0002\u0092\u03ae\u0003\u0002\u0002\u0002\u0094', + '\u03b8\u0003\u0002\u0002\u0002\u0096\u03ba\u0003\u0002\u0002\u0002\u0098', + '\u03c2\u0003\u0002\u0002\u0002\u009a\u03c5\u0003\u0002\u0002\u0002\u009c', + '\u03c8\u0003\u0002\u0002\u0002\u009e\u03d6\u0003\u0002\u0002\u0002\u00a0', + '\u03d8\u0003\u0002\u0002\u0002\u00a2\u03e4\u0003\u0002\u0002\u0002\u00a4', + '\u03e7\u0003\u0002\u0002\u0002\u00a6\u03f3\u0003\u0002\u0002\u0002\u00a8', + '\u03fb\u0003\u0002\u0002\u0002\u00aa\u03fd\u0003\u0002\u0002\u0002\u00ac', + '\u041b\u0003\u0002\u0002\u0002\u00ae\u041f\u0003\u0002\u0002\u0002\u00b0', + '\u0421\u0003\u0002\u0002\u0002\u00b2\u0425\u0003\u0002\u0002\u0002\u00b4', + '\u0428\u0003\u0002\u0002\u0002\u00b6\u042c\u0003\u0002\u0002\u0002\u00b8', + '\u043b\u0003\u0002\u0002\u0002\u00ba\u00c2\u0005\u0004\u0003\u0002\u00bb', + '\u00c2\u0005\u0012\n\u0002\u00bc\u00c2\u0005\u0014\u000b\u0002\u00bd', + '\u00c2\u00052\u001a\u0002\u00be\u00c2\u0005 \u0011\u0002\u00bf\u00c2', + '\u0005&\u0014\u0002\u00c0\u00c2\u0005\u001c\u000f\u0002\u00c1\u00ba', + '\u0003\u0002\u0002\u0002\u00c1\u00bb\u0003\u0002\u0002\u0002\u00c1\u00bc', + '\u0003\u0002\u0002\u0002\u00c1\u00bd\u0003\u0002\u0002\u0002\u00c1\u00be', + '\u0003\u0002\u0002\u0002\u00c1\u00bf\u0003\u0002\u0002\u0002\u00c1\u00c0', + '\u0003\u0002\u0002\u0002\u00c2\u00c5\u0003\u0002\u0002\u0002\u00c3\u00c1', + '\u0003\u0002\u0002\u0002\u00c3\u00c4\u0003\u0002\u0002\u0002\u00c4\u00c6', + '\u0003\u0002\u0002\u0002\u00c5\u00c3\u0003\u0002\u0002\u0002\u00c6\u00c7', + '\u0007\u0002\u0002\u0003\u00c7\u0003\u0003\u0002\u0002\u0002\u00c8\u00c9', + '\u0007\u0003\u0002\u0002\u00c9\u00ca\u0005\u0006\u0004\u0002\u00ca\u00cb', + '\u0005\b\u0005\u0002\u00cb\u00cc\u0007\u0004\u0002\u0002\u00cc\u0005', + '\u0003\u0002\u0002\u0002\u00cd\u00ce\u0005\u00b2Z\u0002\u00ce\u0007', + '\u0003\u0002\u0002\u0002\u00cf\u00d2\u0005\n\u0006\u0002\u00d0\u00d2', + '\u0005x=\u0002\u00d1\u00cf\u0003\u0002\u0002\u0002\u00d1\u00d0\u0003', + '\u0002\u0002\u0002\u00d2\t\u0003\u0002\u0002\u0002\u00d3\u00d5\u0005', + '\u000e\b\u0002\u00d4\u00d6\u0005\u000e\b\u0002\u00d5\u00d4\u0003\u0002', + '\u0002\u0002\u00d5\u00d6\u0003\u0002\u0002\u0002\u00d6\u000b\u0003\u0002', + '\u0002\u0002\u00d7\u00d8\t\u0002\u0002\u0002\u00d8\r\u0003\u0002\u0002', + '\u0002\u00d9\u00db\u0005\f\u0007\u0002\u00da\u00d9\u0003\u0002\u0002', + '\u0002\u00da\u00db\u0003\u0002\u0002\u0002\u00db\u00dc\u0003\u0002\u0002', + '\u0002\u00dc\u00e2\u0007\u0081\u0002\u0002\u00dd\u00df\u0005\f\u0007', + '\u0002\u00de\u00dd\u0003\u0002\u0002\u0002\u00de\u00df\u0003\u0002\u0002', + '\u0002\u00df\u00e0\u0003\u0002\u0002\u0002\u00e0\u00e2\u0007g\u0002', + '\u0002\u00e1\u00da\u0003\u0002\u0002\u0002\u00e1\u00de\u0003\u0002\u0002', + '\u0002\u00e2\u000f\u0003\u0002\u0002\u0002\u00e3\u00e6\u0005\u00b2Z', + '\u0002\u00e4\u00e5\u0007\f\u0002\u0002\u00e5\u00e7\u0005\u00b2Z\u0002', + '\u00e6\u00e4\u0003\u0002\u0002\u0002\u00e6\u00e7\u0003\u0002\u0002\u0002', + '\u00e7\u0011\u0003\u0002\u0002\u0002\u00e8\u00e9\u0007\r\u0002\u0002', + '\u00e9\u00ec\u0007\u0080\u0002\u0002\u00ea\u00eb\u0007\f\u0002\u0002', + '\u00eb\u00ed\u0005\u00b2Z\u0002\u00ec\u00ea\u0003\u0002\u0002\u0002', + '\u00ec\u00ed\u0003\u0002\u0002\u0002\u00ed\u00ee\u0003\u0002\u0002\u0002', + '\u00ee\u010b\u0007\u0004\u0002\u0002\u00ef\u00f2\u0007\r\u0002\u0002', + '\u00f0\u00f3\u0007\u000e\u0002\u0002\u00f1\u00f3\u0005\u00b2Z\u0002', + '\u00f2\u00f0\u0003\u0002\u0002\u0002\u00f2\u00f1\u0003\u0002\u0002\u0002', + '\u00f3\u00f6\u0003\u0002\u0002\u0002\u00f4\u00f5\u0007\f\u0002\u0002', + '\u00f5\u00f7\u0005\u00b2Z\u0002\u00f6\u00f4\u0003\u0002\u0002\u0002', + '\u00f6\u00f7\u0003\u0002\u0002\u0002\u00f7\u00f8\u0003\u0002\u0002\u0002', + '\u00f8\u00f9\u0007\u000f\u0002\u0002\u00f9\u00fa\u0007\u0080\u0002\u0002', + '\u00fa\u010b\u0007\u0004\u0002\u0002\u00fb\u00fc\u0007\r\u0002\u0002', + '\u00fc\u00fd\u0007\u0010\u0002\u0002\u00fd\u0102\u0005\u0010\t\u0002', + '\u00fe\u00ff\u0007\u0011\u0002\u0002\u00ff\u0101\u0005\u0010\t\u0002', + '\u0100\u00fe\u0003\u0002\u0002\u0002\u0101\u0104\u0003\u0002\u0002\u0002', + '\u0102\u0100\u0003\u0002\u0002\u0002\u0102\u0103\u0003\u0002\u0002\u0002', + '\u0103\u0105\u0003\u0002\u0002\u0002\u0104\u0102\u0003\u0002\u0002\u0002', + '\u0105\u0106\u0007\u0012\u0002\u0002\u0106\u0107\u0007\u000f\u0002\u0002', + '\u0107\u0108\u0007\u0080\u0002\u0002\u0108\u0109\u0007\u0004\u0002\u0002', + '\u0109\u010b\u0003\u0002\u0002\u0002\u010a\u00e8\u0003\u0002\u0002\u0002', + '\u010a\u00ef\u0003\u0002\u0002\u0002\u010a\u00fb\u0003\u0002\u0002\u0002', + '\u010b\u0013\u0003\u0002\u0002\u0002\u010c\u010e\u0007\u0013\u0002\u0002', + '\u010d\u010c\u0003\u0002\u0002\u0002\u010d\u010e\u0003\u0002\u0002\u0002', + '\u010e\u010f\u0003\u0002\u0002\u0002\u010f\u0110\t\u0003\u0002\u0002', + '\u0110\u011a\u0005\u00b2Z\u0002\u0111\u0112\u0007\u0017\u0002\u0002', + '\u0112\u0117\u0005\u0016\f\u0002\u0113\u0114\u0007\u0011\u0002\u0002', + '\u0114\u0116\u0005\u0016\f\u0002\u0115\u0113\u0003\u0002\u0002\u0002', + '\u0116\u0119\u0003\u0002\u0002\u0002\u0117\u0115\u0003\u0002\u0002\u0002', + '\u0117\u0118\u0003\u0002\u0002\u0002\u0118\u011b\u0003\u0002\u0002\u0002', + '\u0119\u0117\u0003\u0002\u0002\u0002\u011a\u0111\u0003\u0002\u0002\u0002', + '\u011a\u011b\u0003\u0002\u0002\u0002\u011b\u011c\u0003\u0002\u0002\u0002', + '\u011c\u0120\u0007\u0010\u0002\u0002\u011d\u011f\u0005\u0018\r\u0002', + '\u011e\u011d\u0003\u0002\u0002\u0002\u011f\u0122\u0003\u0002\u0002\u0002', + '\u0120\u011e\u0003\u0002\u0002\u0002\u0120\u0121\u0003\u0002\u0002\u0002', + '\u0121\u0123\u0003\u0002\u0002\u0002\u0122\u0120\u0003\u0002\u0002\u0002', + '\u0123\u0124\u0007\u0012\u0002\u0002\u0124\u0015\u0003\u0002\u0002\u0002', + '\u0125\u012b\u0005D#\u0002\u0126\u0128\u0007\u0018\u0002\u0002\u0127', + '\u0129\u0005|?\u0002\u0128\u0127\u0003\u0002\u0002\u0002\u0128\u0129', + '\u0003\u0002\u0002\u0002\u0129\u012a\u0003\u0002\u0002\u0002\u012a\u012c', + '\u0007\u0019\u0002\u0002\u012b\u0126\u0003\u0002\u0002\u0002\u012b\u012c', + '\u0003\u0002\u0002\u0002\u012c\u0017\u0003\u0002\u0002\u0002\u012d\u0135', + '\u0005\u001a\u000e\u0002\u012e\u0135\u0005\u001e\u0010\u0002\u012f\u0135', + '\u0005 \u0011\u0002\u0130\u0135\u0005"\u0012\u0002\u0131\u0135\u0005', + '&\u0014\u0002\u0132\u0135\u0005.\u0018\u0002\u0133\u0135\u00052\u001a', + '\u0002\u0134\u012d\u0003\u0002\u0002\u0002\u0134\u012e\u0003\u0002\u0002', + '\u0002\u0134\u012f\u0003\u0002\u0002\u0002\u0134\u0130\u0003\u0002\u0002', + '\u0002\u0134\u0131\u0003\u0002\u0002\u0002\u0134\u0132\u0003\u0002\u0002', + '\u0002\u0134\u0133\u0003\u0002\u0002\u0002\u0135\u0019\u0003\u0002\u0002', + '\u0002\u0136\u013f\u0005B"\u0002\u0137\u013e\u0007w\u0002\u0002\u0138', + '\u013e\u0007t\u0002\u0002\u0139\u013e\u0007v\u0002\u0002\u013a\u013e', + '\u0007n\u0002\u0002\u013b\u013e\u0007o\u0002\u0002\u013c\u013e\u0005', + '\u00b6\\\u0002\u013d\u0137\u0003\u0002\u0002\u0002\u013d\u0138\u0003', + '\u0002\u0002\u0002\u013d\u0139\u0003\u0002\u0002\u0002\u013d\u013a\u0003', + '\u0002\u0002\u0002\u013d\u013b\u0003\u0002\u0002\u0002\u013d\u013c\u0003', + '\u0002\u0002\u0002\u013e\u0141\u0003\u0002\u0002\u0002\u013f\u013d\u0003', + '\u0002\u0002\u0002\u013f\u0140\u0003\u0002\u0002\u0002\u0140\u0142\u0003', + '\u0002\u0002\u0002\u0141\u013f\u0003\u0002\u0002\u0002\u0142\u0145\u0005', + '\u00b2Z\u0002\u0143\u0144\u0007\u000b\u0002\u0002\u0144\u0146\u0005', + 'x=\u0002\u0145\u0143\u0003\u0002\u0002\u0002\u0145\u0146\u0003\u0002', + '\u0002\u0002\u0146\u0147\u0003\u0002\u0002\u0002\u0147\u0148\u0007\u0004', + '\u0002\u0002\u0148\u001b\u0003\u0002\u0002\u0002\u0149\u014a\u0005B', + '"\u0002\u014a\u014b\u0007n\u0002\u0002\u014b\u014c\u0005\u00b2Z\u0002', + '\u014c\u014d\u0007\u000b\u0002\u0002\u014d\u014e\u0005x=\u0002\u014e', + '\u014f\u0007\u0004\u0002\u0002\u014f\u001d\u0003\u0002\u0002\u0002\u0150', + '\u0151\u0007\u001a\u0002\u0002\u0151\u0152\u0005\u00b2Z\u0002\u0152', + '\u0155\u0007\u001b\u0002\u0002\u0153\u0156\u0007\u000e\u0002\u0002\u0154', + '\u0156\u0005B"\u0002\u0155\u0153\u0003\u0002\u0002\u0002\u0155\u0154', + '\u0003\u0002\u0002\u0002\u0156\u0157\u0003\u0002\u0002\u0002\u0157\u0158', + '\u0007\u0004\u0002\u0002\u0158\u001f\u0003\u0002\u0002\u0002\u0159\u015a', + '\u0007\u001c\u0002\u0002\u015a\u015b\u0005\u00b2Z\u0002\u015b\u0166', + '\u0007\u0010\u0002\u0002\u015c\u015d\u0005@!\u0002\u015d\u0163\u0007', + '\u0004\u0002\u0002\u015e\u015f\u0005@!\u0002\u015f\u0160\u0007\u0004', + '\u0002\u0002\u0160\u0162\u0003\u0002\u0002\u0002\u0161\u015e\u0003\u0002', + '\u0002\u0002\u0162\u0165\u0003\u0002\u0002\u0002\u0163\u0161\u0003\u0002', + '\u0002\u0002\u0163\u0164\u0003\u0002\u0002\u0002\u0164\u0167\u0003\u0002', + '\u0002\u0002\u0165\u0163\u0003\u0002\u0002\u0002\u0166\u015c\u0003\u0002', + '\u0002\u0002\u0166\u0167\u0003\u0002\u0002\u0002\u0167\u0168\u0003\u0002', + '\u0002\u0002\u0168\u0169\u0007\u0012\u0002\u0002\u0169!\u0003\u0002', + '\u0002\u0002\u016a\u016b\u0007\u001d\u0002\u0002\u016b\u016d\u0005\u00b2', + 'Z\u0002\u016c\u016e\u00054\u001b\u0002\u016d\u016c\u0003\u0002\u0002', + '\u0002\u016d\u016e\u0003\u0002\u0002\u0002\u016e\u0173\u0003\u0002\u0002', + '\u0002\u016f\u0172\u0007x\u0002\u0002\u0170\u0172\u0005\u00b6\\\u0002', + '\u0171\u016f\u0003\u0002\u0002\u0002\u0171\u0170\u0003\u0002\u0002\u0002', + '\u0172\u0175\u0003\u0002\u0002\u0002\u0173\u0171\u0003\u0002\u0002\u0002', + '\u0173\u0174\u0003\u0002\u0002\u0002\u0174\u0176\u0003\u0002\u0002\u0002', + '\u0175\u0173\u0003\u0002\u0002\u0002\u0176\u0177\u0005P)\u0002\u0177', + '#\u0003\u0002\u0002\u0002\u0178\u017e\u0005\u00b2Z\u0002\u0179\u017b', + '\u0007\u0018\u0002\u0002\u017a\u017c\u0005|?\u0002\u017b\u017a\u0003', + '\u0002\u0002\u0002\u017b\u017c\u0003\u0002\u0002\u0002\u017c\u017d\u0003', + '\u0002\u0002\u0002\u017d\u017f\u0007\u0019\u0002\u0002\u017e\u0179\u0003', + '\u0002\u0002\u0002\u017e\u017f\u0003\u0002\u0002\u0002\u017f%\u0003', + '\u0002\u0002\u0002\u0180\u0181\u0005(\u0015\u0002\u0181\u0182\u0005', + '4\u001b\u0002\u0182\u0184\u0005,\u0017\u0002\u0183\u0185\u0005*\u0016', + '\u0002\u0184\u0183\u0003\u0002\u0002\u0002\u0184\u0185\u0003\u0002\u0002', + '\u0002\u0185\u0188\u0003\u0002\u0002\u0002\u0186\u0189\u0007\u0004\u0002', + '\u0002\u0187\u0189\u0005P)\u0002\u0188\u0186\u0003\u0002\u0002\u0002', + "\u0188\u0187\u0003\u0002\u0002\u0002\u0189'\u0003\u0002\u0002\u0002", + '\u018a\u018c\u0007\u001e\u0002\u0002\u018b\u018d\u0005\u00b2Z\u0002', + '\u018c\u018b\u0003\u0002\u0002\u0002\u018c\u018d\u0003\u0002\u0002\u0002', + '\u018d\u0192\u0003\u0002\u0002\u0002\u018e\u0192\u0007|\u0002\u0002', + '\u018f\u0192\u0007}\u0002\u0002\u0190\u0192\u0007~\u0002\u0002\u0191', + '\u018a\u0003\u0002\u0002\u0002\u0191\u018e\u0003\u0002\u0002\u0002\u0191', + '\u018f\u0003\u0002\u0002\u0002\u0191\u0190\u0003\u0002\u0002\u0002\u0192', + ')\u0003\u0002\u0002\u0002\u0193\u0194\u0007\u001f\u0002\u0002\u0194', + '\u0195\u00054\u001b\u0002\u0195+\u0003\u0002\u0002\u0002\u0196\u019f', + '\u0007r\u0002\u0002\u0197\u019f\u0007w\u0002\u0002\u0198\u019f\u0007', + 't\u0002\u0002\u0199\u019f\u0007v\u0002\u0002\u019a\u019f\u0007x\u0002', + '\u0002\u019b\u019f\u0005N(\u0002\u019c\u019f\u0005$\u0013\u0002\u019d', + '\u019f\u0005\u00b6\\\u0002\u019e\u0196\u0003\u0002\u0002\u0002\u019e', + '\u0197\u0003\u0002\u0002\u0002\u019e\u0198\u0003\u0002\u0002\u0002\u019e', + '\u0199\u0003\u0002\u0002\u0002\u019e\u019a\u0003\u0002\u0002\u0002\u019e', + '\u019b\u0003\u0002\u0002\u0002\u019e\u019c\u0003\u0002\u0002\u0002\u019e', + '\u019d\u0003\u0002\u0002\u0002\u019f\u01a2\u0003\u0002\u0002\u0002\u01a0', + '\u019e\u0003\u0002\u0002\u0002\u01a0\u01a1\u0003\u0002\u0002\u0002\u01a1', + '-\u0003\u0002\u0002\u0002\u01a2\u01a0\u0003\u0002\u0002\u0002\u01a3', + '\u01a4\u0007 \u0002\u0002\u01a4\u01a5\u0005\u00b2Z\u0002\u01a5\u01a7', + '\u00058\u001d\u0002\u01a6\u01a8\u0007l\u0002\u0002\u01a7\u01a6\u0003', + '\u0002\u0002\u0002\u01a7\u01a8\u0003\u0002\u0002\u0002\u01a8\u01a9\u0003', + '\u0002\u0002\u0002\u01a9\u01aa\u0007\u0004\u0002\u0002\u01aa/\u0003', + '\u0002\u0002\u0002\u01ab\u01ac\u0005\u00b2Z\u0002\u01ac1\u0003\u0002', + '\u0002\u0002\u01ad\u01ae\u0007!\u0002\u0002\u01ae\u01af\u0005\u00b2', + 'Z\u0002\u01af\u01b1\u0007\u0010\u0002\u0002\u01b0\u01b2\u00050\u0019', + '\u0002\u01b1\u01b0\u0003\u0002\u0002\u0002\u01b1\u01b2\u0003\u0002\u0002', + '\u0002\u01b2\u01b7\u0003\u0002\u0002\u0002\u01b3\u01b4\u0007\u0011\u0002', + '\u0002\u01b4\u01b6\u00050\u0019\u0002\u01b5\u01b3\u0003\u0002\u0002', + '\u0002\u01b6\u01b9\u0003\u0002\u0002\u0002\u01b7\u01b5\u0003\u0002\u0002', + '\u0002\u01b7\u01b8\u0003\u0002\u0002\u0002\u01b8\u01ba\u0003\u0002\u0002', + '\u0002\u01b9\u01b7\u0003\u0002\u0002\u0002\u01ba\u01bb\u0007\u0012\u0002', + '\u0002\u01bb3\u0003\u0002\u0002\u0002\u01bc\u01c5\u0007\u0018\u0002', + '\u0002\u01bd\u01c2\u00056\u001c\u0002\u01be\u01bf\u0007\u0011\u0002', + '\u0002\u01bf\u01c1\u00056\u001c\u0002\u01c0\u01be\u0003\u0002\u0002', + '\u0002\u01c1\u01c4\u0003\u0002\u0002\u0002\u01c2\u01c0\u0003\u0002\u0002', + '\u0002\u01c2\u01c3\u0003\u0002\u0002\u0002\u01c3\u01c6\u0003\u0002\u0002', + '\u0002\u01c4\u01c2\u0003\u0002\u0002\u0002\u01c5\u01bd\u0003\u0002\u0002', + '\u0002\u01c5\u01c6\u0003\u0002\u0002\u0002\u01c6\u01c7\u0003\u0002\u0002', + '\u0002\u01c7\u01c8\u0007\u0019\u0002\u0002\u01c85\u0003\u0002\u0002', + '\u0002\u01c9\u01cb\u0005B"\u0002\u01ca\u01cc\u0005L\'\u0002\u01cb\u01ca', + '\u0003\u0002\u0002\u0002\u01cb\u01cc\u0003\u0002\u0002\u0002\u01cc\u01ce', + '\u0003\u0002\u0002\u0002\u01cd\u01cf\u0005\u00b2Z\u0002\u01ce\u01cd', + '\u0003\u0002\u0002\u0002\u01ce\u01cf\u0003\u0002\u0002\u0002\u01cf7', + '\u0003\u0002\u0002\u0002\u01d0\u01d9\u0007\u0018\u0002\u0002\u01d1\u01d6', + '\u0005:\u001e\u0002\u01d2\u01d3\u0007\u0011\u0002\u0002\u01d3\u01d5', + '\u0005:\u001e\u0002\u01d4\u01d2\u0003\u0002\u0002\u0002\u01d5\u01d8', + '\u0003\u0002\u0002\u0002\u01d6\u01d4\u0003\u0002\u0002\u0002\u01d6\u01d7', + '\u0003\u0002\u0002\u0002\u01d7\u01da\u0003\u0002\u0002\u0002\u01d8\u01d6', + '\u0003\u0002\u0002\u0002\u01d9\u01d1\u0003\u0002\u0002\u0002\u01d9\u01da', + '\u0003\u0002\u0002\u0002\u01da\u01db\u0003\u0002\u0002\u0002\u01db\u01dc', + '\u0007\u0019\u0002\u0002\u01dc9\u0003\u0002\u0002\u0002\u01dd\u01df', + '\u0005B"\u0002\u01de\u01e0\u0007s\u0002\u0002\u01df\u01de\u0003\u0002', + '\u0002\u0002\u01df\u01e0\u0003\u0002\u0002\u0002\u01e0\u01e2\u0003\u0002', + '\u0002\u0002\u01e1\u01e3\u0005\u00b2Z\u0002\u01e2\u01e1\u0003\u0002', + '\u0002\u0002\u01e2\u01e3\u0003\u0002\u0002\u0002\u01e3;\u0003\u0002', + '\u0002\u0002\u01e4\u01ed\u0007\u0018\u0002\u0002\u01e5\u01ea\u0005>', + ' \u0002\u01e6\u01e7\u0007\u0011\u0002\u0002\u01e7\u01e9\u0005> \u0002', + '\u01e8\u01e6\u0003\u0002\u0002\u0002\u01e9\u01ec\u0003\u0002\u0002\u0002', + '\u01ea\u01e8\u0003\u0002\u0002\u0002\u01ea\u01eb\u0003\u0002\u0002\u0002', + '\u01eb\u01ee\u0003\u0002\u0002\u0002\u01ec\u01ea\u0003\u0002\u0002\u0002', + '\u01ed\u01e5\u0003\u0002\u0002\u0002\u01ed\u01ee\u0003\u0002\u0002\u0002', + '\u01ee\u01ef\u0003\u0002\u0002\u0002\u01ef\u01f0\u0007\u0019\u0002\u0002', + '\u01f0=\u0003\u0002\u0002\u0002\u01f1\u01f3\u0005B"\u0002\u01f2\u01f4', + "\u0005L'\u0002\u01f3\u01f2\u0003\u0002\u0002\u0002\u01f3\u01f4\u0003", + '\u0002\u0002\u0002\u01f4?\u0003\u0002\u0002\u0002\u01f5\u01f7\u0005', + 'B"\u0002\u01f6\u01f8\u0005L\'\u0002\u01f7\u01f6\u0003\u0002\u0002\u0002', + '\u01f7\u01f8\u0003\u0002\u0002\u0002\u01f8\u01f9\u0003\u0002\u0002\u0002', + '\u01f9\u01fa\u0005\u00b2Z\u0002\u01faA\u0003\u0002\u0002\u0002\u01fb', + '\u01fc\b"\u0001\u0002\u01fc\u0203\u0005v<\u0002\u01fd\u0203\u0005D', + '#\u0002\u01fe\u0203\u0005H%\u0002\u01ff\u0203\u0005J&\u0002\u0200\u0201', + '\u0007$\u0002\u0002\u0201\u0203\u0007u\u0002\u0002\u0202\u01fb\u0003', + '\u0002\u0002\u0002\u0202\u01fd\u0003\u0002\u0002\u0002\u0202\u01fe\u0003', + '\u0002\u0002\u0002\u0202\u01ff\u0003\u0002\u0002\u0002\u0202\u0200\u0003', + '\u0002\u0002\u0002\u0203\u020c\u0003\u0002\u0002\u0002\u0204\u0205\f', + '\u0005\u0002\u0002\u0205\u0207\u0007"\u0002\u0002\u0206\u0208\u0005', + 'x=\u0002\u0207\u0206\u0003\u0002\u0002\u0002\u0207\u0208\u0003\u0002', + '\u0002\u0002\u0208\u0209\u0003\u0002\u0002\u0002\u0209\u020b\u0007#', + '\u0002\u0002\u020a\u0204\u0003\u0002\u0002\u0002\u020b\u020e\u0003\u0002', + '\u0002\u0002\u020c\u020a\u0003\u0002\u0002\u0002\u020c\u020d\u0003\u0002', + '\u0002\u0002\u020dC\u0003\u0002\u0002\u0002\u020e\u020c\u0003\u0002', + '\u0002\u0002\u020f\u0214\u0005\u00b2Z\u0002\u0210\u0211\u0007%\u0002', + '\u0002\u0211\u0213\u0005\u00b2Z\u0002\u0212\u0210\u0003\u0002\u0002', + '\u0002\u0213\u0216\u0003\u0002\u0002\u0002\u0214\u0212\u0003\u0002\u0002', + '\u0002\u0214\u0215\u0003\u0002\u0002\u0002\u0215E\u0003\u0002\u0002', + '\u0002\u0216\u0214\u0003\u0002\u0002\u0002\u0217\u021a\u0005v<\u0002', + '\u0218\u021a\u0005D#\u0002\u0219\u0217\u0003\u0002\u0002\u0002\u0219', + '\u0218\u0003\u0002\u0002\u0002\u021aG\u0003\u0002\u0002\u0002\u021b', + '\u021c\u0007&\u0002\u0002\u021c\u021d\u0007\u0018\u0002\u0002\u021d', + "\u021e\u0005F$\u0002\u021e\u021f\u0007'\u0002\u0002\u021f\u0220\u0005", + 'B"\u0002\u0220\u0221\u0007\u0019\u0002\u0002\u0221I\u0003\u0002\u0002', + '\u0002\u0222\u0223\u0007\u001e\u0002\u0002\u0223\u0229\u0005<\u001f', + '\u0002\u0224\u0228\u0007t\u0002\u0002\u0225\u0228\u0007r\u0002\u0002', + '\u0226\u0228\u0005N(\u0002\u0227\u0224\u0003\u0002\u0002\u0002\u0227', + '\u0225\u0003\u0002\u0002\u0002\u0227\u0226\u0003\u0002\u0002\u0002\u0228', + '\u022b\u0003\u0002\u0002\u0002\u0229\u0227\u0003\u0002\u0002\u0002\u0229', + '\u022a\u0003\u0002\u0002\u0002\u022a\u022e\u0003\u0002\u0002\u0002\u022b', + '\u0229\u0003\u0002\u0002\u0002\u022c\u022d\u0007\u001f\u0002\u0002\u022d', + '\u022f\u0005<\u001f\u0002\u022e\u022c\u0003\u0002\u0002\u0002\u022e', + '\u022f\u0003\u0002\u0002\u0002\u022fK\u0003\u0002\u0002\u0002\u0230', + '\u0231\t\u0004\u0002\u0002\u0231M\u0003\u0002\u0002\u0002\u0232\u0233', + '\t\u0005\u0002\u0002\u0233O\u0003\u0002\u0002\u0002\u0234\u0238\u0007', + '\u0010\u0002\u0002\u0235\u0237\u0005R*\u0002\u0236\u0235\u0003\u0002', + '\u0002\u0002\u0237\u023a\u0003\u0002\u0002\u0002\u0238\u0236\u0003\u0002', + '\u0002\u0002\u0238\u0239\u0003\u0002\u0002\u0002\u0239\u023b\u0003\u0002', + '\u0002\u0002\u023a\u0238\u0003\u0002\u0002\u0002\u023b\u023c\u0007\u0012', + '\u0002\u0002\u023cQ\u0003\u0002\u0002\u0002\u023d\u024b\u0005V,\u0002', + '\u023e\u024b\u0005X-\u0002\u023f\u024b\u0005\\/\u0002\u0240\u024b\u0005', + '`1\u0002\u0241\u024b\u0005P)\u0002\u0242\u024b\u0005b2\u0002\u0243\u024b', + '\u0005d3\u0002\u0244\u024b\u0005f4\u0002\u0245\u024b\u0005h5\u0002\u0246', + '\u024b\u0005j6\u0002\u0247\u024b\u0005l7\u0002\u0248\u024b\u0005n8\u0002', + '\u0249\u024b\u0005^0\u0002\u024a\u023d\u0003\u0002\u0002\u0002\u024a', + '\u023e\u0003\u0002\u0002\u0002\u024a\u023f\u0003\u0002\u0002\u0002\u024a', + '\u0240\u0003\u0002\u0002\u0002\u024a\u0241\u0003\u0002\u0002\u0002\u024a', + '\u0242\u0003\u0002\u0002\u0002\u024a\u0243\u0003\u0002\u0002\u0002\u024a', + '\u0244\u0003\u0002\u0002\u0002\u024a\u0245\u0003\u0002\u0002\u0002\u024a', + '\u0246\u0003\u0002\u0002\u0002\u024a\u0247\u0003\u0002\u0002\u0002\u024a', + '\u0248\u0003\u0002\u0002\u0002\u024a\u0249\u0003\u0002\u0002\u0002\u024b', + 'S\u0003\u0002\u0002\u0002\u024c\u024d\u0005x=\u0002\u024d\u024e\u0007', + '\u0004\u0002\u0002\u024eU\u0003\u0002\u0002\u0002\u024f\u0250\u0007', + '+\u0002\u0002\u0250\u0251\u0007\u0018\u0002\u0002\u0251\u0252\u0005', + 'x=\u0002\u0252\u0253\u0007\u0019\u0002\u0002\u0253\u0256\u0005R*\u0002', + '\u0254\u0255\u0007,\u0002\u0002\u0255\u0257\u0005R*\u0002\u0256\u0254', + '\u0003\u0002\u0002\u0002\u0256\u0257\u0003\u0002\u0002\u0002\u0257W', + '\u0003\u0002\u0002\u0002\u0258\u0259\u0007-\u0002\u0002\u0259\u025b', + '\u0005x=\u0002\u025a\u025c\u0005*\u0016\u0002\u025b\u025a\u0003\u0002', + '\u0002\u0002\u025b\u025c\u0003\u0002\u0002\u0002\u025c\u025d\u0003\u0002', + '\u0002\u0002\u025d\u025f\u0005P)\u0002\u025e\u0260\u0005Z.\u0002\u025f', + '\u025e\u0003\u0002\u0002\u0002\u0260\u0261\u0003\u0002\u0002\u0002\u0261', + '\u025f\u0003\u0002\u0002\u0002\u0261\u0262\u0003\u0002\u0002\u0002\u0262', + 'Y\u0003\u0002\u0002\u0002\u0263\u0268\u0007.\u0002\u0002\u0264\u0266', + '\u0005\u00b2Z\u0002\u0265\u0264\u0003\u0002\u0002\u0002\u0265\u0266', + '\u0003\u0002\u0002\u0002\u0266\u0267\u0003\u0002\u0002\u0002\u0267\u0269', + '\u00054\u001b\u0002\u0268\u0265\u0003\u0002\u0002\u0002\u0268\u0269', + '\u0003\u0002\u0002\u0002\u0269\u026a\u0003\u0002\u0002\u0002\u026a\u026b', + '\u0005P)\u0002\u026b[\u0003\u0002\u0002\u0002\u026c\u026d\u0007/\u0002', + '\u0002\u026d\u026e\u0007\u0018\u0002\u0002\u026e\u026f\u0005x=\u0002', + '\u026f\u0270\u0007\u0019\u0002\u0002\u0270\u0271\u0005R*\u0002\u0271', + ']\u0003\u0002\u0002\u0002\u0272\u0275\u0005p9\u0002\u0273\u0275\u0005', + 'T+\u0002\u0274\u0272\u0003\u0002\u0002\u0002\u0274\u0273\u0003\u0002', + '\u0002\u0002\u0275_\u0003\u0002\u0002\u0002\u0276\u0277\u0007\u001b', + '\u0002\u0002\u0277\u027a\u0007\u0018\u0002\u0002\u0278\u027b\u0005^', + '0\u0002\u0279\u027b\u0007\u0004\u0002\u0002\u027a\u0278\u0003\u0002', + '\u0002\u0002\u027a\u0279\u0003\u0002\u0002\u0002\u027b\u027e\u0003\u0002', + '\u0002\u0002\u027c\u027f\u0005T+\u0002\u027d\u027f\u0007\u0004\u0002', + '\u0002\u027e\u027c\u0003\u0002\u0002\u0002\u027e\u027d\u0003\u0002\u0002', + '\u0002\u027f\u0281\u0003\u0002\u0002\u0002\u0280\u0282\u0005x=\u0002', + '\u0281\u0280\u0003\u0002\u0002\u0002\u0281\u0282\u0003\u0002\u0002\u0002', + '\u0282\u0283\u0003\u0002\u0002\u0002\u0283\u0284\u0007\u0019\u0002\u0002', + '\u0284\u0285\u0005R*\u0002\u0285a\u0003\u0002\u0002\u0002\u0286\u0288', + '\u00070\u0002\u0002\u0287\u0289\u0007\u0080\u0002\u0002\u0288\u0287', + '\u0003\u0002\u0002\u0002\u0288\u0289\u0003\u0002\u0002\u0002\u0289\u028a', + '\u0003\u0002\u0002\u0002\u028a\u028b\u0005\u0086D\u0002\u028bc\u0003', + '\u0002\u0002\u0002\u028c\u028d\u00071\u0002\u0002\u028d\u028e\u0005', + 'R*\u0002\u028e\u028f\u0007/\u0002\u0002\u028f\u0290\u0007\u0018\u0002', + '\u0002\u0290\u0291\u0005x=\u0002\u0291\u0292\u0007\u0019\u0002\u0002', + '\u0292\u0293\u0007\u0004\u0002\u0002\u0293e\u0003\u0002\u0002\u0002', + '\u0294\u0295\u0007p\u0002\u0002\u0295\u0296\u0007\u0004\u0002\u0002', + '\u0296g\u0003\u0002\u0002\u0002\u0297\u0298\u0007m\u0002\u0002\u0298', + '\u0299\u0007\u0004\u0002\u0002\u0299i\u0003\u0002\u0002\u0002\u029a', + '\u029c\u00072\u0002\u0002\u029b\u029d\u0005x=\u0002\u029c\u029b\u0003', + '\u0002\u0002\u0002\u029c\u029d\u0003\u0002\u0002\u0002\u029d\u029e\u0003', + '\u0002\u0002\u0002\u029e\u029f\u0007\u0004\u0002\u0002\u029fk\u0003', + '\u0002\u0002\u0002\u02a0\u02a1\u00073\u0002\u0002\u02a1\u02a2\u0007', + '\u0004\u0002\u0002\u02a2m\u0003\u0002\u0002\u0002\u02a3\u02a4\u0007', + '4\u0002\u0002\u02a4\u02a5\u0005\u0084C\u0002\u02a5\u02a6\u0007\u0004', + '\u0002\u0002\u02a6o\u0003\u0002\u0002\u0002\u02a7\u02a8\u00075\u0002', + '\u0002\u02a8\u02af\u0005t;\u0002\u02a9\u02af\u0005@!\u0002\u02aa\u02ab', + '\u0007\u0018\u0002\u0002\u02ab\u02ac\u0005r:\u0002\u02ac\u02ad\u0007', + '\u0019\u0002\u0002\u02ad\u02af\u0003\u0002\u0002\u0002\u02ae\u02a7\u0003', + '\u0002\u0002\u0002\u02ae\u02a9\u0003\u0002\u0002\u0002\u02ae\u02aa\u0003', + '\u0002\u0002\u0002\u02af\u02b2\u0003\u0002\u0002\u0002\u02b0\u02b1\u0007', + '\u000b\u0002\u0002\u02b1\u02b3\u0005x=\u0002\u02b2\u02b0\u0003\u0002', + '\u0002\u0002\u02b2\u02b3\u0003\u0002\u0002\u0002\u02b3\u02b4\u0003\u0002', + '\u0002\u0002\u02b4\u02b5\u0007\u0004\u0002\u0002\u02b5q\u0003\u0002', + '\u0002\u0002\u02b6\u02b8\u0005@!\u0002\u02b7\u02b6\u0003\u0002\u0002', + '\u0002\u02b7\u02b8\u0003\u0002\u0002\u0002\u02b8\u02bf\u0003\u0002\u0002', + '\u0002\u02b9\u02bb\u0007\u0011\u0002\u0002\u02ba\u02bc\u0005@!\u0002', + '\u02bb\u02ba\u0003\u0002\u0002\u0002\u02bb\u02bc\u0003\u0002\u0002\u0002', + '\u02bc\u02be\u0003\u0002\u0002\u0002\u02bd\u02b9\u0003\u0002\u0002\u0002', + '\u02be\u02c1\u0003\u0002\u0002\u0002\u02bf\u02bd\u0003\u0002\u0002\u0002', + '\u02bf\u02c0\u0003\u0002\u0002\u0002\u02c0s\u0003\u0002\u0002\u0002', + '\u02c1\u02bf\u0003\u0002\u0002\u0002\u02c2\u02c9\u0007\u0018\u0002\u0002', + '\u02c3\u02c5\u0005\u00b2Z\u0002\u02c4\u02c3\u0003\u0002\u0002\u0002', + '\u02c4\u02c5\u0003\u0002\u0002\u0002\u02c5\u02c6\u0003\u0002\u0002\u0002', + '\u02c6\u02c8\u0007\u0011\u0002\u0002\u02c7\u02c4\u0003\u0002\u0002\u0002', + '\u02c8\u02cb\u0003\u0002\u0002\u0002\u02c9\u02c7\u0003\u0002\u0002\u0002', + '\u02c9\u02ca\u0003\u0002\u0002\u0002\u02ca\u02cd\u0003\u0002\u0002\u0002', + '\u02cb\u02c9\u0003\u0002\u0002\u0002\u02cc\u02ce\u0005\u00b2Z\u0002', + '\u02cd\u02cc\u0003\u0002\u0002\u0002\u02cd\u02ce\u0003\u0002\u0002\u0002', + '\u02ce\u02cf\u0003\u0002\u0002\u0002\u02cf\u02d0\u0007\u0019\u0002\u0002', + '\u02d0u\u0003\u0002\u0002\u0002\u02d1\u02d2\t\u0006\u0002\u0002\u02d2', + 'w\u0003\u0002\u0002\u0002\u02d3\u02d4\b=\u0001\u0002\u02d4\u02d5\u0007', + ';\u0002\u0002\u02d5\u02e6\u0005B"\u0002\u02d6\u02d7\u0007\u0018\u0002', + '\u0002\u02d7\u02d8\u0005x=\u0002\u02d8\u02d9\u0007\u0019\u0002\u0002', + '\u02d9\u02e6\u0003\u0002\u0002\u0002\u02da\u02db\t\u0007\u0002\u0002', + '\u02db\u02e6\u0005x=\u0015\u02dc\u02dd\t\b\u0002\u0002\u02dd\u02e6\u0005', + 'x=\u0014\u02de\u02df\t\t\u0002\u0002\u02df\u02e6\u0005x=\u0013\u02e0', + '\u02e1\u0007A\u0002\u0002\u02e1\u02e6\u0005x=\u0012\u02e2\u02e3\u0007', + '\u0006\u0002\u0002\u02e3\u02e6\u0005x=\u0011\u02e4\u02e6\u0005z>\u0002', + '\u02e5\u02d3\u0003\u0002\u0002\u0002\u02e5\u02d6\u0003\u0002\u0002\u0002', + '\u02e5\u02da\u0003\u0002\u0002\u0002\u02e5\u02dc\u0003\u0002\u0002\u0002', + '\u02e5\u02de\u0003\u0002\u0002\u0002\u02e5\u02e0\u0003\u0002\u0002\u0002', + '\u02e5\u02e2\u0003\u0002\u0002\u0002\u02e5\u02e4\u0003\u0002\u0002\u0002', + '\u02e6\u0332\u0003\u0002\u0002\u0002\u02e7\u02e8\f\u0010\u0002\u0002', + '\u02e8\u02e9\u0007B\u0002\u0002\u02e9\u0331\u0005x=\u0011\u02ea\u02eb', + '\f\u000f\u0002\u0002\u02eb\u02ec\t\n\u0002\u0002\u02ec\u0331\u0005x', + '=\u0010\u02ed\u02ee\f\u000e\u0002\u0002\u02ee\u02ef\t\b\u0002\u0002', + '\u02ef\u0331\u0005x=\u000f\u02f0\u02f1\f\r\u0002\u0002\u02f1\u02f2\t', + '\u000b\u0002\u0002\u02f2\u0331\u0005x=\u000e\u02f3\u02f4\f\f\u0002\u0002', + '\u02f4\u02f5\u0007G\u0002\u0002\u02f5\u0331\u0005x=\r\u02f6\u02f7\f', + '\u000b\u0002\u0002\u02f7\u02f8\u0007\u0005\u0002\u0002\u02f8\u0331\u0005', + 'x=\f\u02f9\u02fa\f\n\u0002\u0002\u02fa\u02fb\u0007H\u0002\u0002\u02fb', + '\u0331\u0005x=\u000b\u02fc\u02fd\f\t\u0002\u0002\u02fd\u02fe\t\f\u0002', + '\u0002\u02fe\u0331\u0005x=\n\u02ff\u0300\f\b\u0002\u0002\u0300\u0301', + '\t\r\u0002\u0002\u0301\u0331\u0005x=\t\u0302\u0303\f\u0007\u0002\u0002', + '\u0303\u0304\u0007K\u0002\u0002\u0304\u0331\u0005x=\b\u0305\u0306\f', + '\u0006\u0002\u0002\u0306\u0307\u0007L\u0002\u0002\u0307\u0331\u0005', + 'x=\u0007\u0308\u0309\f\u0005\u0002\u0002\u0309\u030a\u0007M\u0002\u0002', + '\u030a\u030b\u0005x=\u0002\u030b\u030c\u0007<\u0002\u0002\u030c\u030d', + '\u0005x=\u0006\u030d\u0331\u0003\u0002\u0002\u0002\u030e\u030f\f\u0004', + '\u0002\u0002\u030f\u0310\t\u000e\u0002\u0002\u0310\u0331\u0005x=\u0005', + '\u0311\u0312\f\u001d\u0002\u0002\u0312\u0331\t\u0007\u0002\u0002\u0313', + '\u0314\f\u001b\u0002\u0002\u0314\u0316\u0007"\u0002\u0002\u0315\u0317', + '\u0005x=\u0002\u0316\u0315\u0003\u0002\u0002\u0002\u0316\u0317\u0003', + '\u0002\u0002\u0002\u0317\u0318\u0003\u0002\u0002\u0002\u0318\u0331\u0007', + '#\u0002\u0002\u0319\u031a\f\u001a\u0002\u0002\u031a\u031c\u0007"\u0002', + '\u0002\u031b\u031d\u0005x=\u0002\u031c\u031b\u0003\u0002\u0002\u0002', + '\u031c\u031d\u0003\u0002\u0002\u0002\u031d\u031e\u0003\u0002\u0002\u0002', + '\u031e\u0320\u0007<\u0002\u0002\u031f\u0321\u0005x=\u0002\u0320\u031f', + '\u0003\u0002\u0002\u0002\u0320\u0321\u0003\u0002\u0002\u0002\u0321\u0322', + '\u0003\u0002\u0002\u0002\u0322\u0331\u0007#\u0002\u0002\u0323\u0324', + '\f\u0019\u0002\u0002\u0324\u0325\u0007%\u0002\u0002\u0325\u0331\u0005', + '\u00b2Z\u0002\u0326\u0327\f\u0018\u0002\u0002\u0327\u0328\u0007\u0010', + '\u0002\u0002\u0328\u0329\u0005~@\u0002\u0329\u032a\u0007\u0012\u0002', + '\u0002\u032a\u0331\u0003\u0002\u0002\u0002\u032b\u032c\f\u0017\u0002', + '\u0002\u032c\u032d\u0007\u0018\u0002\u0002\u032d\u032e\u0005\u0082B', + '\u0002\u032e\u032f\u0007\u0019\u0002\u0002\u032f\u0331\u0003\u0002\u0002', + '\u0002\u0330\u02e7\u0003\u0002\u0002\u0002\u0330\u02ea\u0003\u0002\u0002', + '\u0002\u0330\u02ed\u0003\u0002\u0002\u0002\u0330\u02f0\u0003\u0002\u0002', + '\u0002\u0330\u02f3\u0003\u0002\u0002\u0002\u0330\u02f6\u0003\u0002\u0002', + '\u0002\u0330\u02f9\u0003\u0002\u0002\u0002\u0330\u02fc\u0003\u0002\u0002', + '\u0002\u0330\u02ff\u0003\u0002\u0002\u0002\u0330\u0302\u0003\u0002\u0002', + '\u0002\u0330\u0305\u0003\u0002\u0002\u0002\u0330\u0308\u0003\u0002\u0002', + '\u0002\u0330\u030e\u0003\u0002\u0002\u0002\u0330\u0311\u0003\u0002\u0002', + '\u0002\u0330\u0313\u0003\u0002\u0002\u0002\u0330\u0319\u0003\u0002\u0002', + '\u0002\u0330\u0323\u0003\u0002\u0002\u0002\u0330\u0326\u0003\u0002\u0002', + '\u0002\u0330\u032b\u0003\u0002\u0002\u0002\u0331\u0334\u0003\u0002\u0002', + '\u0002\u0332\u0330\u0003\u0002\u0002\u0002\u0332\u0333\u0003\u0002\u0002', + '\u0002\u0333y\u0003\u0002\u0002\u0002\u0334\u0332\u0003\u0002\u0002', + '\u0002\u0335\u0347\u0007f\u0002\u0002\u0336\u0347\u0005\u00b0Y\u0002', + '\u0337\u0347\u0005\u00b4[\u0002\u0338\u0347\u0005\u00b8]\u0002\u0339', + '\u033c\u0005\u00b2Z\u0002\u033a\u033b\u0007"\u0002\u0002\u033b\u033d', + '\u0007#\u0002\u0002\u033c\u033a\u0003\u0002\u0002\u0002\u033c\u033d', + '\u0003\u0002\u0002\u0002\u033d\u0347\u0003\u0002\u0002\u0002\u033e\u0347', + '\u0007z\u0002\u0002\u033f\u0347\u0007u\u0002\u0002\u0340\u0347\u0005', + '\u00acW\u0002\u0341\u0344\u0005\u00aeX\u0002\u0342\u0343\u0007"\u0002', + '\u0002\u0343\u0345\u0007#\u0002\u0002\u0344\u0342\u0003\u0002\u0002', + '\u0002\u0344\u0345\u0003\u0002\u0002\u0002\u0345\u0347\u0003\u0002\u0002', + '\u0002\u0346\u0335\u0003\u0002\u0002\u0002\u0346\u0336\u0003\u0002\u0002', + '\u0002\u0346\u0337\u0003\u0002\u0002\u0002\u0346\u0338\u0003\u0002\u0002', + '\u0002\u0346\u0339\u0003\u0002\u0002\u0002\u0346\u033e\u0003\u0002\u0002', + '\u0002\u0346\u033f\u0003\u0002\u0002\u0002\u0346\u0340\u0003\u0002\u0002', + '\u0002\u0346\u0341\u0003\u0002\u0002\u0002\u0347{\u0003\u0002\u0002', + '\u0002\u0348\u034d\u0005x=\u0002\u0349\u034a\u0007\u0011\u0002\u0002', + '\u034a\u034c\u0005x=\u0002\u034b\u0349\u0003\u0002\u0002\u0002\u034c', + '\u034f\u0003\u0002\u0002\u0002\u034d\u034b\u0003\u0002\u0002\u0002\u034d', + '\u034e\u0003\u0002\u0002\u0002\u034e}\u0003\u0002\u0002\u0002\u034f', + '\u034d\u0003\u0002\u0002\u0002\u0350\u0355\u0005\u0080A\u0002\u0351', + '\u0352\u0007\u0011\u0002\u0002\u0352\u0354\u0005\u0080A\u0002\u0353', + '\u0351\u0003\u0002\u0002\u0002\u0354\u0357\u0003\u0002\u0002\u0002\u0355', + '\u0353\u0003\u0002\u0002\u0002\u0355\u0356\u0003\u0002\u0002\u0002\u0356', + '\u0359\u0003\u0002\u0002\u0002\u0357\u0355\u0003\u0002\u0002\u0002\u0358', + '\u035a\u0007\u0011\u0002\u0002\u0359\u0358\u0003\u0002\u0002\u0002\u0359', + '\u035a\u0003\u0002\u0002\u0002\u035a\u007f\u0003\u0002\u0002\u0002\u035b', + '\u035c\u0005\u00b2Z\u0002\u035c\u035d\u0007<\u0002\u0002\u035d\u035e', + '\u0005x=\u0002\u035e\u0081\u0003\u0002\u0002\u0002\u035f\u0361\u0007', + '\u0010\u0002\u0002\u0360\u0362\u0005~@\u0002\u0361\u0360\u0003\u0002', + '\u0002\u0002\u0361\u0362\u0003\u0002\u0002\u0002\u0362\u0363\u0003\u0002', + '\u0002\u0002\u0363\u0368\u0007\u0012\u0002\u0002\u0364\u0366\u0005|', + '?\u0002\u0365\u0364\u0003\u0002\u0002\u0002\u0365\u0366\u0003\u0002', + '\u0002\u0002\u0366\u0368\u0003\u0002\u0002\u0002\u0367\u035f\u0003\u0002', + '\u0002\u0002\u0367\u0365\u0003\u0002\u0002\u0002\u0368\u0083\u0003\u0002', + '\u0002\u0002\u0369\u036a\u0005x=\u0002\u036a\u036b\u0007\u0018\u0002', + '\u0002\u036b\u036c\u0005\u0082B\u0002\u036c\u036d\u0007\u0019\u0002', + '\u0002\u036d\u0085\u0003\u0002\u0002\u0002\u036e\u0372\u0007\u0010\u0002', + '\u0002\u036f\u0371\u0005\u0088E\u0002\u0370\u036f\u0003\u0002\u0002', + '\u0002\u0371\u0374\u0003\u0002\u0002\u0002\u0372\u0370\u0003\u0002\u0002', + '\u0002\u0372\u0373\u0003\u0002\u0002\u0002\u0373\u0375\u0003\u0002\u0002', + '\u0002\u0374\u0372\u0003\u0002\u0002\u0002\u0375\u0376\u0007\u0012\u0002', + '\u0002\u0376\u0087\u0003\u0002\u0002\u0002\u0377\u038a\u0005\u00b2Z', + '\u0002\u0378\u038a\u0005\u0086D\u0002\u0379\u038a\u0005\u008aF\u0002', + '\u037a\u038a\u0005\u0090I\u0002\u037b\u038a\u0005\u0092J\u0002\u037c', + '\u038a\u0005\u0098M\u0002\u037d\u038a\u0005\u009aN\u0002\u037e\u038a', + '\u0005\u009cO\u0002\u037f\u038a\u0005\u00a0Q\u0002\u0380\u038a\u0005', + '\u00a4S\u0002\u0381\u038a\u0005\u00a6T\u0002\u0382\u038a\u0007m\u0002', + '\u0002\u0383\u038a\u0007p\u0002\u0002\u0384\u038a\u0007q\u0002\u0002', + '\u0385\u038a\u0005\u00aaV\u0002\u0386\u038a\u0005\u00b0Y\u0002\u0387', + '\u038a\u0005\u00b8]\u0002\u0388\u038a\u0005\u00b4[\u0002\u0389\u0377', + '\u0003\u0002\u0002\u0002\u0389\u0378\u0003\u0002\u0002\u0002\u0389\u0379', + '\u0003\u0002\u0002\u0002\u0389\u037a\u0003\u0002\u0002\u0002\u0389\u037b', + '\u0003\u0002\u0002\u0002\u0389\u037c\u0003\u0002\u0002\u0002\u0389\u037d', + '\u0003\u0002\u0002\u0002\u0389\u037e\u0003\u0002\u0002\u0002\u0389\u037f', + '\u0003\u0002\u0002\u0002\u0389\u0380\u0003\u0002\u0002\u0002\u0389\u0381', + '\u0003\u0002\u0002\u0002\u0389\u0382\u0003\u0002\u0002\u0002\u0389\u0383', + '\u0003\u0002\u0002\u0002\u0389\u0384\u0003\u0002\u0002\u0002\u0389\u0385', + '\u0003\u0002\u0002\u0002\u0389\u0386\u0003\u0002\u0002\u0002\u0389\u0387', + '\u0003\u0002\u0002\u0002\u0389\u0388\u0003\u0002\u0002\u0002\u038a\u0089', + '\u0003\u0002\u0002\u0002\u038b\u038f\u0005\u008eH\u0002\u038c\u038f', + '\u0005\u00a8U\u0002\u038d\u038f\u0005\u008cG\u0002\u038e\u038b\u0003', + '\u0002\u0002\u0002\u038e\u038c\u0003\u0002\u0002\u0002\u038e\u038d\u0003', + '\u0002\u0002\u0002\u038f\u008b\u0003\u0002\u0002\u0002\u0390\u0391\u0005', + '\u00b2Z\u0002\u0391\u0392\u0007%\u0002\u0002\u0392\u0393\u0005\u00b2', + 'Z\u0002\u0393\u008d\u0003\u0002\u0002\u0002\u0394\u0399\u00072\u0002', + '\u0002\u0395\u0399\u0007$\u0002\u0002\u0396\u0399\u00078\u0002\u0002', + '\u0397\u0399\u0005\u00b2Z\u0002\u0398\u0394\u0003\u0002\u0002\u0002', + '\u0398\u0395\u0003\u0002\u0002\u0002\u0398\u0396\u0003\u0002\u0002\u0002', + '\u0398\u0397\u0003\u0002\u0002\u0002\u0399\u03a6\u0003\u0002\u0002\u0002', + '\u039a\u039c\u0007\u0018\u0002\u0002\u039b\u039d\u0005\u008aF\u0002', + '\u039c\u039b\u0003\u0002\u0002\u0002\u039c\u039d\u0003\u0002\u0002\u0002', + '\u039d\u03a2\u0003\u0002\u0002\u0002\u039e\u039f\u0007\u0011\u0002\u0002', + '\u039f\u03a1\u0005\u008aF\u0002\u03a0\u039e\u0003\u0002\u0002\u0002', + '\u03a1\u03a4\u0003\u0002\u0002\u0002\u03a2\u03a0\u0003\u0002\u0002\u0002', + '\u03a2\u03a3\u0003\u0002\u0002\u0002\u03a3\u03a5\u0003\u0002\u0002\u0002', + '\u03a4\u03a2\u0003\u0002\u0002\u0002\u03a5\u03a7\u0007\u0019\u0002\u0002', + '\u03a6\u039a\u0003\u0002\u0002\u0002\u03a6\u03a7\u0003\u0002\u0002\u0002', + '\u03a7\u008f\u0003\u0002\u0002\u0002\u03a8\u03a9\u0007X\u0002\u0002', + '\u03a9\u03ac\u0005\u0094K\u0002\u03aa\u03ab\u0007Y\u0002\u0002\u03ab', + '\u03ad\u0005\u008aF\u0002\u03ac\u03aa\u0003\u0002\u0002\u0002\u03ac', + '\u03ad\u0003\u0002\u0002\u0002\u03ad\u0091\u0003\u0002\u0002\u0002\u03ae', + '\u03af\u0005\u0094K\u0002\u03af\u03b0\u0007Y\u0002\u0002\u03b0\u03b1', + '\u0005\u008aF\u0002\u03b1\u0093\u0003\u0002\u0002\u0002\u03b2\u03b9', + '\u0005\u00b2Z\u0002\u03b3\u03b9\u0005\u008cG\u0002\u03b4\u03b5\u0007', + '\u0018\u0002\u0002\u03b5\u03b6\u0005\u0096L\u0002\u03b6\u03b7\u0007', + '\u0019\u0002\u0002\u03b7\u03b9\u0003\u0002\u0002\u0002\u03b8\u03b2\u0003', + '\u0002\u0002\u0002\u03b8\u03b3\u0003\u0002\u0002\u0002\u03b8\u03b4\u0003', + '\u0002\u0002\u0002\u03b9\u0095\u0003\u0002\u0002\u0002\u03ba\u03bf\u0005', + '\u00b2Z\u0002\u03bb\u03bc\u0007\u0011\u0002\u0002\u03bc\u03be\u0005', + '\u00b2Z\u0002\u03bd\u03bb\u0003\u0002\u0002\u0002\u03be\u03c1\u0003', + '\u0002\u0002\u0002\u03bf\u03bd\u0003\u0002\u0002\u0002\u03bf\u03c0\u0003', + '\u0002\u0002\u0002\u03c0\u0097\u0003\u0002\u0002\u0002\u03c1\u03bf\u0003', + '\u0002\u0002\u0002\u03c2\u03c3\u0007Z\u0002\u0002\u03c3\u03c4\u0005', + '\u00b2Z\u0002\u03c4\u0099\u0003\u0002\u0002\u0002\u03c5\u03c6\u0005', + '\u00b2Z\u0002\u03c6\u03c7\u0007<\u0002\u0002\u03c7\u009b\u0003\u0002', + '\u0002\u0002\u03c8\u03c9\u0007[\u0002\u0002\u03c9\u03cd\u0005\u008a', + 'F\u0002\u03ca\u03cc\u0005\u009eP\u0002\u03cb\u03ca\u0003\u0002\u0002', + '\u0002\u03cc\u03cf\u0003\u0002\u0002\u0002\u03cd\u03cb\u0003\u0002\u0002', + '\u0002\u03cd\u03ce\u0003\u0002\u0002\u0002\u03ce\u009d\u0003\u0002\u0002', + '\u0002\u03cf\u03cd\u0003\u0002\u0002\u0002\u03d0\u03d1\u0007\\\u0002', + '\u0002\u03d1\u03d2\u0005\u00a8U\u0002\u03d2\u03d3\u0005\u0086D\u0002', + '\u03d3\u03d7\u0003\u0002\u0002\u0002\u03d4\u03d5\u0007]\u0002\u0002', + '\u03d5\u03d7\u0005\u0086D\u0002\u03d6\u03d0\u0003\u0002\u0002\u0002', + '\u03d6\u03d4\u0003\u0002\u0002\u0002\u03d7\u009f\u0003\u0002\u0002\u0002', + '\u03d8\u03d9\u0007\u001e\u0002\u0002\u03d9\u03da\u0005\u00b2Z\u0002', + '\u03da\u03dc\u0007\u0018\u0002\u0002\u03db\u03dd\u0005\u0096L\u0002', + '\u03dc\u03db\u0003\u0002\u0002\u0002\u03dc\u03dd\u0003\u0002\u0002\u0002', + '\u03dd\u03de\u0003\u0002\u0002\u0002\u03de\u03e0\u0007\u0019\u0002\u0002', + '\u03df\u03e1\u0005\u00a2R\u0002\u03e0\u03df\u0003\u0002\u0002\u0002', + '\u03e0\u03e1\u0003\u0002\u0002\u0002\u03e1\u03e2\u0003\u0002\u0002\u0002', + '\u03e2\u03e3\u0005\u0086D\u0002\u03e3\u00a1\u0003\u0002\u0002\u0002', + '\u03e4\u03e5\u0007^\u0002\u0002\u03e5\u03e6\u0005\u0096L\u0002\u03e6', + '\u00a3\u0003\u0002\u0002\u0002\u03e7\u03ea\u0007\u001b\u0002\u0002\u03e8', + '\u03eb\u0005\u0086D\u0002\u03e9\u03eb\u0005\u008aF\u0002\u03ea\u03e8', + '\u0003\u0002\u0002\u0002\u03ea\u03e9\u0003\u0002\u0002\u0002\u03eb\u03ec', + '\u0003\u0002\u0002\u0002\u03ec\u03ef\u0005\u008aF\u0002\u03ed\u03f0', + '\u0005\u0086D\u0002\u03ee\u03f0\u0005\u008aF\u0002\u03ef\u03ed\u0003', + '\u0002\u0002\u0002\u03ef\u03ee\u0003\u0002\u0002\u0002\u03f0\u03f1\u0003', + '\u0002\u0002\u0002\u03f1\u03f2\u0005\u0086D\u0002\u03f2\u00a5\u0003', + '\u0002\u0002\u0002\u03f3\u03f4\u0007+\u0002\u0002\u03f4\u03f5\u0005', + '\u008aF\u0002\u03f5\u03f6\u0005\u0086D\u0002\u03f6\u00a7\u0003\u0002', + '\u0002\u0002\u03f7\u03fc\u0005\u00b8]\u0002\u03f8\u03fc\u0007g\u0002', + '\u0002\u03f9\u03fc\u0007h\u0002\u0002\u03fa\u03fc\u0005\u00b4[\u0002', + '\u03fb\u03f7\u0003\u0002\u0002\u0002\u03fb\u03f8\u0003\u0002\u0002\u0002', + '\u03fb\u03f9\u0003\u0002\u0002\u0002\u03fb\u03fa\u0003\u0002\u0002\u0002', + '\u03fc\u00a9\u0003\u0002\u0002\u0002\u03fd\u03fe\u00070\u0002\u0002', + '\u03fe\u03ff\u0005\u00b2Z\u0002\u03ff\u0400\u0005\u0086D\u0002\u0400', + '\u00ab\u0003\u0002\u0002\u0002\u0401\u0403\u0007\u0018\u0002\u0002\u0402', + '\u0404\u0005x=\u0002\u0403\u0402\u0003\u0002\u0002\u0002\u0403\u0404', + '\u0003\u0002\u0002\u0002\u0404\u040b\u0003\u0002\u0002\u0002\u0405\u0407', + '\u0007\u0011\u0002\u0002\u0406\u0408\u0005x=\u0002\u0407\u0406\u0003', + '\u0002\u0002\u0002\u0407\u0408\u0003\u0002\u0002\u0002\u0408\u040a\u0003', + '\u0002\u0002\u0002\u0409\u0405\u0003\u0002\u0002\u0002\u040a\u040d\u0003', + '\u0002\u0002\u0002\u040b\u0409\u0003\u0002\u0002\u0002\u040b\u040c\u0003', + '\u0002\u0002\u0002\u040c\u040e\u0003\u0002\u0002\u0002\u040d\u040b\u0003', + '\u0002\u0002\u0002\u040e\u041c\u0007\u0019\u0002\u0002\u040f\u0418\u0007', + '"\u0002\u0002\u0410\u0415\u0005x=\u0002\u0411\u0412\u0007\u0011\u0002', + '\u0002\u0412\u0414\u0005x=\u0002\u0413\u0411\u0003\u0002\u0002\u0002', + '\u0414\u0417\u0003\u0002\u0002\u0002\u0415\u0413\u0003\u0002\u0002\u0002', + '\u0415\u0416\u0003\u0002\u0002\u0002\u0416\u0419\u0003\u0002\u0002\u0002', + '\u0417\u0415\u0003\u0002\u0002\u0002\u0418\u0410\u0003\u0002\u0002\u0002', + '\u0418\u0419\u0003\u0002\u0002\u0002\u0419\u041a\u0003\u0002\u0002\u0002', + '\u041a\u041c\u0007#\u0002\u0002\u041b\u0401\u0003\u0002\u0002\u0002', + '\u041b\u040f\u0003\u0002\u0002\u0002\u041c\u00ad\u0003\u0002\u0002\u0002', + '\u041d\u0420\u0005v<\u0002\u041e\u0420\u0005D#\u0002\u041f\u041d\u0003', + '\u0002\u0002\u0002\u041f\u041e\u0003\u0002\u0002\u0002\u0420\u00af\u0003', + '\u0002\u0002\u0002\u0421\u0423\t\u000f\u0002\u0002\u0422\u0424\u0007', + 'i\u0002\u0002\u0423\u0422\u0003\u0002\u0002\u0002\u0423\u0424\u0003', + '\u0002\u0002\u0002\u0424\u00b1\u0003\u0002\u0002\u0002\u0425\u0426\t', + '\u0010\u0002\u0002\u0426\u00b3\u0003\u0002\u0002\u0002\u0427\u0429\u0007', + 'j\u0002\u0002\u0428\u0427\u0003\u0002\u0002\u0002\u0429\u042a\u0003', + '\u0002\u0002\u0002\u042a\u0428\u0003\u0002\u0002\u0002\u042a\u042b\u0003', + '\u0002\u0002\u0002\u042b\u00b5\u0003\u0002\u0002\u0002\u042c\u0438\u0007', + '`\u0002\u0002\u042d\u042e\u0007\u0018\u0002\u0002\u042e\u0433\u0005', + 'D#\u0002\u042f\u0430\u0007\u0011\u0002\u0002\u0430\u0432\u0005D#\u0002', + '\u0431\u042f\u0003\u0002\u0002\u0002\u0432\u0435\u0003\u0002\u0002\u0002', + '\u0433\u0431\u0003\u0002\u0002\u0002\u0433\u0434\u0003\u0002\u0002\u0002', + '\u0434\u0436\u0003\u0002\u0002\u0002\u0435\u0433\u0003\u0002\u0002\u0002', + '\u0436\u0437\u0007\u0019\u0002\u0002\u0437\u0439\u0003\u0002\u0002\u0002', + '\u0438\u042d\u0003\u0002\u0002\u0002\u0438\u0439\u0003\u0002\u0002\u0002', + '\u0439\u00b7\u0003\u0002\u0002\u0002\u043a\u043c\u0007\u0080\u0002\u0002', + '\u043b\u043a\u0003\u0002\u0002\u0002\u043c\u043d\u0003\u0002\u0002\u0002', + '\u043d\u043b\u0003\u0002\u0002\u0002\u043d\u043e\u0003\u0002\u0002\u0002', + '\u043e\u00b9\u0003\u0002\u0002\u0002\u007f\u00c1\u00c3\u00d1\u00d5\u00da', + '\u00de\u00e1\u00e6\u00ec\u00f2\u00f6\u0102\u010a\u010d\u0117\u011a\u0120', + '\u0128\u012b\u0134\u013d\u013f\u0145\u0155\u0163\u0166\u016d\u0171\u0173', + '\u017b\u017e\u0184\u0188\u018c\u0191\u019e\u01a0\u01a7\u01b1\u01b7\u01c2', + '\u01c5\u01cb\u01ce\u01d6\u01d9\u01df\u01e2\u01ea\u01ed\u01f3\u01f7\u0202', + '\u0207\u020c\u0214\u0219\u0227\u0229\u022e\u0238\u024a\u0256\u025b\u0261', + '\u0265\u0268\u0274\u027a\u027e\u0281\u0288\u029c\u02ae\u02b2\u02b7\u02bb', + '\u02bf\u02c4\u02c9\u02cd\u02e5\u0316\u031c\u0320\u0330\u0332\u033c\u0344', + '\u0346\u034d\u0355\u0359\u0361\u0365\u0367\u0372\u0389\u038e\u0398\u039c', + '\u03a2\u03a6\u03ac\u03b8\u03bf\u03cd\u03d6\u03dc\u03e0\u03ea\u03ef\u03fb', + '\u0403\u0407\u040b\u0415\u0418\u041b\u041f\u0423\u042a\u0433\u0438\u043d' +].join('') + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN) + +const decisionsToDFA = atn.decisionToState.map( + (ds, index) => new antlr4.dfa.DFA(ds, index) +) + +const sharedContextCache = new antlr4.PredictionContextCache() export default class SolidityParser extends antlr4.Parser { - - static grammarFileName = "Solidity.g4"; - static literalNames = [ null, "'pragma'", "';'", "'^'", "'~'", "'>='", - "'>'", "'<'", "'<='", "'='", "'as'", "'import'", - "'*'", "'from'", "'{'", "','", "'}'", "'abstract'", - "'contract'", "'interface'", "'library'", "'is'", - "'('", "')'", "'using'", "'for'", "'struct'", - "'modifier'", "'function'", "'returns'", "'event'", - "'enum'", "'['", "']'", "'address'", "'.'", - "'mapping'", "'=>'", "'memory'", "'storage'", - "'calldata'", "'if'", "'else'", "'try'", "'catch'", - "'while'", "'assembly'", "'do'", "'return'", - "'throw'", "'emit'", "'var'", "'bool'", "'string'", - "'byte'", "'++'", "'--'", "'new'", "':'", "'+'", - "'-'", "'after'", "'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'", "'constructor'", - "'fallback'", "'receive'" ]; - static symbolicNames = [ null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, 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", - "ConstructorKeyword", "FallbackKeyword", "ReceiveKeyword", - "Identifier", "StringLiteralFragment", "VersionLiteral", - "WS", "COMMENT", "LINE_COMMENT" ]; - static ruleNames = [ "sourceUnit", "pragmaDirective", "pragmaName", - "pragmaValue", "version", "versionOperator", "versionConstraint", - "importDeclaration", "importDirective", "contractDefinition", - "inheritanceSpecifier", "contractPart", "stateVariableDeclaration", - "fileLevelConstant", "usingForDeclaration", "structDefinition", - "modifierDefinition", "modifierInvocation", "functionDefinition", - "functionDescriptor", "returnParameters", "modifierList", - "eventDefinition", "enumValue", "enumDefinition", - "parameterList", "parameter", "eventParameterList", - "eventParameter", "functionTypeParameterList", - "functionTypeParameter", "variableDeclaration", - "typeName", "userDefinedTypeName", "mappingKey", - "mapping", "functionTypeName", "storageLocation", - "stateMutability", "block", "statement", "expressionStatement", - "ifStatement", "tryStatement", "catchClause", "whileStatement", - "simpleStatement", "forStatement", "inlineAssemblyStatement", - "doWhileStatement", "continueStatement", "breakStatement", - "returnStatement", "throwStatement", "emitStatement", - "variableDeclarationStatement", "variableDeclarationList", - "identifierList", "elementaryTypeName", "expression", - "primaryExpression", "expressionList", "nameValueList", - "nameValue", "functionCallArguments", "functionCall", - "assemblyBlock", "assemblyItem", "assemblyExpression", - "assemblyMember", "assemblyCall", "assemblyLocalDefinition", - "assemblyAssignment", "assemblyIdentifierOrList", - "assemblyIdentifierList", "assemblyStackAssignment", - "labelDefinition", "assemblySwitch", "assemblyCase", - "assemblyFunctionDefinition", "assemblyFunctionReturns", - "assemblyFor", "assemblyIf", "assemblyLiteral", - "subAssembly", "tupleExpression", "typeNameExpression", - "numberLiteral", "identifier", "hexLiteral", "overrideSpecifier", - "stringLiteral" ]; - - constructor(input) { - super(input); - this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); - this.ruleNames = SolidityParser.ruleNames; - this.literalNames = SolidityParser.literalNames; - this.symbolicNames = SolidityParser.symbolicNames; - } - - get atn() { - return atn; - } - - sempred(localctx, ruleIndex, predIndex) { - switch(ruleIndex) { - case 32: - return this.typeName_sempred(localctx, predIndex); - case 59: - return this.expression_sempred(localctx, predIndex); - default: - throw "No predicate with index:" + ruleIndex; - } - } - - typeName_sempred(localctx, predIndex) { - switch(predIndex) { - case 0: - return this.precpred(this._ctx, 3); - default: - throw "No predicate with index:" + predIndex; - } - }; - - expression_sempred(localctx, predIndex) { - switch(predIndex) { - case 1: - return this.precpred(this._ctx, 14); - case 2: - return this.precpred(this._ctx, 13); - case 3: - return this.precpred(this._ctx, 12); - case 4: - return this.precpred(this._ctx, 11); - case 5: - return this.precpred(this._ctx, 10); - case 6: - return this.precpred(this._ctx, 9); - case 7: - return this.precpred(this._ctx, 8); - case 8: - return this.precpred(this._ctx, 7); - case 9: - return this.precpred(this._ctx, 6); - case 10: - return this.precpred(this._ctx, 5); - case 11: - return this.precpred(this._ctx, 4); - case 12: - return this.precpred(this._ctx, 3); - case 13: - return this.precpred(this._ctx, 2); - case 14: - return this.precpred(this._ctx, 27); - case 15: - return this.precpred(this._ctx, 25); - case 16: - return this.precpred(this._ctx, 24); - case 17: - return this.precpred(this._ctx, 23); - case 18: - return this.precpred(this._ctx, 22); - case 19: - return this.precpred(this._ctx, 21); - default: - throw "No predicate with index:" + predIndex; - } - }; - - - - - sourceUnit() { - let localctx = new SourceUnitContext(this, this._ctx, this.state); - this.enterRule(localctx, 0, SolidityParser.RULE_sourceUnit); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 193; - this._errHandler.sync(this); - _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__0) | (1 << SolidityParser.T__10) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__16) | (1 << SolidityParser.T__17) | (1 << SolidityParser.T__18) | (1 << SolidityParser.T__19) | (1 << SolidityParser.T__25) | (1 << SolidityParser.T__27) | (1 << SolidityParser.T__30))) !== 0) || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ConstructorKeyword - 93)) | (1 << (SolidityParser.FallbackKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 191; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,0,this._ctx); - switch(la_) { - case 1: - this.state = 184; - this.pragmaDirective(); - break; - - case 2: - this.state = 185; - this.importDirective(); - break; - - case 3: - this.state = 186; - this.contractDefinition(); - break; - - case 4: - this.state = 187; - this.enumDefinition(); - break; - - case 5: - this.state = 188; - this.structDefinition(); - break; - - case 6: - this.state = 189; - this.functionDefinition(); - break; - - case 7: - this.state = 190; - this.fileLevelConstant(); - break; - - } - this.state = 195; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 196; - this.match(SolidityParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - pragmaDirective() { - let localctx = new PragmaDirectiveContext(this, this._ctx, this.state); - this.enterRule(localctx, 2, SolidityParser.RULE_pragmaDirective); - try { - this.enterOuterAlt(localctx, 1); - this.state = 198; - this.match(SolidityParser.T__0); - this.state = 199; - this.pragmaName(); - this.state = 200; - this.pragmaValue(); - this.state = 201; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - pragmaName() { - let localctx = new PragmaNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 4, SolidityParser.RULE_pragmaName); - try { - this.enterOuterAlt(localctx, 1); - this.state = 203; - this.identifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - pragmaValue() { - let localctx = new PragmaValueContext(this, this._ctx, this.state); - this.enterRule(localctx, 6, SolidityParser.RULE_pragmaValue); - try { - this.state = 207; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,2,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 205; - this.version(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 206; - this.expression(0); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - version() { - let localctx = new VersionContext(this, this._ctx, this.state); - this.enterRule(localctx, 8, SolidityParser.RULE_version); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 209; - this.versionConstraint(); - this.state = 211; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__2) | (1 << SolidityParser.T__3) | (1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7) | (1 << SolidityParser.T__8))) !== 0) || _la===SolidityParser.DecimalNumber || _la===SolidityParser.VersionLiteral) { - this.state = 210; - this.versionConstraint(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - versionOperator() { - let localctx = new VersionOperatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 10, SolidityParser.RULE_versionOperator); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 213; - _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__2) | (1 << SolidityParser.T__3) | (1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7) | (1 << SolidityParser.T__8))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - versionConstraint() { - let localctx = new VersionConstraintContext(this, this._ctx, this.state); - this.enterRule(localctx, 12, SolidityParser.RULE_versionConstraint); - var _la = 0; // Token type - try { - this.state = 223; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,6,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 216; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__2) | (1 << SolidityParser.T__3) | (1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7) | (1 << SolidityParser.T__8))) !== 0)) { - this.state = 215; - this.versionOperator(); - } - - this.state = 218; - this.match(SolidityParser.VersionLiteral); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 220; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__2) | (1 << SolidityParser.T__3) | (1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7) | (1 << SolidityParser.T__8))) !== 0)) { - this.state = 219; - this.versionOperator(); - } - - this.state = 222; - this.match(SolidityParser.DecimalNumber); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - importDeclaration() { - let localctx = new ImportDeclarationContext(this, this._ctx, this.state); - this.enterRule(localctx, 14, SolidityParser.RULE_importDeclaration); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 225; - this.identifier(); - this.state = 228; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__9) { - this.state = 226; - this.match(SolidityParser.T__9); - this.state = 227; - this.identifier(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - importDirective() { - let localctx = new ImportDirectiveContext(this, this._ctx, this.state); - this.enterRule(localctx, 16, SolidityParser.RULE_importDirective); - var _la = 0; // Token type - try { - this.state = 264; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,12,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 230; - this.match(SolidityParser.T__10); - this.state = 231; - this.match(SolidityParser.StringLiteralFragment); - this.state = 234; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__9) { - this.state = 232; - this.match(SolidityParser.T__9); - this.state = 233; - this.identifier(); - } - - this.state = 236; - this.match(SolidityParser.T__1); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 237; - this.match(SolidityParser.T__10); - this.state = 240; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__11: - this.state = 238; - this.match(SolidityParser.T__11); - break; - case SolidityParser.T__12: - case SolidityParser.T__39: - case SolidityParser.T__92: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - this.state = 239; - this.identifier(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 244; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__9) { - this.state = 242; - this.match(SolidityParser.T__9); - this.state = 243; - this.identifier(); - } - - this.state = 246; - this.match(SolidityParser.T__12); - this.state = 247; - this.match(SolidityParser.StringLiteralFragment); - this.state = 248; - this.match(SolidityParser.T__1); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 249; - this.match(SolidityParser.T__10); - this.state = 250; - this.match(SolidityParser.T__13); - this.state = 251; - this.importDeclaration(); - this.state = 256; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 252; - this.match(SolidityParser.T__14); - this.state = 253; - this.importDeclaration(); - this.state = 258; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 259; - this.match(SolidityParser.T__15); - this.state = 260; - this.match(SolidityParser.T__12); - this.state = 261; - this.match(SolidityParser.StringLiteralFragment); - this.state = 262; - this.match(SolidityParser.T__1); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - contractDefinition() { - let localctx = new ContractDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 18, SolidityParser.RULE_contractDefinition); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 267; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__16) { - this.state = 266; - this.match(SolidityParser.T__16); - } - - this.state = 269; - _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__17) | (1 << SolidityParser.T__18) | (1 << SolidityParser.T__19))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 270; - this.identifier(); - this.state = 280; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__20) { - this.state = 271; - this.match(SolidityParser.T__20); - this.state = 272; - this.inheritanceSpecifier(); - this.state = 277; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 273; - this.match(SolidityParser.T__14); - this.state = 274; - this.inheritanceSpecifier(); - this.state = 279; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 282; - this.match(SolidityParser.T__13); - this.state = 286; - this._errHandler.sync(this); - _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__23) | (1 << SolidityParser.T__25) | (1 << SolidityParser.T__26) | (1 << SolidityParser.T__27) | (1 << SolidityParser.T__29) | (1 << SolidityParser.T__30))) !== 0) || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ConstructorKeyword - 93)) | (1 << (SolidityParser.FallbackKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 283; - this.contractPart(); - this.state = 288; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 289; - this.match(SolidityParser.T__15); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - inheritanceSpecifier() { - let localctx = new InheritanceSpecifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 20, SolidityParser.RULE_inheritanceSpecifier); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 291; - this.userDefinedTypeName(); - this.state = 297; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__21) { - this.state = 292; - this.match(SolidityParser.T__21); - this.state = 294; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 293; - this.expressionList(); - } - - this.state = 296; - this.match(SolidityParser.T__22); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - contractPart() { - let localctx = new ContractPartContext(this, this._ctx, this.state); - this.enterRule(localctx, 22, SolidityParser.RULE_contractPart); - try { - this.state = 306; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,19,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 299; - this.stateVariableDeclaration(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 300; - this.usingForDeclaration(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 301; - this.structDefinition(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 302; - this.modifierDefinition(); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 303; - this.functionDefinition(); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 304; - this.eventDefinition(); - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 305; - this.enumDefinition(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - stateVariableDeclaration() { - let localctx = new StateVariableDeclarationContext(this, this._ctx, this.state); - this.enterRule(localctx, 24, SolidityParser.RULE_stateVariableDeclaration); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 308; - this.typeName(0); - this.state = 317; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(((((_la - 94)) & ~0x1f) == 0 && ((1 << (_la - 94)) & ((1 << (SolidityParser.T__93 - 94)) | (1 << (SolidityParser.ConstantKeyword - 94)) | (1 << (SolidityParser.ImmutableKeyword - 94)) | (1 << (SolidityParser.InternalKeyword - 94)) | (1 << (SolidityParser.PrivateKeyword - 94)) | (1 << (SolidityParser.PublicKeyword - 94)))) !== 0)) { - this.state = 315; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.PublicKeyword: - this.state = 309; - this.match(SolidityParser.PublicKeyword); - break; - case SolidityParser.InternalKeyword: - this.state = 310; - this.match(SolidityParser.InternalKeyword); - break; - case SolidityParser.PrivateKeyword: - this.state = 311; - this.match(SolidityParser.PrivateKeyword); - break; - case SolidityParser.ConstantKeyword: - this.state = 312; - this.match(SolidityParser.ConstantKeyword); - break; - case SolidityParser.ImmutableKeyword: - this.state = 313; - this.match(SolidityParser.ImmutableKeyword); - break; - case SolidityParser.T__93: - this.state = 314; - this.overrideSpecifier(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 319; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 320; - this.identifier(); - this.state = 323; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__8) { - this.state = 321; - this.match(SolidityParser.T__8); - this.state = 322; - this.expression(0); - } - - this.state = 325; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - fileLevelConstant() { - let localctx = new FileLevelConstantContext(this, this._ctx, this.state); - this.enterRule(localctx, 26, SolidityParser.RULE_fileLevelConstant); - try { - this.enterOuterAlt(localctx, 1); - this.state = 327; - this.typeName(0); - this.state = 328; - this.match(SolidityParser.ConstantKeyword); - this.state = 329; - this.identifier(); - this.state = 330; - this.match(SolidityParser.T__8); - this.state = 331; - this.expression(0); - this.state = 332; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - usingForDeclaration() { - let localctx = new UsingForDeclarationContext(this, this._ctx, this.state); - this.enterRule(localctx, 28, SolidityParser.RULE_usingForDeclaration); - try { - this.enterOuterAlt(localctx, 1); - this.state = 334; - this.match(SolidityParser.T__23); - this.state = 335; - this.identifier(); - this.state = 336; - this.match(SolidityParser.T__24); - this.state = 339; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__11: - this.state = 337; - this.match(SolidityParser.T__11); - break; - case SolidityParser.T__12: - case SolidityParser.T__27: - case SolidityParser.T__33: - case SolidityParser.T__35: - case SolidityParser.T__39: - case SolidityParser.T__50: - case SolidityParser.T__51: - case SolidityParser.T__52: - case SolidityParser.T__53: - case SolidityParser.T__92: - case SolidityParser.Int: - case SolidityParser.Uint: - case SolidityParser.Byte: - case SolidityParser.Fixed: - case SolidityParser.Ufixed: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - this.state = 338; - this.typeName(0); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 341; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - structDefinition() { - let localctx = new StructDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 30, SolidityParser.RULE_structDefinition); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 343; - this.match(SolidityParser.T__25); - this.state = 344; - this.identifier(); - this.state = 345; - this.match(SolidityParser.T__13); - this.state = 356; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__27 || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 346; - this.variableDeclaration(); - this.state = 347; - this.match(SolidityParser.T__1); - this.state = 353; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__12 || _la===SolidityParser.T__27 || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 348; - this.variableDeclaration(); - this.state = 349; - this.match(SolidityParser.T__1); - this.state = 355; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 358; - this.match(SolidityParser.T__15); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - modifierDefinition() { - let localctx = new ModifierDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 32, SolidityParser.RULE_modifierDefinition); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 360; - this.match(SolidityParser.T__26); - this.state = 361; - this.identifier(); - this.state = 363; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__21) { - this.state = 362; - this.parameterList(); - } - - this.state = 369; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__93 || _la===SolidityParser.VirtualKeyword) { - this.state = 367; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.VirtualKeyword: - this.state = 365; - this.match(SolidityParser.VirtualKeyword); - break; - case SolidityParser.T__93: - this.state = 366; - this.overrideSpecifier(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 371; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 372; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - modifierInvocation() { - let localctx = new ModifierInvocationContext(this, this._ctx, this.state); - this.enterRule(localctx, 34, SolidityParser.RULE_modifierInvocation); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 374; - this.identifier(); - this.state = 380; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__21) { - this.state = 375; - this.match(SolidityParser.T__21); - this.state = 377; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 376; - this.expressionList(); - } - - this.state = 379; - this.match(SolidityParser.T__22); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - functionDefinition() { - let localctx = new FunctionDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 36, SolidityParser.RULE_functionDefinition); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 382; - this.functionDescriptor(); - this.state = 383; - this.parameterList(); - this.state = 384; - this.modifierList(); - this.state = 386; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__28) { - this.state = 385; - this.returnParameters(); - } - - this.state = 390; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__1: - this.state = 388; - this.match(SolidityParser.T__1); - break; - case SolidityParser.T__13: - this.state = 389; - this.block(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - functionDescriptor() { - let localctx = new FunctionDescriptorContext(this, this._ctx, this.state); - this.enterRule(localctx, 38, SolidityParser.RULE_functionDescriptor); - var _la = 0; // Token type - try { - this.state = 399; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__27: - this.enterOuterAlt(localctx, 1); - this.state = 392; - this.match(SolidityParser.T__27); - this.state = 394; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 393; - this.identifier(); - } - - break; - case SolidityParser.ConstructorKeyword: - this.enterOuterAlt(localctx, 2); - this.state = 396; - this.match(SolidityParser.ConstructorKeyword); - break; - case SolidityParser.FallbackKeyword: - this.enterOuterAlt(localctx, 3); - this.state = 397; - this.match(SolidityParser.FallbackKeyword); - break; - case SolidityParser.ReceiveKeyword: - this.enterOuterAlt(localctx, 4); - this.state = 398; - this.match(SolidityParser.ReceiveKeyword); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - returnParameters() { - let localctx = new ReturnParametersContext(this, this._ctx, this.state); - this.enterRule(localctx, 40, SolidityParser.RULE_returnParameters); - try { - this.enterOuterAlt(localctx, 1); - this.state = 401; - this.match(SolidityParser.T__28); - this.state = 402; - this.parameterList(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - modifierList() { - let localctx = new ModifierListContext(this, this._ctx, this.state); - this.enterRule(localctx, 42, SolidityParser.RULE_modifierList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 414; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.T__93 - 93)) | (1 << (SolidityParser.ConstantKeyword - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.ExternalKeyword - 93)) | (1 << (SolidityParser.InternalKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.PrivateKeyword - 93)) | (1 << (SolidityParser.PublicKeyword - 93)) | (1 << (SolidityParser.VirtualKeyword - 93)) | (1 << (SolidityParser.PureKeyword - 93)) | (1 << (SolidityParser.ViewKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 412; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,35,this._ctx); - switch(la_) { - case 1: - this.state = 404; - this.match(SolidityParser.ExternalKeyword); - break; - - case 2: - this.state = 405; - this.match(SolidityParser.PublicKeyword); - break; - - case 3: - this.state = 406; - this.match(SolidityParser.InternalKeyword); - break; - - case 4: - this.state = 407; - this.match(SolidityParser.PrivateKeyword); - break; - - case 5: - this.state = 408; - this.match(SolidityParser.VirtualKeyword); - break; - - case 6: - this.state = 409; - this.stateMutability(); - break; - - case 7: - this.state = 410; - this.modifierInvocation(); - break; - - case 8: - this.state = 411; - this.overrideSpecifier(); - break; - - } - this.state = 416; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - eventDefinition() { - let localctx = new EventDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 44, SolidityParser.RULE_eventDefinition); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 417; - this.match(SolidityParser.T__29); - this.state = 418; - this.identifier(); - this.state = 419; - this.eventParameterList(); - this.state = 421; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.AnonymousKeyword) { - this.state = 420; - this.match(SolidityParser.AnonymousKeyword); - } - - this.state = 423; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - enumValue() { - let localctx = new EnumValueContext(this, this._ctx, this.state); - this.enterRule(localctx, 46, SolidityParser.RULE_enumValue); - try { - this.enterOuterAlt(localctx, 1); - this.state = 425; - this.identifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - enumDefinition() { - let localctx = new EnumDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 48, SolidityParser.RULE_enumDefinition); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 427; - this.match(SolidityParser.T__30); - this.state = 428; - this.identifier(); - this.state = 429; - this.match(SolidityParser.T__13); - this.state = 431; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 430; - this.enumValue(); - } - - this.state = 437; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 433; - this.match(SolidityParser.T__14); - this.state = 434; - this.enumValue(); - this.state = 439; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 440; - this.match(SolidityParser.T__15); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - parameterList() { - let localctx = new ParameterListContext(this, this._ctx, this.state); - this.enterRule(localctx, 50, SolidityParser.RULE_parameterList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 442; - this.match(SolidityParser.T__21); - this.state = 451; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__27 || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 443; - this.parameter(); - this.state = 448; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 444; - this.match(SolidityParser.T__14); - this.state = 445; - this.parameter(); - this.state = 450; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 453; - this.match(SolidityParser.T__22); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - parameter() { - let localctx = new ParameterContext(this, this._ctx, this.state); - this.enterRule(localctx, 52, SolidityParser.RULE_parameter); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 455; - this.typeName(0); - this.state = 457; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,42,this._ctx); - if(la_===1) { - this.state = 456; - this.storageLocation(); - - } - this.state = 460; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 459; - this.identifier(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - eventParameterList() { - let localctx = new EventParameterListContext(this, this._ctx, this.state); - this.enterRule(localctx, 54, SolidityParser.RULE_eventParameterList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 462; - this.match(SolidityParser.T__21); - this.state = 471; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__27 || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 463; - this.eventParameter(); - this.state = 468; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 464; - this.match(SolidityParser.T__14); - this.state = 465; - this.eventParameter(); - this.state = 470; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 473; - this.match(SolidityParser.T__22); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - eventParameter() { - let localctx = new EventParameterContext(this, this._ctx, this.state); - this.enterRule(localctx, 56, SolidityParser.RULE_eventParameter); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 475; - this.typeName(0); - this.state = 477; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.IndexedKeyword) { - this.state = 476; - this.match(SolidityParser.IndexedKeyword); - } - - this.state = 480; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 479; - this.identifier(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - functionTypeParameterList() { - let localctx = new FunctionTypeParameterListContext(this, this._ctx, this.state); - this.enterRule(localctx, 58, SolidityParser.RULE_functionTypeParameterList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 482; - this.match(SolidityParser.T__21); - this.state = 491; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__27 || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 483; - this.functionTypeParameter(); - this.state = 488; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 484; - this.match(SolidityParser.T__14); - this.state = 485; - this.functionTypeParameter(); - this.state = 490; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 493; - this.match(SolidityParser.T__22); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - functionTypeParameter() { - let localctx = new FunctionTypeParameterContext(this, this._ctx, this.state); - this.enterRule(localctx, 60, SolidityParser.RULE_functionTypeParameter); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 495; - this.typeName(0); - this.state = 497; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(((((_la - 38)) & ~0x1f) == 0 && ((1 << (_la - 38)) & ((1 << (SolidityParser.T__37 - 38)) | (1 << (SolidityParser.T__38 - 38)) | (1 << (SolidityParser.T__39 - 38)))) !== 0)) { - this.state = 496; - this.storageLocation(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - variableDeclaration() { - let localctx = new VariableDeclarationContext(this, this._ctx, this.state); - this.enterRule(localctx, 62, SolidityParser.RULE_variableDeclaration); - try { - this.enterOuterAlt(localctx, 1); - this.state = 499; - this.typeName(0); - this.state = 501; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,51,this._ctx); - if(la_===1) { - this.state = 500; - this.storageLocation(); - - } - this.state = 503; - this.identifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - typeName(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new TypeNameContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 64; - this.enterRecursionRule(localctx, 64, SolidityParser.RULE_typeName, _p); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 512; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,52,this._ctx); - switch(la_) { - case 1: - this.state = 506; - this.elementaryTypeName(); - break; - - case 2: - this.state = 507; - this.userDefinedTypeName(); - break; - - case 3: - this.state = 508; - this.mapping(); - break; - - case 4: - this.state = 509; - this.functionTypeName(); - break; - - case 5: - this.state = 510; - this.match(SolidityParser.T__33); - this.state = 511; - this.match(SolidityParser.PayableKeyword); - break; - - } - this._ctx.stop = this._input.LT(-1); - this.state = 522; - this._errHandler.sync(this); - let _alt = this._interp.adaptivePredict(this._input,54,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - localctx = new TypeNameContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_typeName); - this.state = 514; - if (!( this.precpred(this._ctx, 3))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); - } - this.state = 515; - this.match(SolidityParser.T__31); - this.state = 517; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 516; - this.expression(0); - } - - this.state = 519; - this.match(SolidityParser.T__32); - } - this.state = 524; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,54,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - - userDefinedTypeName() { - let localctx = new UserDefinedTypeNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 66, SolidityParser.RULE_userDefinedTypeName); - try { - this.enterOuterAlt(localctx, 1); - this.state = 525; - this.identifier(); - this.state = 530; - this._errHandler.sync(this); - let _alt = this._interp.adaptivePredict(this._input,55,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 526; - this.match(SolidityParser.T__34); - this.state = 527; - this.identifier(); - } - this.state = 532; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,55,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - mappingKey() { - let localctx = new MappingKeyContext(this, this._ctx, this.state); - this.enterRule(localctx, 68, SolidityParser.RULE_mappingKey); - try { - this.state = 535; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__33: - case SolidityParser.T__50: - case SolidityParser.T__51: - case SolidityParser.T__52: - case SolidityParser.T__53: - case SolidityParser.Int: - case SolidityParser.Uint: - case SolidityParser.Byte: - case SolidityParser.Fixed: - case SolidityParser.Ufixed: - this.enterOuterAlt(localctx, 1); - this.state = 533; - this.elementaryTypeName(); - break; - case SolidityParser.T__12: - case SolidityParser.T__39: - case SolidityParser.T__92: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - this.enterOuterAlt(localctx, 2); - this.state = 534; - this.userDefinedTypeName(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - mapping() { - let localctx = new MappingContext(this, this._ctx, this.state); - this.enterRule(localctx, 70, SolidityParser.RULE_mapping); - try { - this.enterOuterAlt(localctx, 1); - this.state = 537; - this.match(SolidityParser.T__35); - this.state = 538; - this.match(SolidityParser.T__21); - this.state = 539; - this.mappingKey(); - this.state = 540; - this.match(SolidityParser.T__36); - this.state = 541; - this.typeName(0); - this.state = 542; - this.match(SolidityParser.T__22); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - functionTypeName() { - let localctx = new FunctionTypeNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 72, SolidityParser.RULE_functionTypeName); - try { - this.enterOuterAlt(localctx, 1); - this.state = 544; - this.match(SolidityParser.T__27); - this.state = 545; - this.functionTypeParameterList(); - this.state = 551; - this._errHandler.sync(this); - let _alt = this._interp.adaptivePredict(this._input,58,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 549; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.InternalKeyword: - this.state = 546; - this.match(SolidityParser.InternalKeyword); - break; - case SolidityParser.ExternalKeyword: - this.state = 547; - this.match(SolidityParser.ExternalKeyword); - break; - case SolidityParser.ConstantKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.PureKeyword: - case SolidityParser.ViewKeyword: - this.state = 548; - this.stateMutability(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } - this.state = 553; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,58,this._ctx); - } - - this.state = 556; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,59,this._ctx); - if(la_===1) { - this.state = 554; - this.match(SolidityParser.T__28); - this.state = 555; - this.functionTypeParameterList(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - storageLocation() { - let localctx = new StorageLocationContext(this, this._ctx, this.state); - this.enterRule(localctx, 74, SolidityParser.RULE_storageLocation); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 558; - _la = this._input.LA(1); - if(!(((((_la - 38)) & ~0x1f) == 0 && ((1 << (_la - 38)) & ((1 << (SolidityParser.T__37 - 38)) | (1 << (SolidityParser.T__38 - 38)) | (1 << (SolidityParser.T__39 - 38)))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - stateMutability() { - let localctx = new StateMutabilityContext(this, this._ctx, this.state); - this.enterRule(localctx, 76, SolidityParser.RULE_stateMutability); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 560; - _la = this._input.LA(1); - if(!(((((_la - 108)) & ~0x1f) == 0 && ((1 << (_la - 108)) & ((1 << (SolidityParser.ConstantKeyword - 108)) | (1 << (SolidityParser.PayableKeyword - 108)) | (1 << (SolidityParser.PureKeyword - 108)) | (1 << (SolidityParser.ViewKeyword - 108)))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - block() { - let localctx = new BlockContext(this, this._ctx, this.state); - this.enterRule(localctx, 78, SolidityParser.RULE_block); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 562; - this.match(SolidityParser.T__13); - this.state = 566; - this._errHandler.sync(this); - _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__13) | (1 << SolidityParser.T__21) | (1 << SolidityParser.T__24) | (1 << SolidityParser.T__27))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__35 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__40 - 32)) | (1 << (SolidityParser.T__42 - 32)) | (1 << (SolidityParser.T__44 - 32)) | (1 << (SolidityParser.T__45 - 32)) | (1 << (SolidityParser.T__46 - 32)) | (1 << (SolidityParser.T__47 - 32)) | (1 << (SolidityParser.T__48 - 32)) | (1 << (SolidityParser.T__49 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.BreakKeyword - 93)) | (1 << (SolidityParser.ContinueKeyword - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 563; - this.statement(); - this.state = 568; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 569; - this.match(SolidityParser.T__15); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - statement() { - let localctx = new StatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 80, SolidityParser.RULE_statement); - try { - this.state = 584; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__40: - this.enterOuterAlt(localctx, 1); - this.state = 571; - this.ifStatement(); - break; - case SolidityParser.T__42: - this.enterOuterAlt(localctx, 2); - this.state = 572; - this.tryStatement(); - break; - case SolidityParser.T__44: - this.enterOuterAlt(localctx, 3); - this.state = 573; - this.whileStatement(); - break; - case SolidityParser.T__24: - this.enterOuterAlt(localctx, 4); - this.state = 574; - this.forStatement(); - break; - case SolidityParser.T__13: - this.enterOuterAlt(localctx, 5); - this.state = 575; - this.block(); - break; - case SolidityParser.T__45: - this.enterOuterAlt(localctx, 6); - this.state = 576; - this.inlineAssemblyStatement(); - break; - case SolidityParser.T__46: - this.enterOuterAlt(localctx, 7); - this.state = 577; - this.doWhileStatement(); - break; - case SolidityParser.ContinueKeyword: - this.enterOuterAlt(localctx, 8); - this.state = 578; - this.continueStatement(); - break; - case SolidityParser.BreakKeyword: - this.enterOuterAlt(localctx, 9); - this.state = 579; - this.breakStatement(); - break; - case SolidityParser.T__47: - this.enterOuterAlt(localctx, 10); - this.state = 580; - this.returnStatement(); - break; - case SolidityParser.T__48: - this.enterOuterAlt(localctx, 11); - this.state = 581; - this.throwStatement(); - break; - case SolidityParser.T__49: - this.enterOuterAlt(localctx, 12); - this.state = 582; - this.emitStatement(); - break; - case SolidityParser.T__3: - case SolidityParser.T__12: - case SolidityParser.T__21: - case SolidityParser.T__27: - case SolidityParser.T__31: - case SolidityParser.T__33: - case SolidityParser.T__35: - case SolidityParser.T__39: - case SolidityParser.T__50: - case SolidityParser.T__51: - case SolidityParser.T__52: - case SolidityParser.T__53: - case SolidityParser.T__54: - case SolidityParser.T__55: - case SolidityParser.T__56: - case SolidityParser.T__58: - case SolidityParser.T__59: - case SolidityParser.T__60: - case SolidityParser.T__61: - case SolidityParser.T__62: - case SolidityParser.T__92: - case SolidityParser.Int: - case SolidityParser.Uint: - case SolidityParser.Byte: - case SolidityParser.Fixed: - case SolidityParser.Ufixed: - case SolidityParser.BooleanLiteral: - case SolidityParser.DecimalNumber: - case SolidityParser.HexNumber: - case SolidityParser.HexLiteralFragment: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.TypeKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - case SolidityParser.StringLiteralFragment: - this.enterOuterAlt(localctx, 13); - this.state = 583; - this.simpleStatement(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - expressionStatement() { - let localctx = new ExpressionStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 82, SolidityParser.RULE_expressionStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 586; - this.expression(0); - this.state = 587; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - ifStatement() { - let localctx = new IfStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 84, SolidityParser.RULE_ifStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 589; - this.match(SolidityParser.T__40); - this.state = 590; - this.match(SolidityParser.T__21); - this.state = 591; - this.expression(0); - this.state = 592; - this.match(SolidityParser.T__22); - this.state = 593; - this.statement(); - this.state = 596; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,62,this._ctx); - if(la_===1) { - this.state = 594; - this.match(SolidityParser.T__41); - this.state = 595; - this.statement(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - tryStatement() { - let localctx = new TryStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 86, SolidityParser.RULE_tryStatement); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 598; - this.match(SolidityParser.T__42); - this.state = 599; - this.expression(0); - this.state = 601; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__28) { - this.state = 600; - this.returnParameters(); - } - - this.state = 603; - this.block(); - this.state = 605; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 604; - this.catchClause(); - this.state = 607; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===SolidityParser.T__43); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - catchClause() { - let localctx = new CatchClauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 88, SolidityParser.RULE_catchClause); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 609; - this.match(SolidityParser.T__43); - this.state = 614; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(((((_la - 13)) & ~0x1f) == 0 && ((1 << (_la - 13)) & ((1 << (SolidityParser.T__12 - 13)) | (1 << (SolidityParser.T__21 - 13)) | (1 << (SolidityParser.T__39 - 13)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 611; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 610; - this.identifier(); - } - - this.state = 613; - this.parameterList(); - } - - this.state = 616; - this.block(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - whileStatement() { - let localctx = new WhileStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 90, SolidityParser.RULE_whileStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 618; - this.match(SolidityParser.T__44); - this.state = 619; - this.match(SolidityParser.T__21); - this.state = 620; - this.expression(0); - this.state = 621; - this.match(SolidityParser.T__22); - this.state = 622; - this.statement(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - simpleStatement() { - let localctx = new SimpleStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 92, SolidityParser.RULE_simpleStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 626; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,67,this._ctx); - switch(la_) { - case 1: - this.state = 624; - this.variableDeclarationStatement(); - break; - - case 2: - this.state = 625; - this.expressionStatement(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - forStatement() { - let localctx = new ForStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 94, SolidityParser.RULE_forStatement); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 628; - this.match(SolidityParser.T__24); - this.state = 629; - this.match(SolidityParser.T__21); - this.state = 632; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__3: - case SolidityParser.T__12: - case SolidityParser.T__21: - case SolidityParser.T__27: - case SolidityParser.T__31: - case SolidityParser.T__33: - case SolidityParser.T__35: - case SolidityParser.T__39: - case SolidityParser.T__50: - case SolidityParser.T__51: - case SolidityParser.T__52: - case SolidityParser.T__53: - case SolidityParser.T__54: - case SolidityParser.T__55: - case SolidityParser.T__56: - case SolidityParser.T__58: - case SolidityParser.T__59: - case SolidityParser.T__60: - case SolidityParser.T__61: - case SolidityParser.T__62: - case SolidityParser.T__92: - case SolidityParser.Int: - case SolidityParser.Uint: - case SolidityParser.Byte: - case SolidityParser.Fixed: - case SolidityParser.Ufixed: - case SolidityParser.BooleanLiteral: - case SolidityParser.DecimalNumber: - case SolidityParser.HexNumber: - case SolidityParser.HexLiteralFragment: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.TypeKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - case SolidityParser.StringLiteralFragment: - this.state = 630; - this.simpleStatement(); - break; - case SolidityParser.T__1: - this.state = 631; - this.match(SolidityParser.T__1); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 636; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__3: - case SolidityParser.T__12: - case SolidityParser.T__21: - case SolidityParser.T__31: - case SolidityParser.T__33: - case SolidityParser.T__39: - case SolidityParser.T__50: - case SolidityParser.T__51: - case SolidityParser.T__52: - case SolidityParser.T__53: - case SolidityParser.T__54: - case SolidityParser.T__55: - case SolidityParser.T__56: - case SolidityParser.T__58: - case SolidityParser.T__59: - case SolidityParser.T__60: - case SolidityParser.T__61: - case SolidityParser.T__62: - case SolidityParser.T__92: - case SolidityParser.Int: - case SolidityParser.Uint: - case SolidityParser.Byte: - case SolidityParser.Fixed: - case SolidityParser.Ufixed: - case SolidityParser.BooleanLiteral: - case SolidityParser.DecimalNumber: - case SolidityParser.HexNumber: - case SolidityParser.HexLiteralFragment: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.TypeKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - case SolidityParser.StringLiteralFragment: - this.state = 634; - this.expressionStatement(); - break; - case SolidityParser.T__1: - this.state = 635; - this.match(SolidityParser.T__1); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 639; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 638; - this.expression(0); - } - - this.state = 641; - this.match(SolidityParser.T__22); - this.state = 642; - this.statement(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - inlineAssemblyStatement() { - let localctx = new InlineAssemblyStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 96, SolidityParser.RULE_inlineAssemblyStatement); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 644; - this.match(SolidityParser.T__45); - this.state = 646; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.StringLiteralFragment) { - this.state = 645; - this.match(SolidityParser.StringLiteralFragment); - } - - this.state = 648; - this.assemblyBlock(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - doWhileStatement() { - let localctx = new DoWhileStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 98, SolidityParser.RULE_doWhileStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 650; - this.match(SolidityParser.T__46); - this.state = 651; - this.statement(); - this.state = 652; - this.match(SolidityParser.T__44); - this.state = 653; - this.match(SolidityParser.T__21); - this.state = 654; - this.expression(0); - this.state = 655; - this.match(SolidityParser.T__22); - this.state = 656; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - continueStatement() { - let localctx = new ContinueStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 100, SolidityParser.RULE_continueStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 658; - this.match(SolidityParser.ContinueKeyword); - this.state = 659; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - breakStatement() { - let localctx = new BreakStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 102, SolidityParser.RULE_breakStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 661; - this.match(SolidityParser.BreakKeyword); - this.state = 662; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - returnStatement() { - let localctx = new ReturnStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 104, SolidityParser.RULE_returnStatement); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 664; - this.match(SolidityParser.T__47); - this.state = 666; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 665; - this.expression(0); - } - - this.state = 668; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - throwStatement() { - let localctx = new ThrowStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 106, SolidityParser.RULE_throwStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 670; - this.match(SolidityParser.T__48); - this.state = 671; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - emitStatement() { - let localctx = new EmitStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 108, SolidityParser.RULE_emitStatement); - try { - this.enterOuterAlt(localctx, 1); - this.state = 673; - this.match(SolidityParser.T__49); - this.state = 674; - this.functionCall(); - this.state = 675; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - variableDeclarationStatement() { - let localctx = new VariableDeclarationStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 110, SolidityParser.RULE_variableDeclarationStatement); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 684; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,73,this._ctx); - switch(la_) { - case 1: - this.state = 677; - this.match(SolidityParser.T__50); - this.state = 678; - this.identifierList(); - break; - - case 2: - this.state = 679; - this.variableDeclaration(); - break; - - case 3: - this.state = 680; - this.match(SolidityParser.T__21); - this.state = 681; - this.variableDeclarationList(); - this.state = 682; - this.match(SolidityParser.T__22); - break; - - } - this.state = 688; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__8) { - this.state = 686; - this.match(SolidityParser.T__8); - this.state = 687; - this.expression(0); - } - - this.state = 690; - this.match(SolidityParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - variableDeclarationList() { - let localctx = new VariableDeclarationListContext(this, this._ctx, this.state); - this.enterRule(localctx, 112, SolidityParser.RULE_variableDeclarationList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 693; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__27 || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 692; - this.variableDeclaration(); - } - - this.state = 701; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 695; - this.match(SolidityParser.T__14); - this.state = 697; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__27 || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__35 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 696; - this.variableDeclaration(); - } - - this.state = 703; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - identifierList() { - let localctx = new IdentifierListContext(this, this._ctx, this.state); - this.enterRule(localctx, 114, SolidityParser.RULE_identifierList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 704; - this.match(SolidityParser.T__21); - this.state = 711; - this._errHandler.sync(this); - let _alt = this._interp.adaptivePredict(this._input,79,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 706; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 705; - this.identifier(); - } - - this.state = 708; - this.match(SolidityParser.T__14); - } - this.state = 713; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,79,this._ctx); - } - - this.state = 715; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 714; - this.identifier(); - } - - this.state = 717; - this.match(SolidityParser.T__22); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - elementaryTypeName() { - let localctx = new ElementaryTypeNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 116, SolidityParser.RULE_elementaryTypeName); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 719; - _la = this._input.LA(1); - if(!(((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__50 - 34)) | (1 << (SolidityParser.T__51 - 34)) | (1 << (SolidityParser.T__52 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 95)) & ~0x1f) == 0 && ((1 << (_la - 95)) & ((1 << (SolidityParser.Int - 95)) | (1 << (SolidityParser.Uint - 95)) | (1 << (SolidityParser.Byte - 95)) | (1 << (SolidityParser.Fixed - 95)) | (1 << (SolidityParser.Ufixed - 95)))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - expression(_p) { - if(_p===undefined) { - _p = 0; - } - const _parentctx = this._ctx; - const _parentState = this.state; - let localctx = new ExpressionContext(this, this._ctx, _parentState); - let _prevctx = localctx; - const _startState = 118; - this.enterRecursionRule(localctx, 118, SolidityParser.RULE_expression, _p); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 739; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,81,this._ctx); - switch(la_) { - case 1: - this.state = 722; - this.match(SolidityParser.T__56); - this.state = 723; - this.typeName(0); - break; - - case 2: - this.state = 724; - this.match(SolidityParser.T__21); - this.state = 725; - this.expression(0); - this.state = 726; - this.match(SolidityParser.T__22); - break; - - case 3: - this.state = 728; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__54 || _la===SolidityParser.T__55)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 729; - this.expression(19); - break; - - case 4: - this.state = 730; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__58 || _la===SolidityParser.T__59)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 731; - this.expression(18); - break; - - case 5: - this.state = 732; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__60 || _la===SolidityParser.T__61)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 733; - this.expression(17); - break; - - case 6: - this.state = 734; - this.match(SolidityParser.T__62); - this.state = 735; - this.expression(16); - break; - - case 7: - this.state = 736; - this.match(SolidityParser.T__3); - this.state = 737; - this.expression(15); - break; - - case 8: - this.state = 738; - this.primaryExpression(); - break; - - } - this._ctx.stop = this._input.LT(-1); - this.state = 816; - this._errHandler.sync(this); - let _alt = this._interp.adaptivePredict(this._input,86,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - this.state = 814; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,85,this._ctx); - switch(la_) { - case 1: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 741; - if (!( this.precpred(this._ctx, 14))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 14)"); - } - this.state = 742; - this.match(SolidityParser.T__63); - this.state = 743; - this.expression(15); - break; - - case 2: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 744; - if (!( this.precpred(this._ctx, 13))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 13)"); - } - this.state = 745; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__11 || _la===SolidityParser.T__64 || _la===SolidityParser.T__65)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 746; - this.expression(14); - break; - - case 3: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 747; - if (!( this.precpred(this._ctx, 12))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 12)"); - } - this.state = 748; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__58 || _la===SolidityParser.T__59)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 749; - this.expression(13); - break; - - case 4: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 750; - if (!( this.precpred(this._ctx, 11))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 11)"); - } - this.state = 751; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__66 || _la===SolidityParser.T__67)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 752; - this.expression(12); - break; - - case 5: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 753; - if (!( this.precpred(this._ctx, 10))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 10)"); - } - this.state = 754; - this.match(SolidityParser.T__68); - this.state = 755; - this.expression(11); - break; - - case 6: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 756; - if (!( this.precpred(this._ctx, 9))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 9)"); - } - this.state = 757; - this.match(SolidityParser.T__2); - this.state = 758; - this.expression(10); - break; - - case 7: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 759; - if (!( this.precpred(this._ctx, 8))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 8)"); - } - this.state = 760; - this.match(SolidityParser.T__69); - this.state = 761; - this.expression(9); - break; - - case 8: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 762; - if (!( this.precpred(this._ctx, 7))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 7)"); - } - this.state = 763; - _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__4) | (1 << SolidityParser.T__5) | (1 << SolidityParser.T__6) | (1 << SolidityParser.T__7))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 764; - this.expression(8); - break; - - case 9: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 765; - if (!( this.precpred(this._ctx, 6))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 6)"); - } - this.state = 766; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__70 || _la===SolidityParser.T__71)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 767; - this.expression(7); - break; - - case 10: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 768; - if (!( this.precpred(this._ctx, 5))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); - } - this.state = 769; - this.match(SolidityParser.T__72); - this.state = 770; - this.expression(6); - break; - - case 11: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 771; - if (!( this.precpred(this._ctx, 4))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); - } - this.state = 772; - this.match(SolidityParser.T__73); - this.state = 773; - this.expression(5); - break; - - case 12: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 774; - if (!( this.precpred(this._ctx, 3))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); - } - this.state = 775; - this.match(SolidityParser.T__74); - this.state = 776; - this.expression(0); - this.state = 777; - this.match(SolidityParser.T__57); - this.state = 778; - this.expression(4); - break; - - case 13: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 780; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 781; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__8 || ((((_la - 76)) & ~0x1f) == 0 && ((1 << (_la - 76)) & ((1 << (SolidityParser.T__75 - 76)) | (1 << (SolidityParser.T__76 - 76)) | (1 << (SolidityParser.T__77 - 76)) | (1 << (SolidityParser.T__78 - 76)) | (1 << (SolidityParser.T__79 - 76)) | (1 << (SolidityParser.T__80 - 76)) | (1 << (SolidityParser.T__81 - 76)) | (1 << (SolidityParser.T__82 - 76)) | (1 << (SolidityParser.T__83 - 76)) | (1 << (SolidityParser.T__84 - 76)))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 782; - this.expression(3); - break; - - case 14: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 783; - if (!( this.precpred(this._ctx, 27))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 27)"); - } - this.state = 784; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__54 || _la===SolidityParser.T__55)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - break; - - case 15: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 785; - if (!( this.precpred(this._ctx, 25))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 25)"); - } - this.state = 786; - this.match(SolidityParser.T__31); - this.state = 788; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 787; - this.expression(0); - } - - this.state = 790; - this.match(SolidityParser.T__32); - break; - - case 16: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 791; - if (!( this.precpred(this._ctx, 24))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 24)"); - } - this.state = 792; - this.match(SolidityParser.T__31); - this.state = 794; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 793; - this.expression(0); - } - - this.state = 796; - this.match(SolidityParser.T__57); - this.state = 798; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 797; - this.expression(0); - } - - this.state = 800; - this.match(SolidityParser.T__32); - break; - - case 17: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 801; - if (!( this.precpred(this._ctx, 23))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 23)"); - } - this.state = 802; - this.match(SolidityParser.T__34); - this.state = 803; - this.identifier(); - break; - - case 18: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 804; - if (!( this.precpred(this._ctx, 22))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 22)"); - } - this.state = 805; - this.match(SolidityParser.T__13); - this.state = 806; - this.nameValueList(); - this.state = 807; - this.match(SolidityParser.T__15); - break; - - case 19: - localctx = new ExpressionContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, SolidityParser.RULE_expression); - this.state = 809; - if (!( this.precpred(this._ctx, 21))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 21)"); - } - this.state = 810; - this.match(SolidityParser.T__21); - this.state = 811; - this.functionCallArguments(); - this.state = 812; - this.match(SolidityParser.T__22); - break; - - } - } - this.state = 818; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,86,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; - } - - - - primaryExpression() { - let localctx = new PrimaryExpressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 120, SolidityParser.RULE_primaryExpression); - try { - this.state = 836; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,89,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 819; - this.match(SolidityParser.BooleanLiteral); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 820; - this.numberLiteral(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 821; - this.hexLiteral(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 822; - this.stringLiteral(); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 823; - this.identifier(); - this.state = 826; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,87,this._ctx); - if(la_===1) { - this.state = 824; - this.match(SolidityParser.T__31); - this.state = 825; - this.match(SolidityParser.T__32); - - } - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 828; - this.match(SolidityParser.TypeKeyword); - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 829; - this.match(SolidityParser.PayableKeyword); - break; - - case 8: - this.enterOuterAlt(localctx, 8); - this.state = 830; - this.tupleExpression(); - break; - - case 9: - this.enterOuterAlt(localctx, 9); - this.state = 831; - this.typeNameExpression(); - this.state = 834; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,88,this._ctx); - if(la_===1) { - this.state = 832; - this.match(SolidityParser.T__31); - this.state = 833; - this.match(SolidityParser.T__32); - - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - expressionList() { - let localctx = new ExpressionListContext(this, this._ctx, this.state); - this.enterRule(localctx, 122, SolidityParser.RULE_expressionList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 838; - this.expression(0); - this.state = 843; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 839; - this.match(SolidityParser.T__14); - this.state = 840; - this.expression(0); - this.state = 845; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - nameValueList() { - let localctx = new NameValueListContext(this, this._ctx, this.state); - this.enterRule(localctx, 124, SolidityParser.RULE_nameValueList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 846; - this.nameValue(); - this.state = 851; - this._errHandler.sync(this); - let _alt = this._interp.adaptivePredict(this._input,91,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 847; - this.match(SolidityParser.T__14); - this.state = 848; - this.nameValue(); - } - this.state = 853; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,91,this._ctx); - } - - this.state = 855; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__14) { - this.state = 854; - this.match(SolidityParser.T__14); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - nameValue() { - let localctx = new NameValueContext(this, this._ctx, this.state); - this.enterRule(localctx, 126, SolidityParser.RULE_nameValue); - try { - this.enterOuterAlt(localctx, 1); - this.state = 857; - this.identifier(); - this.state = 858; - this.match(SolidityParser.T__57); - this.state = 859; - this.expression(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - functionCallArguments() { - let localctx = new FunctionCallArgumentsContext(this, this._ctx, this.state); - this.enterRule(localctx, 128, SolidityParser.RULE_functionCallArguments); - var _la = 0; // Token type - try { - this.state = 869; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__13: - this.enterOuterAlt(localctx, 1); - this.state = 861; - this.match(SolidityParser.T__13); - this.state = 863; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 862; - this.nameValueList(); - } - - this.state = 865; - this.match(SolidityParser.T__15); - break; - case SolidityParser.T__3: - case SolidityParser.T__12: - case SolidityParser.T__21: - case SolidityParser.T__22: - case SolidityParser.T__31: - case SolidityParser.T__33: - case SolidityParser.T__39: - case SolidityParser.T__50: - case SolidityParser.T__51: - case SolidityParser.T__52: - case SolidityParser.T__53: - case SolidityParser.T__54: - case SolidityParser.T__55: - case SolidityParser.T__56: - case SolidityParser.T__58: - case SolidityParser.T__59: - case SolidityParser.T__60: - case SolidityParser.T__61: - case SolidityParser.T__62: - case SolidityParser.T__92: - case SolidityParser.Int: - case SolidityParser.Uint: - case SolidityParser.Byte: - case SolidityParser.Fixed: - case SolidityParser.Ufixed: - case SolidityParser.BooleanLiteral: - case SolidityParser.DecimalNumber: - case SolidityParser.HexNumber: - case SolidityParser.HexLiteralFragment: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.TypeKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - case SolidityParser.StringLiteralFragment: - this.enterOuterAlt(localctx, 2); - this.state = 867; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 866; - this.expressionList(); - } - - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - functionCall() { - let localctx = new FunctionCallContext(this, this._ctx, this.state); - this.enterRule(localctx, 130, SolidityParser.RULE_functionCall); - try { - this.enterOuterAlt(localctx, 1); - this.state = 871; - this.expression(0); - this.state = 872; - this.match(SolidityParser.T__21); - this.state = 873; - this.functionCallArguments(); - this.state = 874; - this.match(SolidityParser.T__22); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyBlock() { - let localctx = new AssemblyBlockContext(this, this._ctx, this.state); - this.enterRule(localctx, 132, SolidityParser.RULE_assemblyBlock); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 876; - this.match(SolidityParser.T__13); - this.state = 880; - this._errHandler.sync(this); - _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__12) | (1 << SolidityParser.T__13) | (1 << SolidityParser.T__21) | (1 << SolidityParser.T__24) | (1 << SolidityParser.T__27))) !== 0) || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__40 - 34)) | (1 << (SolidityParser.T__45 - 34)) | (1 << (SolidityParser.T__47 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 86)) & ~0x1f) == 0 && ((1 << (_la - 86)) & ((1 << (SolidityParser.T__85 - 86)) | (1 << (SolidityParser.T__87 - 86)) | (1 << (SolidityParser.T__88 - 86)) | (1 << (SolidityParser.T__92 - 86)) | (1 << (SolidityParser.DecimalNumber - 86)) | (1 << (SolidityParser.HexNumber - 86)) | (1 << (SolidityParser.HexLiteralFragment - 86)) | (1 << (SolidityParser.BreakKeyword - 86)) | (1 << (SolidityParser.ContinueKeyword - 86)) | (1 << (SolidityParser.LeaveKeyword - 86)) | (1 << (SolidityParser.PayableKeyword - 86)))) !== 0) || ((((_la - 124)) & ~0x1f) == 0 && ((1 << (_la - 124)) & ((1 << (SolidityParser.ReceiveKeyword - 124)) | (1 << (SolidityParser.Identifier - 124)) | (1 << (SolidityParser.StringLiteralFragment - 124)))) !== 0)) { - this.state = 877; - this.assemblyItem(); - this.state = 882; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 883; - this.match(SolidityParser.T__15); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyItem() { - let localctx = new AssemblyItemContext(this, this._ctx, this.state); - this.enterRule(localctx, 134, SolidityParser.RULE_assemblyItem); - try { - this.state = 903; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,97,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 885; - this.identifier(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 886; - this.assemblyBlock(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 887; - this.assemblyExpression(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 888; - this.assemblyLocalDefinition(); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 889; - this.assemblyAssignment(); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 890; - this.assemblyStackAssignment(); - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 891; - this.labelDefinition(); - break; - - case 8: - this.enterOuterAlt(localctx, 8); - this.state = 892; - this.assemblySwitch(); - break; - - case 9: - this.enterOuterAlt(localctx, 9); - this.state = 893; - this.assemblyFunctionDefinition(); - break; - - case 10: - this.enterOuterAlt(localctx, 10); - this.state = 894; - this.assemblyFor(); - break; - - case 11: - this.enterOuterAlt(localctx, 11); - this.state = 895; - this.assemblyIf(); - break; - - case 12: - this.enterOuterAlt(localctx, 12); - this.state = 896; - this.match(SolidityParser.BreakKeyword); - break; - - case 13: - this.enterOuterAlt(localctx, 13); - this.state = 897; - this.match(SolidityParser.ContinueKeyword); - break; - - case 14: - this.enterOuterAlt(localctx, 14); - this.state = 898; - this.match(SolidityParser.LeaveKeyword); - break; - - case 15: - this.enterOuterAlt(localctx, 15); - this.state = 899; - this.subAssembly(); - break; - - case 16: - this.enterOuterAlt(localctx, 16); - this.state = 900; - this.numberLiteral(); - break; - - case 17: - this.enterOuterAlt(localctx, 17); - this.state = 901; - this.stringLiteral(); - break; - - case 18: - this.enterOuterAlt(localctx, 18); - this.state = 902; - this.hexLiteral(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyExpression() { - let localctx = new AssemblyExpressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 136, SolidityParser.RULE_assemblyExpression); - try { - this.state = 908; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,98,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 905; - this.assemblyCall(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 906; - this.assemblyLiteral(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 907; - this.assemblyMember(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyMember() { - let localctx = new AssemblyMemberContext(this, this._ctx, this.state); - this.enterRule(localctx, 138, SolidityParser.RULE_assemblyMember); - try { - this.enterOuterAlt(localctx, 1); - this.state = 910; - this.identifier(); - this.state = 911; - this.match(SolidityParser.T__34); - this.state = 912; - this.identifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyCall() { - let localctx = new AssemblyCallContext(this, this._ctx, this.state); - this.enterRule(localctx, 140, SolidityParser.RULE_assemblyCall); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 918; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__47: - this.state = 914; - this.match(SolidityParser.T__47); - break; - case SolidityParser.T__33: - this.state = 915; - this.match(SolidityParser.T__33); - break; - case SolidityParser.T__53: - this.state = 916; - this.match(SolidityParser.T__53); - break; - case SolidityParser.T__12: - case SolidityParser.T__39: - case SolidityParser.T__92: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - this.state = 917; - this.identifier(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 932; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,102,this._ctx); - if(la_===1) { - this.state = 920; - this.match(SolidityParser.T__21); - this.state = 922; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || ((((_la - 34)) & ~0x1f) == 0 && ((1 << (_la - 34)) & ((1 << (SolidityParser.T__33 - 34)) | (1 << (SolidityParser.T__39 - 34)) | (1 << (SolidityParser.T__47 - 34)) | (1 << (SolidityParser.T__53 - 34)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 921; - this.assemblyExpression(); - } - - this.state = 928; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 924; - this.match(SolidityParser.T__14); - this.state = 925; - this.assemblyExpression(); - this.state = 930; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 931; - this.match(SolidityParser.T__22); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyLocalDefinition() { - let localctx = new AssemblyLocalDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 142, SolidityParser.RULE_assemblyLocalDefinition); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 934; - this.match(SolidityParser.T__85); - this.state = 935; - this.assemblyIdentifierOrList(); - this.state = 938; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__86) { - this.state = 936; - this.match(SolidityParser.T__86); - this.state = 937; - this.assemblyExpression(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyAssignment() { - let localctx = new AssemblyAssignmentContext(this, this._ctx, this.state); - this.enterRule(localctx, 144, SolidityParser.RULE_assemblyAssignment); - try { - this.enterOuterAlt(localctx, 1); - this.state = 940; - this.assemblyIdentifierOrList(); - this.state = 941; - this.match(SolidityParser.T__86); - this.state = 942; - this.assemblyExpression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyIdentifierOrList() { - let localctx = new AssemblyIdentifierOrListContext(this, this._ctx, this.state); - this.enterRule(localctx, 146, SolidityParser.RULE_assemblyIdentifierOrList); - try { - this.state = 950; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,104,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 944; - this.identifier(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 945; - this.assemblyMember(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 946; - this.match(SolidityParser.T__21); - this.state = 947; - this.assemblyIdentifierList(); - this.state = 948; - this.match(SolidityParser.T__22); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyIdentifierList() { - let localctx = new AssemblyIdentifierListContext(this, this._ctx, this.state); - this.enterRule(localctx, 148, SolidityParser.RULE_assemblyIdentifierList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 952; - this.identifier(); - this.state = 957; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 953; - this.match(SolidityParser.T__14); - this.state = 954; - this.identifier(); - this.state = 959; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyStackAssignment() { - let localctx = new AssemblyStackAssignmentContext(this, this._ctx, this.state); - this.enterRule(localctx, 150, SolidityParser.RULE_assemblyStackAssignment); - try { - this.enterOuterAlt(localctx, 1); - this.state = 960; - this.match(SolidityParser.T__87); - this.state = 961; - this.identifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - labelDefinition() { - let localctx = new LabelDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 152, SolidityParser.RULE_labelDefinition); - try { - this.enterOuterAlt(localctx, 1); - this.state = 963; - this.identifier(); - this.state = 964; - this.match(SolidityParser.T__57); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblySwitch() { - let localctx = new AssemblySwitchContext(this, this._ctx, this.state); - this.enterRule(localctx, 154, SolidityParser.RULE_assemblySwitch); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 966; - this.match(SolidityParser.T__88); - this.state = 967; - this.assemblyExpression(); - this.state = 971; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__89 || _la===SolidityParser.T__90) { - this.state = 968; - this.assemblyCase(); - this.state = 973; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyCase() { - let localctx = new AssemblyCaseContext(this, this._ctx, this.state); - this.enterRule(localctx, 156, SolidityParser.RULE_assemblyCase); - try { - this.state = 980; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__89: - this.enterOuterAlt(localctx, 1); - this.state = 974; - this.match(SolidityParser.T__89); - this.state = 975; - this.assemblyLiteral(); - this.state = 976; - this.assemblyBlock(); - break; - case SolidityParser.T__90: - this.enterOuterAlt(localctx, 2); - this.state = 978; - this.match(SolidityParser.T__90); - this.state = 979; - this.assemblyBlock(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyFunctionDefinition() { - let localctx = new AssemblyFunctionDefinitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 158, SolidityParser.RULE_assemblyFunctionDefinition); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 982; - this.match(SolidityParser.T__27); - this.state = 983; - this.identifier(); - this.state = 984; - this.match(SolidityParser.T__21); - this.state = 986; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier) { - this.state = 985; - this.assemblyIdentifierList(); - } - - this.state = 988; - this.match(SolidityParser.T__22); - this.state = 990; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__91) { - this.state = 989; - this.assemblyFunctionReturns(); - } - - this.state = 992; - this.assemblyBlock(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyFunctionReturns() { - let localctx = new AssemblyFunctionReturnsContext(this, this._ctx, this.state); - this.enterRule(localctx, 160, SolidityParser.RULE_assemblyFunctionReturns); - try { - this.enterOuterAlt(localctx, 1); - this.state = 994; - this.match(SolidityParser.T__91); - this.state = 995; - this.assemblyIdentifierList(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyFor() { - let localctx = new AssemblyForContext(this, this._ctx, this.state); - this.enterRule(localctx, 162, SolidityParser.RULE_assemblyFor); - try { - this.enterOuterAlt(localctx, 1); - this.state = 997; - this.match(SolidityParser.T__24); - this.state = 1000; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__13: - this.state = 998; - this.assemblyBlock(); - break; - case SolidityParser.T__12: - case SolidityParser.T__33: - case SolidityParser.T__39: - case SolidityParser.T__47: - case SolidityParser.T__53: - case SolidityParser.T__92: - case SolidityParser.DecimalNumber: - case SolidityParser.HexNumber: - case SolidityParser.HexLiteralFragment: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - case SolidityParser.StringLiteralFragment: - this.state = 999; - this.assemblyExpression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1002; - this.assemblyExpression(); - this.state = 1005; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__13: - this.state = 1003; - this.assemblyBlock(); - break; - case SolidityParser.T__12: - case SolidityParser.T__33: - case SolidityParser.T__39: - case SolidityParser.T__47: - case SolidityParser.T__53: - case SolidityParser.T__92: - case SolidityParser.DecimalNumber: - case SolidityParser.HexNumber: - case SolidityParser.HexLiteralFragment: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - case SolidityParser.StringLiteralFragment: - this.state = 1004; - this.assemblyExpression(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1007; - this.assemblyBlock(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyIf() { - let localctx = new AssemblyIfContext(this, this._ctx, this.state); - this.enterRule(localctx, 164, SolidityParser.RULE_assemblyIf); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1009; - this.match(SolidityParser.T__40); - this.state = 1010; - this.assemblyExpression(); - this.state = 1011; - this.assemblyBlock(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - assemblyLiteral() { - let localctx = new AssemblyLiteralContext(this, this._ctx, this.state); - this.enterRule(localctx, 166, SolidityParser.RULE_assemblyLiteral); - try { - this.state = 1017; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.StringLiteralFragment: - this.enterOuterAlt(localctx, 1); - this.state = 1013; - this.stringLiteral(); - break; - case SolidityParser.DecimalNumber: - this.enterOuterAlt(localctx, 2); - this.state = 1014; - this.match(SolidityParser.DecimalNumber); - break; - case SolidityParser.HexNumber: - this.enterOuterAlt(localctx, 3); - this.state = 1015; - this.match(SolidityParser.HexNumber); - break; - case SolidityParser.HexLiteralFragment: - this.enterOuterAlt(localctx, 4); - this.state = 1016; - this.hexLiteral(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - subAssembly() { - let localctx = new SubAssemblyContext(this, this._ctx, this.state); - this.enterRule(localctx, 168, SolidityParser.RULE_subAssembly); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1019; - this.match(SolidityParser.T__45); - this.state = 1020; - this.identifier(); - this.state = 1021; - this.assemblyBlock(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - tupleExpression() { - let localctx = new TupleExpressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 170, SolidityParser.RULE_tupleExpression); - var _la = 0; // Token type - try { - this.state = 1049; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__21: - this.enterOuterAlt(localctx, 1); - this.state = 1023; - this.match(SolidityParser.T__21); - - this.state = 1025; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 1024; - this.expression(0); - } - - this.state = 1033; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 1027; - this.match(SolidityParser.T__14); - this.state = 1029; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 1028; - this.expression(0); - } - - this.state = 1035; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1036; - this.match(SolidityParser.T__22); - break; - case SolidityParser.T__31: - this.enterOuterAlt(localctx, 2); - this.state = 1037; - this.match(SolidityParser.T__31); - this.state = 1046; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << SolidityParser.T__3) | (1 << SolidityParser.T__12) | (1 << SolidityParser.T__21))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (SolidityParser.T__31 - 32)) | (1 << (SolidityParser.T__33 - 32)) | (1 << (SolidityParser.T__39 - 32)) | (1 << (SolidityParser.T__50 - 32)) | (1 << (SolidityParser.T__51 - 32)) | (1 << (SolidityParser.T__52 - 32)) | (1 << (SolidityParser.T__53 - 32)) | (1 << (SolidityParser.T__54 - 32)) | (1 << (SolidityParser.T__55 - 32)) | (1 << (SolidityParser.T__56 - 32)) | (1 << (SolidityParser.T__58 - 32)) | (1 << (SolidityParser.T__59 - 32)) | (1 << (SolidityParser.T__60 - 32)) | (1 << (SolidityParser.T__61 - 32)) | (1 << (SolidityParser.T__62 - 32)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.Int - 93)) | (1 << (SolidityParser.Uint - 93)) | (1 << (SolidityParser.Byte - 93)) | (1 << (SolidityParser.Fixed - 93)) | (1 << (SolidityParser.Ufixed - 93)) | (1 << (SolidityParser.BooleanLiteral - 93)) | (1 << (SolidityParser.DecimalNumber - 93)) | (1 << (SolidityParser.HexNumber - 93)) | (1 << (SolidityParser.HexLiteralFragment - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.TypeKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier || _la===SolidityParser.StringLiteralFragment) { - this.state = 1038; - this.expression(0); - this.state = 1043; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 1039; - this.match(SolidityParser.T__14); - this.state = 1040; - this.expression(0); - this.state = 1045; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1048; - this.match(SolidityParser.T__32); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - typeNameExpression() { - let localctx = new TypeNameExpressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 172, SolidityParser.RULE_typeNameExpression); - try { - this.state = 1053; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case SolidityParser.T__33: - case SolidityParser.T__50: - case SolidityParser.T__51: - case SolidityParser.T__52: - case SolidityParser.T__53: - case SolidityParser.Int: - case SolidityParser.Uint: - case SolidityParser.Byte: - case SolidityParser.Fixed: - case SolidityParser.Ufixed: - this.enterOuterAlt(localctx, 1); - this.state = 1051; - this.elementaryTypeName(); - break; - case SolidityParser.T__12: - case SolidityParser.T__39: - case SolidityParser.T__92: - case SolidityParser.LeaveKeyword: - case SolidityParser.PayableKeyword: - case SolidityParser.ReceiveKeyword: - case SolidityParser.Identifier: - this.enterOuterAlt(localctx, 2); - this.state = 1052; - this.userDefinedTypeName(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - numberLiteral() { - let localctx = new NumberLiteralContext(this, this._ctx, this.state); - this.enterRule(localctx, 174, SolidityParser.RULE_numberLiteral); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1055; - _la = this._input.LA(1); - if(!(_la===SolidityParser.DecimalNumber || _la===SolidityParser.HexNumber)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1057; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,120,this._ctx); - if(la_===1) { - this.state = 1056; - this.match(SolidityParser.NumberUnit); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - identifier() { - let localctx = new IdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 176, SolidityParser.RULE_identifier); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1059; - _la = this._input.LA(1); - if(!(_la===SolidityParser.T__12 || _la===SolidityParser.T__39 || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (SolidityParser.T__92 - 93)) | (1 << (SolidityParser.LeaveKeyword - 93)) | (1 << (SolidityParser.PayableKeyword - 93)) | (1 << (SolidityParser.ReceiveKeyword - 93)))) !== 0) || _la===SolidityParser.Identifier)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - hexLiteral() { - let localctx = new HexLiteralContext(this, this._ctx, this.state); - this.enterRule(localctx, 178, SolidityParser.RULE_hexLiteral); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1062; - this._errHandler.sync(this); - let _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 1061; - this.match(SolidityParser.HexLiteralFragment); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1064; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,121, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - overrideSpecifier() { - let localctx = new OverrideSpecifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 180, SolidityParser.RULE_overrideSpecifier); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1066; - this.match(SolidityParser.T__93); - this.state = 1078; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===SolidityParser.T__21) { - this.state = 1067; - this.match(SolidityParser.T__21); - this.state = 1068; - this.userDefinedTypeName(); - this.state = 1073; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===SolidityParser.T__14) { - this.state = 1069; - this.match(SolidityParser.T__14); - this.state = 1070; - this.userDefinedTypeName(); - this.state = 1075; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1076; - this.match(SolidityParser.T__22); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - - - stringLiteral() { - let localctx = new StringLiteralContext(this, this._ctx, this.state); - this.enterRule(localctx, 182, SolidityParser.RULE_stringLiteral); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1081; - this._errHandler.sync(this); - let _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 1080; - this.match(SolidityParser.StringLiteralFragment); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1083; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,124, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; - } - - -} - -SolidityParser.EOF = antlr4.Token.EOF; -SolidityParser.T__0 = 1; -SolidityParser.T__1 = 2; -SolidityParser.T__2 = 3; -SolidityParser.T__3 = 4; -SolidityParser.T__4 = 5; -SolidityParser.T__5 = 6; -SolidityParser.T__6 = 7; -SolidityParser.T__7 = 8; -SolidityParser.T__8 = 9; -SolidityParser.T__9 = 10; -SolidityParser.T__10 = 11; -SolidityParser.T__11 = 12; -SolidityParser.T__12 = 13; -SolidityParser.T__13 = 14; -SolidityParser.T__14 = 15; -SolidityParser.T__15 = 16; -SolidityParser.T__16 = 17; -SolidityParser.T__17 = 18; -SolidityParser.T__18 = 19; -SolidityParser.T__19 = 20; -SolidityParser.T__20 = 21; -SolidityParser.T__21 = 22; -SolidityParser.T__22 = 23; -SolidityParser.T__23 = 24; -SolidityParser.T__24 = 25; -SolidityParser.T__25 = 26; -SolidityParser.T__26 = 27; -SolidityParser.T__27 = 28; -SolidityParser.T__28 = 29; -SolidityParser.T__29 = 30; -SolidityParser.T__30 = 31; -SolidityParser.T__31 = 32; -SolidityParser.T__32 = 33; -SolidityParser.T__33 = 34; -SolidityParser.T__34 = 35; -SolidityParser.T__35 = 36; -SolidityParser.T__36 = 37; -SolidityParser.T__37 = 38; -SolidityParser.T__38 = 39; -SolidityParser.T__39 = 40; -SolidityParser.T__40 = 41; -SolidityParser.T__41 = 42; -SolidityParser.T__42 = 43; -SolidityParser.T__43 = 44; -SolidityParser.T__44 = 45; -SolidityParser.T__45 = 46; -SolidityParser.T__46 = 47; -SolidityParser.T__47 = 48; -SolidityParser.T__48 = 49; -SolidityParser.T__49 = 50; -SolidityParser.T__50 = 51; -SolidityParser.T__51 = 52; -SolidityParser.T__52 = 53; -SolidityParser.T__53 = 54; -SolidityParser.T__54 = 55; -SolidityParser.T__55 = 56; -SolidityParser.T__56 = 57; -SolidityParser.T__57 = 58; -SolidityParser.T__58 = 59; -SolidityParser.T__59 = 60; -SolidityParser.T__60 = 61; -SolidityParser.T__61 = 62; -SolidityParser.T__62 = 63; -SolidityParser.T__63 = 64; -SolidityParser.T__64 = 65; -SolidityParser.T__65 = 66; -SolidityParser.T__66 = 67; -SolidityParser.T__67 = 68; -SolidityParser.T__68 = 69; -SolidityParser.T__69 = 70; -SolidityParser.T__70 = 71; -SolidityParser.T__71 = 72; -SolidityParser.T__72 = 73; -SolidityParser.T__73 = 74; -SolidityParser.T__74 = 75; -SolidityParser.T__75 = 76; -SolidityParser.T__76 = 77; -SolidityParser.T__77 = 78; -SolidityParser.T__78 = 79; -SolidityParser.T__79 = 80; -SolidityParser.T__80 = 81; -SolidityParser.T__81 = 82; -SolidityParser.T__82 = 83; -SolidityParser.T__83 = 84; -SolidityParser.T__84 = 85; -SolidityParser.T__85 = 86; -SolidityParser.T__86 = 87; -SolidityParser.T__87 = 88; -SolidityParser.T__88 = 89; -SolidityParser.T__89 = 90; -SolidityParser.T__90 = 91; -SolidityParser.T__91 = 92; -SolidityParser.T__92 = 93; -SolidityParser.T__93 = 94; -SolidityParser.Int = 95; -SolidityParser.Uint = 96; -SolidityParser.Byte = 97; -SolidityParser.Fixed = 98; -SolidityParser.Ufixed = 99; -SolidityParser.BooleanLiteral = 100; -SolidityParser.DecimalNumber = 101; -SolidityParser.HexNumber = 102; -SolidityParser.NumberUnit = 103; -SolidityParser.HexLiteralFragment = 104; -SolidityParser.ReservedKeyword = 105; -SolidityParser.AnonymousKeyword = 106; -SolidityParser.BreakKeyword = 107; -SolidityParser.ConstantKeyword = 108; -SolidityParser.ImmutableKeyword = 109; -SolidityParser.ContinueKeyword = 110; -SolidityParser.LeaveKeyword = 111; -SolidityParser.ExternalKeyword = 112; -SolidityParser.IndexedKeyword = 113; -SolidityParser.InternalKeyword = 114; -SolidityParser.PayableKeyword = 115; -SolidityParser.PrivateKeyword = 116; -SolidityParser.PublicKeyword = 117; -SolidityParser.VirtualKeyword = 118; -SolidityParser.PureKeyword = 119; -SolidityParser.TypeKeyword = 120; -SolidityParser.ViewKeyword = 121; -SolidityParser.ConstructorKeyword = 122; -SolidityParser.FallbackKeyword = 123; -SolidityParser.ReceiveKeyword = 124; -SolidityParser.Identifier = 125; -SolidityParser.StringLiteralFragment = 126; -SolidityParser.VersionLiteral = 127; -SolidityParser.WS = 128; -SolidityParser.COMMENT = 129; -SolidityParser.LINE_COMMENT = 130; - -SolidityParser.RULE_sourceUnit = 0; -SolidityParser.RULE_pragmaDirective = 1; -SolidityParser.RULE_pragmaName = 2; -SolidityParser.RULE_pragmaValue = 3; -SolidityParser.RULE_version = 4; -SolidityParser.RULE_versionOperator = 5; -SolidityParser.RULE_versionConstraint = 6; -SolidityParser.RULE_importDeclaration = 7; -SolidityParser.RULE_importDirective = 8; -SolidityParser.RULE_contractDefinition = 9; -SolidityParser.RULE_inheritanceSpecifier = 10; -SolidityParser.RULE_contractPart = 11; -SolidityParser.RULE_stateVariableDeclaration = 12; -SolidityParser.RULE_fileLevelConstant = 13; -SolidityParser.RULE_usingForDeclaration = 14; -SolidityParser.RULE_structDefinition = 15; -SolidityParser.RULE_modifierDefinition = 16; -SolidityParser.RULE_modifierInvocation = 17; -SolidityParser.RULE_functionDefinition = 18; -SolidityParser.RULE_functionDescriptor = 19; -SolidityParser.RULE_returnParameters = 20; -SolidityParser.RULE_modifierList = 21; -SolidityParser.RULE_eventDefinition = 22; -SolidityParser.RULE_enumValue = 23; -SolidityParser.RULE_enumDefinition = 24; -SolidityParser.RULE_parameterList = 25; -SolidityParser.RULE_parameter = 26; -SolidityParser.RULE_eventParameterList = 27; -SolidityParser.RULE_eventParameter = 28; -SolidityParser.RULE_functionTypeParameterList = 29; -SolidityParser.RULE_functionTypeParameter = 30; -SolidityParser.RULE_variableDeclaration = 31; -SolidityParser.RULE_typeName = 32; -SolidityParser.RULE_userDefinedTypeName = 33; -SolidityParser.RULE_mappingKey = 34; -SolidityParser.RULE_mapping = 35; -SolidityParser.RULE_functionTypeName = 36; -SolidityParser.RULE_storageLocation = 37; -SolidityParser.RULE_stateMutability = 38; -SolidityParser.RULE_block = 39; -SolidityParser.RULE_statement = 40; -SolidityParser.RULE_expressionStatement = 41; -SolidityParser.RULE_ifStatement = 42; -SolidityParser.RULE_tryStatement = 43; -SolidityParser.RULE_catchClause = 44; -SolidityParser.RULE_whileStatement = 45; -SolidityParser.RULE_simpleStatement = 46; -SolidityParser.RULE_forStatement = 47; -SolidityParser.RULE_inlineAssemblyStatement = 48; -SolidityParser.RULE_doWhileStatement = 49; -SolidityParser.RULE_continueStatement = 50; -SolidityParser.RULE_breakStatement = 51; -SolidityParser.RULE_returnStatement = 52; -SolidityParser.RULE_throwStatement = 53; -SolidityParser.RULE_emitStatement = 54; -SolidityParser.RULE_variableDeclarationStatement = 55; -SolidityParser.RULE_variableDeclarationList = 56; -SolidityParser.RULE_identifierList = 57; -SolidityParser.RULE_elementaryTypeName = 58; -SolidityParser.RULE_expression = 59; -SolidityParser.RULE_primaryExpression = 60; -SolidityParser.RULE_expressionList = 61; -SolidityParser.RULE_nameValueList = 62; -SolidityParser.RULE_nameValue = 63; -SolidityParser.RULE_functionCallArguments = 64; -SolidityParser.RULE_functionCall = 65; -SolidityParser.RULE_assemblyBlock = 66; -SolidityParser.RULE_assemblyItem = 67; -SolidityParser.RULE_assemblyExpression = 68; -SolidityParser.RULE_assemblyMember = 69; -SolidityParser.RULE_assemblyCall = 70; -SolidityParser.RULE_assemblyLocalDefinition = 71; -SolidityParser.RULE_assemblyAssignment = 72; -SolidityParser.RULE_assemblyIdentifierOrList = 73; -SolidityParser.RULE_assemblyIdentifierList = 74; -SolidityParser.RULE_assemblyStackAssignment = 75; -SolidityParser.RULE_labelDefinition = 76; -SolidityParser.RULE_assemblySwitch = 77; -SolidityParser.RULE_assemblyCase = 78; -SolidityParser.RULE_assemblyFunctionDefinition = 79; -SolidityParser.RULE_assemblyFunctionReturns = 80; -SolidityParser.RULE_assemblyFor = 81; -SolidityParser.RULE_assemblyIf = 82; -SolidityParser.RULE_assemblyLiteral = 83; -SolidityParser.RULE_subAssembly = 84; -SolidityParser.RULE_tupleExpression = 85; -SolidityParser.RULE_typeNameExpression = 86; -SolidityParser.RULE_numberLiteral = 87; -SolidityParser.RULE_identifier = 88; -SolidityParser.RULE_hexLiteral = 89; -SolidityParser.RULE_overrideSpecifier = 90; -SolidityParser.RULE_stringLiteral = 91; - -class SourceUnitContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_sourceUnit; - } - - EOF() { - return this.getToken(SolidityParser.EOF, 0); - }; - - pragmaDirective = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PragmaDirectiveContext); - } else { - return this.getTypedRuleContext(PragmaDirectiveContext,i); - } - }; - - importDirective = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ImportDirectiveContext); - } else { - return this.getTypedRuleContext(ImportDirectiveContext,i); - } - }; - - contractDefinition = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ContractDefinitionContext); - } else { - return this.getTypedRuleContext(ContractDefinitionContext,i); - } - }; - - enumDefinition = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(EnumDefinitionContext); - } else { - return this.getTypedRuleContext(EnumDefinitionContext,i); - } - }; - - structDefinition = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(StructDefinitionContext); - } else { - return this.getTypedRuleContext(StructDefinitionContext,i); - } - }; - - functionDefinition = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(FunctionDefinitionContext); - } else { - return this.getTypedRuleContext(FunctionDefinitionContext,i); - } - }; - - fileLevelConstant = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(FileLevelConstantContext); - } else { - return this.getTypedRuleContext(FileLevelConstantContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterSourceUnit(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitSourceUnit(this); - } - } - - -} - - - -class PragmaDirectiveContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_pragmaDirective; + static grammarFileName = 'Solidity.g4' + static literalNames = [ + null, + "'pragma'", + "';'", + "'^'", + "'~'", + "'>='", + "'>'", + "'<'", + "'<='", + "'='", + "'as'", + "'import'", + "'*'", + "'from'", + "'{'", + "','", + "'}'", + "'abstract'", + "'contract'", + "'interface'", + "'library'", + "'is'", + "'('", + "')'", + "'using'", + "'for'", + "'struct'", + "'modifier'", + "'function'", + "'returns'", + "'event'", + "'enum'", + "'['", + "']'", + "'address'", + "'.'", + "'mapping'", + "'=>'", + "'memory'", + "'storage'", + "'calldata'", + "'if'", + "'else'", + "'try'", + "'catch'", + "'while'", + "'assembly'", + "'do'", + "'return'", + "'throw'", + "'emit'", + "'var'", + "'bool'", + "'string'", + "'byte'", + "'++'", + "'--'", + "'new'", + "':'", + "'+'", + "'-'", + "'after'", + "'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'", + "'constructor'", + "'fallback'", + "'receive'" + ] + static symbolicNames = [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + 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', + 'ConstructorKeyword', + 'FallbackKeyword', + 'ReceiveKeyword', + 'Identifier', + 'StringLiteralFragment', + 'VersionLiteral', + 'WS', + 'COMMENT', + 'LINE_COMMENT' + ] + static ruleNames = [ + 'sourceUnit', + 'pragmaDirective', + 'pragmaName', + 'pragmaValue', + 'version', + 'versionOperator', + 'versionConstraint', + 'importDeclaration', + 'importDirective', + 'contractDefinition', + 'inheritanceSpecifier', + 'contractPart', + 'stateVariableDeclaration', + 'fileLevelConstant', + 'usingForDeclaration', + 'structDefinition', + 'modifierDefinition', + 'modifierInvocation', + 'functionDefinition', + 'functionDescriptor', + 'returnParameters', + 'modifierList', + 'eventDefinition', + 'enumValue', + 'enumDefinition', + 'parameterList', + 'parameter', + 'eventParameterList', + 'eventParameter', + 'functionTypeParameterList', + 'functionTypeParameter', + 'variableDeclaration', + 'typeName', + 'userDefinedTypeName', + 'mappingKey', + 'mapping', + 'functionTypeName', + 'storageLocation', + 'stateMutability', + 'block', + 'statement', + 'expressionStatement', + 'ifStatement', + 'tryStatement', + 'catchClause', + 'whileStatement', + 'simpleStatement', + 'forStatement', + 'inlineAssemblyStatement', + 'doWhileStatement', + 'continueStatement', + 'breakStatement', + 'returnStatement', + 'throwStatement', + 'emitStatement', + 'variableDeclarationStatement', + 'variableDeclarationList', + 'identifierList', + 'elementaryTypeName', + 'expression', + 'primaryExpression', + 'expressionList', + 'nameValueList', + 'nameValue', + 'functionCallArguments', + 'functionCall', + 'assemblyBlock', + 'assemblyItem', + 'assemblyExpression', + 'assemblyMember', + 'assemblyCall', + 'assemblyLocalDefinition', + 'assemblyAssignment', + 'assemblyIdentifierOrList', + 'assemblyIdentifierList', + 'assemblyStackAssignment', + 'labelDefinition', + 'assemblySwitch', + 'assemblyCase', + 'assemblyFunctionDefinition', + 'assemblyFunctionReturns', + 'assemblyFor', + 'assemblyIf', + 'assemblyLiteral', + 'subAssembly', + 'tupleExpression', + 'typeNameExpression', + 'numberLiteral', + 'identifier', + 'hexLiteral', + 'overrideSpecifier', + 'stringLiteral' + ] + + constructor(input) { + super(input) + this._interp = new antlr4.atn.ParserATNSimulator( + this, + atn, + decisionsToDFA, + sharedContextCache + ) + this.ruleNames = SolidityParser.ruleNames + this.literalNames = SolidityParser.literalNames + this.symbolicNames = SolidityParser.symbolicNames + } + + get atn() { + return atn + } + + sempred(localctx, ruleIndex, predIndex) { + switch (ruleIndex) { + case 32: + return this.typeName_sempred(localctx, predIndex) + case 59: + return this.expression_sempred(localctx, predIndex) + default: + throw 'No predicate with index:' + ruleIndex } - - pragmaName() { - return this.getTypedRuleContext(PragmaNameContext,0); - }; - - pragmaValue() { - return this.getTypedRuleContext(PragmaValueContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterPragmaDirective(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitPragmaDirective(this); - } - } - - -} - - - -class PragmaNameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_pragmaName; + } + + typeName_sempred(localctx, predIndex) { + switch (predIndex) { + case 0: + return this.precpred(this._ctx, 3) + default: + throw 'No predicate with index:' + predIndex } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterPragmaName(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitPragmaName(this); - } - } - - -} - - - -class PragmaValueContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_pragmaValue; + } + + expression_sempred(localctx, predIndex) { + switch (predIndex) { + case 1: + return this.precpred(this._ctx, 14) + case 2: + return this.precpred(this._ctx, 13) + case 3: + return this.precpred(this._ctx, 12) + case 4: + return this.precpred(this._ctx, 11) + case 5: + return this.precpred(this._ctx, 10) + case 6: + return this.precpred(this._ctx, 9) + case 7: + return this.precpred(this._ctx, 8) + case 8: + return this.precpred(this._ctx, 7) + case 9: + return this.precpred(this._ctx, 6) + case 10: + return this.precpred(this._ctx, 5) + case 11: + return this.precpred(this._ctx, 4) + case 12: + return this.precpred(this._ctx, 3) + case 13: + return this.precpred(this._ctx, 2) + case 14: + return this.precpred(this._ctx, 27) + case 15: + return this.precpred(this._ctx, 25) + case 16: + return this.precpred(this._ctx, 24) + case 17: + return this.precpred(this._ctx, 23) + case 18: + return this.precpred(this._ctx, 22) + case 19: + return this.precpred(this._ctx, 21) + default: + throw 'No predicate with index:' + predIndex } - - version() { - return this.getTypedRuleContext(VersionContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterPragmaValue(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitPragmaValue(this); - } - } - - -} - - - -class VersionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_version; - } - - versionConstraint = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(VersionConstraintContext); - } else { - return this.getTypedRuleContext(VersionConstraintContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterVersion(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitVersion(this); - } - } - - -} - - - -class VersionOperatorContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_versionOperator; + } + + sourceUnit() { + let localctx = new SourceUnitContext(this, this._ctx, this.state) + this.enterRule(localctx, 0, SolidityParser.RULE_sourceUnit) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 193 + this._errHandler.sync(this) + _la = this._input.LA(1) + while ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__0) | + (1 << SolidityParser.T__10) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__16) | + (1 << SolidityParser.T__17) | + (1 << SolidityParser.T__18) | + (1 << SolidityParser.T__19) | + (1 << SolidityParser.T__25) | + (1 << SolidityParser.T__27) | + (1 << SolidityParser.T__30))) !== + 0) || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ConstructorKeyword - 93)) | + (1 << (SolidityParser.FallbackKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 191 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 0, this._ctx) + switch (la_) { + case 1: + this.state = 184 + this.pragmaDirective() + break + + case 2: + this.state = 185 + this.importDirective() + break + + case 3: + this.state = 186 + this.contractDefinition() + break + + case 4: + this.state = 187 + this.enumDefinition() + break + + case 5: + this.state = 188 + this.structDefinition() + break + + case 6: + this.state = 189 + this.functionDefinition() + break + + case 7: + this.state = 190 + this.fileLevelConstant() + break + } + this.state = 195 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 196 + this.match(SolidityParser.EOF) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterVersionOperator(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitVersionOperator(this); - } - } - - -} - - - -class VersionConstraintContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_versionConstraint; + return localctx + } + + pragmaDirective() { + let localctx = new PragmaDirectiveContext(this, this._ctx, this.state) + this.enterRule(localctx, 2, SolidityParser.RULE_pragmaDirective) + try { + this.enterOuterAlt(localctx, 1) + this.state = 198 + this.match(SolidityParser.T__0) + this.state = 199 + this.pragmaName() + this.state = 200 + this.pragmaValue() + this.state = 201 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - VersionLiteral() { - return this.getToken(SolidityParser.VersionLiteral, 0); - }; - - versionOperator() { - return this.getTypedRuleContext(VersionOperatorContext,0); - }; - - DecimalNumber() { - return this.getToken(SolidityParser.DecimalNumber, 0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterVersionConstraint(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitVersionConstraint(this); - } - } - - -} - - - -class ImportDeclarationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_importDeclaration; - } - - identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterImportDeclaration(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitImportDeclaration(this); - } - } - - -} - - - -class ImportDirectiveContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_importDirective; - } - - StringLiteralFragment() { - return this.getToken(SolidityParser.StringLiteralFragment, 0); - }; - - identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } - }; - - importDeclaration = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ImportDeclarationContext); - } else { - return this.getTypedRuleContext(ImportDeclarationContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterImportDirective(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitImportDirective(this); - } - } - - -} - - - -class ContractDefinitionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_contractDefinition; - } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - inheritanceSpecifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(InheritanceSpecifierContext); - } else { - return this.getTypedRuleContext(InheritanceSpecifierContext,i); - } - }; - - contractPart = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ContractPartContext); - } else { - return this.getTypedRuleContext(ContractPartContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterContractDefinition(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitContractDefinition(this); - } - } - - -} - - - -class InheritanceSpecifierContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_inheritanceSpecifier; + return localctx + } + + pragmaName() { + let localctx = new PragmaNameContext(this, this._ctx, this.state) + this.enterRule(localctx, 4, SolidityParser.RULE_pragmaName) + try { + this.enterOuterAlt(localctx, 1) + this.state = 203 + this.identifier() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - userDefinedTypeName() { - return this.getTypedRuleContext(UserDefinedTypeNameContext,0); - }; - - expressionList() { - return this.getTypedRuleContext(ExpressionListContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterInheritanceSpecifier(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitInheritanceSpecifier(this); - } - } - - -} - - - -class ContractPartContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_contractPart; + return localctx + } + + pragmaValue() { + let localctx = new PragmaValueContext(this, this._ctx, this.state) + this.enterRule(localctx, 6, SolidityParser.RULE_pragmaValue) + try { + this.state = 207 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 2, this._ctx) + switch (la_) { + case 1: + this.enterOuterAlt(localctx, 1) + this.state = 205 + this.version() + break + + case 2: + this.enterOuterAlt(localctx, 2) + this.state = 206 + this.expression(0) + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - stateVariableDeclaration() { - return this.getTypedRuleContext(StateVariableDeclarationContext,0); - }; - - usingForDeclaration() { - return this.getTypedRuleContext(UsingForDeclarationContext,0); - }; - - structDefinition() { - return this.getTypedRuleContext(StructDefinitionContext,0); - }; - - modifierDefinition() { - return this.getTypedRuleContext(ModifierDefinitionContext,0); - }; - - functionDefinition() { - return this.getTypedRuleContext(FunctionDefinitionContext,0); - }; - - eventDefinition() { - return this.getTypedRuleContext(EventDefinitionContext,0); - }; - - enumDefinition() { - return this.getTypedRuleContext(EnumDefinitionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterContractPart(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitContractPart(this); - } - } - - -} - - - -class StateVariableDeclarationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_stateVariableDeclaration; - } - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - PublicKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.PublicKeyword); - } else { - return this.getToken(SolidityParser.PublicKeyword, i); - } - }; - - - InternalKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.InternalKeyword); - } else { - return this.getToken(SolidityParser.InternalKeyword, i); - } - }; - - - PrivateKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.PrivateKeyword); - } else { - return this.getToken(SolidityParser.PrivateKeyword, i); - } - }; - - - ConstantKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.ConstantKeyword); - } else { - return this.getToken(SolidityParser.ConstantKeyword, i); - } - }; - - - ImmutableKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.ImmutableKeyword); - } else { - return this.getToken(SolidityParser.ImmutableKeyword, i); - } - }; - - - overrideSpecifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(OverrideSpecifierContext); - } else { - return this.getTypedRuleContext(OverrideSpecifierContext,i); - } - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterStateVariableDeclaration(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitStateVariableDeclaration(this); - } - } - - -} - - - -class FileLevelConstantContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_fileLevelConstant; + return localctx + } + + version() { + let localctx = new VersionContext(this, this._ctx, this.state) + this.enterRule(localctx, 8, SolidityParser.RULE_version) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 209 + this.versionConstraint() + this.state = 211 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__2) | + (1 << SolidityParser.T__3) | + (1 << SolidityParser.T__4) | + (1 << SolidityParser.T__5) | + (1 << SolidityParser.T__6) | + (1 << SolidityParser.T__7) | + (1 << SolidityParser.T__8))) !== + 0) || + _la === SolidityParser.DecimalNumber || + _la === SolidityParser.VersionLiteral + ) { + this.state = 210 + this.versionConstraint() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - ConstantKeyword() { - return this.getToken(SolidityParser.ConstantKeyword, 0); - }; - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterFileLevelConstant(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitFileLevelConstant(this); - } - } - - -} - - - -class UsingForDeclarationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_usingForDeclaration; + return localctx + } + + versionOperator() { + let localctx = new VersionOperatorContext(this, this._ctx, this.state) + this.enterRule(localctx, 10, SolidityParser.RULE_versionOperator) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 213 + _la = this._input.LA(1) + if ( + !( + (_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__2) | + (1 << SolidityParser.T__3) | + (1 << SolidityParser.T__4) | + (1 << SolidityParser.T__5) | + (1 << SolidityParser.T__6) | + (1 << SolidityParser.T__7) | + (1 << SolidityParser.T__8))) !== + 0 + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterUsingForDeclaration(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitUsingForDeclaration(this); - } - } - - -} - - - -class StructDefinitionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_structDefinition; - } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - variableDeclaration = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(VariableDeclarationContext); - } else { - return this.getTypedRuleContext(VariableDeclarationContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterStructDefinition(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitStructDefinition(this); - } - } - - -} - - - -class ModifierDefinitionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_modifierDefinition; - } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - parameterList() { - return this.getTypedRuleContext(ParameterListContext,0); - }; - - VirtualKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.VirtualKeyword); - } else { - return this.getToken(SolidityParser.VirtualKeyword, i); - } - }; - - - overrideSpecifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(OverrideSpecifierContext); - } else { - return this.getTypedRuleContext(OverrideSpecifierContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterModifierDefinition(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitModifierDefinition(this); - } - } - - -} - - - -class ModifierInvocationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_modifierInvocation; + return localctx + } + + versionConstraint() { + let localctx = new VersionConstraintContext(this, this._ctx, this.state) + this.enterRule(localctx, 12, SolidityParser.RULE_versionConstraint) + var _la = 0 // Token type + try { + this.state = 223 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 6, this._ctx) + switch (la_) { + case 1: + this.enterOuterAlt(localctx, 1) + this.state = 216 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + (_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__2) | + (1 << SolidityParser.T__3) | + (1 << SolidityParser.T__4) | + (1 << SolidityParser.T__5) | + (1 << SolidityParser.T__6) | + (1 << SolidityParser.T__7) | + (1 << SolidityParser.T__8))) !== + 0 + ) { + this.state = 215 + this.versionOperator() + } + + this.state = 218 + this.match(SolidityParser.VersionLiteral) + break + + case 2: + this.enterOuterAlt(localctx, 2) + this.state = 220 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + (_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__2) | + (1 << SolidityParser.T__3) | + (1 << SolidityParser.T__4) | + (1 << SolidityParser.T__5) | + (1 << SolidityParser.T__6) | + (1 << SolidityParser.T__7) | + (1 << SolidityParser.T__8))) !== + 0 + ) { + this.state = 219 + this.versionOperator() + } + + this.state = 222 + this.match(SolidityParser.DecimalNumber) + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - expressionList() { - return this.getTypedRuleContext(ExpressionListContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterModifierInvocation(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitModifierInvocation(this); - } - } - - -} - - - -class FunctionDefinitionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_functionDefinition; + return localctx + } + + importDeclaration() { + let localctx = new ImportDeclarationContext(this, this._ctx, this.state) + this.enterRule(localctx, 14, SolidityParser.RULE_importDeclaration) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 225 + this.identifier() + this.state = 228 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__9) { + this.state = 226 + this.match(SolidityParser.T__9) + this.state = 227 + this.identifier() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - functionDescriptor() { - return this.getTypedRuleContext(FunctionDescriptorContext,0); - }; - - parameterList() { - return this.getTypedRuleContext(ParameterListContext,0); - }; - - modifierList() { - return this.getTypedRuleContext(ModifierListContext,0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - returnParameters() { - return this.getTypedRuleContext(ReturnParametersContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterFunctionDefinition(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitFunctionDefinition(this); - } - } - - -} - - - -class FunctionDescriptorContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_functionDescriptor; + return localctx + } + + importDirective() { + let localctx = new ImportDirectiveContext(this, this._ctx, this.state) + this.enterRule(localctx, 16, SolidityParser.RULE_importDirective) + var _la = 0 // Token type + try { + this.state = 264 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 12, this._ctx) + switch (la_) { + case 1: + this.enterOuterAlt(localctx, 1) + this.state = 230 + this.match(SolidityParser.T__10) + this.state = 231 + this.match(SolidityParser.StringLiteralFragment) + this.state = 234 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__9) { + this.state = 232 + this.match(SolidityParser.T__9) + this.state = 233 + this.identifier() + } + + this.state = 236 + this.match(SolidityParser.T__1) + break + + case 2: + this.enterOuterAlt(localctx, 2) + this.state = 237 + this.match(SolidityParser.T__10) + this.state = 240 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__11: + this.state = 238 + this.match(SolidityParser.T__11) + break + case SolidityParser.T__12: + case SolidityParser.T__39: + case SolidityParser.T__92: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + this.state = 239 + this.identifier() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 244 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__9) { + this.state = 242 + this.match(SolidityParser.T__9) + this.state = 243 + this.identifier() + } + + this.state = 246 + this.match(SolidityParser.T__12) + this.state = 247 + this.match(SolidityParser.StringLiteralFragment) + this.state = 248 + this.match(SolidityParser.T__1) + break + + case 3: + this.enterOuterAlt(localctx, 3) + this.state = 249 + this.match(SolidityParser.T__10) + this.state = 250 + this.match(SolidityParser.T__13) + this.state = 251 + this.importDeclaration() + this.state = 256 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 252 + this.match(SolidityParser.T__14) + this.state = 253 + this.importDeclaration() + this.state = 258 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 259 + this.match(SolidityParser.T__15) + this.state = 260 + this.match(SolidityParser.T__12) + this.state = 261 + this.match(SolidityParser.StringLiteralFragment) + this.state = 262 + this.match(SolidityParser.T__1) + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - ConstructorKeyword() { - return this.getToken(SolidityParser.ConstructorKeyword, 0); - }; - - FallbackKeyword() { - return this.getToken(SolidityParser.FallbackKeyword, 0); - }; - - ReceiveKeyword() { - return this.getToken(SolidityParser.ReceiveKeyword, 0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterFunctionDescriptor(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitFunctionDescriptor(this); - } - } - - -} - - - -class ReturnParametersContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_returnParameters; + return localctx + } + + contractDefinition() { + let localctx = new ContractDefinitionContext(this, this._ctx, this.state) + this.enterRule(localctx, 18, SolidityParser.RULE_contractDefinition) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 267 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__16) { + this.state = 266 + this.match(SolidityParser.T__16) + } + + this.state = 269 + _la = this._input.LA(1) + if ( + !( + (_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__17) | + (1 << SolidityParser.T__18) | + (1 << SolidityParser.T__19))) !== + 0 + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 270 + this.identifier() + this.state = 280 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__20) { + this.state = 271 + this.match(SolidityParser.T__20) + this.state = 272 + this.inheritanceSpecifier() + this.state = 277 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 273 + this.match(SolidityParser.T__14) + this.state = 274 + this.inheritanceSpecifier() + this.state = 279 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } + + this.state = 282 + this.match(SolidityParser.T__13) + this.state = 286 + this._errHandler.sync(this) + _la = this._input.LA(1) + while ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__12) | + (1 << SolidityParser.T__23) | + (1 << SolidityParser.T__25) | + (1 << SolidityParser.T__26) | + (1 << SolidityParser.T__27) | + (1 << SolidityParser.T__29) | + (1 << SolidityParser.T__30))) !== + 0) || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ConstructorKeyword - 93)) | + (1 << (SolidityParser.FallbackKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 283 + this.contractPart() + this.state = 288 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 289 + this.match(SolidityParser.T__15) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - parameterList() { - return this.getTypedRuleContext(ParameterListContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterReturnParameters(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitReturnParameters(this); - } - } - - -} - - - -class ModifierListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_modifierList; - } - - ExternalKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.ExternalKeyword); - } else { - return this.getToken(SolidityParser.ExternalKeyword, i); - } - }; - - - PublicKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.PublicKeyword); - } else { - return this.getToken(SolidityParser.PublicKeyword, i); - } - }; - - - InternalKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.InternalKeyword); - } else { - return this.getToken(SolidityParser.InternalKeyword, i); - } - }; - - - PrivateKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.PrivateKeyword); - } else { - return this.getToken(SolidityParser.PrivateKeyword, i); - } - }; - - - VirtualKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.VirtualKeyword); - } else { - return this.getToken(SolidityParser.VirtualKeyword, i); - } - }; - - - stateMutability = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(StateMutabilityContext); - } else { - return this.getTypedRuleContext(StateMutabilityContext,i); - } - }; - - modifierInvocation = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ModifierInvocationContext); - } else { - return this.getTypedRuleContext(ModifierInvocationContext,i); - } - }; - - overrideSpecifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(OverrideSpecifierContext); - } else { - return this.getTypedRuleContext(OverrideSpecifierContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterModifierList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitModifierList(this); - } - } - - -} - - - -class EventDefinitionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_eventDefinition; + return localctx + } + + inheritanceSpecifier() { + let localctx = new InheritanceSpecifierContext(this, this._ctx, this.state) + this.enterRule(localctx, 20, SolidityParser.RULE_inheritanceSpecifier) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 291 + this.userDefinedTypeName() + this.state = 297 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__21) { + this.state = 292 + this.match(SolidityParser.T__21) + this.state = 294 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 293 + this.expressionList() + } + + this.state = 296 + this.match(SolidityParser.T__22) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - eventParameterList() { - return this.getTypedRuleContext(EventParameterListContext,0); - }; - - AnonymousKeyword() { - return this.getToken(SolidityParser.AnonymousKeyword, 0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterEventDefinition(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitEventDefinition(this); - } - } - - -} - - - -class EnumValueContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_enumValue; + return localctx + } + + contractPart() { + let localctx = new ContractPartContext(this, this._ctx, this.state) + this.enterRule(localctx, 22, SolidityParser.RULE_contractPart) + try { + this.state = 306 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 19, this._ctx) + switch (la_) { + case 1: + this.enterOuterAlt(localctx, 1) + this.state = 299 + this.stateVariableDeclaration() + break + + case 2: + this.enterOuterAlt(localctx, 2) + this.state = 300 + this.usingForDeclaration() + break + + case 3: + this.enterOuterAlt(localctx, 3) + this.state = 301 + this.structDefinition() + break + + case 4: + this.enterOuterAlt(localctx, 4) + this.state = 302 + this.modifierDefinition() + break + + case 5: + this.enterOuterAlt(localctx, 5) + this.state = 303 + this.functionDefinition() + break + + case 6: + this.enterOuterAlt(localctx, 6) + this.state = 304 + this.eventDefinition() + break + + case 7: + this.enterOuterAlt(localctx, 7) + this.state = 305 + this.enumDefinition() + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterEnumValue(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitEnumValue(this); - } - } - - -} - - - -class EnumDefinitionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_enumDefinition; - } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - enumValue = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(EnumValueContext); - } else { - return this.getTypedRuleContext(EnumValueContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterEnumDefinition(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitEnumDefinition(this); - } - } - - -} - - - -class ParameterListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_parameterList; - } - - parameter = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ParameterContext); - } else { - return this.getTypedRuleContext(ParameterContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterParameterList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitParameterList(this); - } - } - - -} - - - -class ParameterContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_parameter; + return localctx + } + + stateVariableDeclaration() { + let localctx = new StateVariableDeclarationContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 24, SolidityParser.RULE_stateVariableDeclaration) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 308 + this.typeName(0) + this.state = 317 + this._errHandler.sync(this) + _la = this._input.LA(1) + while ( + ((_la - 94) & ~0x1f) == 0 && + ((1 << (_la - 94)) & + ((1 << (SolidityParser.T__93 - 94)) | + (1 << (SolidityParser.ConstantKeyword - 94)) | + (1 << (SolidityParser.ImmutableKeyword - 94)) | + (1 << (SolidityParser.InternalKeyword - 94)) | + (1 << (SolidityParser.PrivateKeyword - 94)) | + (1 << (SolidityParser.PublicKeyword - 94)))) !== + 0 + ) { + this.state = 315 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.PublicKeyword: + this.state = 309 + this.match(SolidityParser.PublicKeyword) + break + case SolidityParser.InternalKeyword: + this.state = 310 + this.match(SolidityParser.InternalKeyword) + break + case SolidityParser.PrivateKeyword: + this.state = 311 + this.match(SolidityParser.PrivateKeyword) + break + case SolidityParser.ConstantKeyword: + this.state = 312 + this.match(SolidityParser.ConstantKeyword) + break + case SolidityParser.ImmutableKeyword: + this.state = 313 + this.match(SolidityParser.ImmutableKeyword) + break + case SolidityParser.T__93: + this.state = 314 + this.overrideSpecifier() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 319 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 320 + this.identifier() + this.state = 323 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__8) { + this.state = 321 + this.match(SolidityParser.T__8) + this.state = 322 + this.expression(0) + } + + this.state = 325 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + fileLevelConstant() { + let localctx = new FileLevelConstantContext(this, this._ctx, this.state) + this.enterRule(localctx, 26, SolidityParser.RULE_fileLevelConstant) + try { + this.enterOuterAlt(localctx, 1) + this.state = 327 + this.typeName(0) + this.state = 328 + this.match(SolidityParser.ConstantKeyword) + this.state = 329 + this.identifier() + this.state = 330 + this.match(SolidityParser.T__8) + this.state = 331 + this.expression(0) + this.state = 332 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + usingForDeclaration() { + let localctx = new UsingForDeclarationContext(this, this._ctx, this.state) + this.enterRule(localctx, 28, SolidityParser.RULE_usingForDeclaration) + try { + this.enterOuterAlt(localctx, 1) + this.state = 334 + this.match(SolidityParser.T__23) + this.state = 335 + this.identifier() + this.state = 336 + this.match(SolidityParser.T__24) + this.state = 339 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__11: + this.state = 337 + this.match(SolidityParser.T__11) + break + case SolidityParser.T__12: + case SolidityParser.T__27: + case SolidityParser.T__33: + case SolidityParser.T__35: + case SolidityParser.T__39: + case SolidityParser.T__50: + case SolidityParser.T__51: + case SolidityParser.T__52: + case SolidityParser.T__53: + case SolidityParser.T__92: + case SolidityParser.Int: + case SolidityParser.Uint: + case SolidityParser.Byte: + case SolidityParser.Fixed: + case SolidityParser.Ufixed: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + this.state = 338 + this.typeName(0) + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 341 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + structDefinition() { + let localctx = new StructDefinitionContext(this, this._ctx, this.state) + this.enterRule(localctx, 30, SolidityParser.RULE_structDefinition) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 343 + this.match(SolidityParser.T__25) + this.state = 344 + this.identifier() + this.state = 345 + this.match(SolidityParser.T__13) + this.state = 356 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__27 || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 346 + this.variableDeclaration() + this.state = 347 + this.match(SolidityParser.T__1) + this.state = 353 + this._errHandler.sync(this) + _la = this._input.LA(1) + while ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__27 || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 348 + this.variableDeclaration() + this.state = 349 + this.match(SolidityParser.T__1) + this.state = 355 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } + + this.state = 358 + this.match(SolidityParser.T__15) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + modifierDefinition() { + let localctx = new ModifierDefinitionContext(this, this._ctx, this.state) + this.enterRule(localctx, 32, SolidityParser.RULE_modifierDefinition) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 360 + this.match(SolidityParser.T__26) + this.state = 361 + this.identifier() + this.state = 363 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__21) { + this.state = 362 + this.parameterList() + } + + this.state = 369 + this._errHandler.sync(this) + _la = this._input.LA(1) + while ( + _la === SolidityParser.T__93 || + _la === SolidityParser.VirtualKeyword + ) { + this.state = 367 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.VirtualKeyword: + this.state = 365 + this.match(SolidityParser.VirtualKeyword) + break + case SolidityParser.T__93: + this.state = 366 + this.overrideSpecifier() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 371 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 372 + this.block() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + modifierInvocation() { + let localctx = new ModifierInvocationContext(this, this._ctx, this.state) + this.enterRule(localctx, 34, SolidityParser.RULE_modifierInvocation) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 374 + this.identifier() + this.state = 380 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__21) { + this.state = 375 + this.match(SolidityParser.T__21) + this.state = 377 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 376 + this.expressionList() + } + + this.state = 379 + this.match(SolidityParser.T__22) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + functionDefinition() { + let localctx = new FunctionDefinitionContext(this, this._ctx, this.state) + this.enterRule(localctx, 36, SolidityParser.RULE_functionDefinition) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 382 + this.functionDescriptor() + this.state = 383 + this.parameterList() + this.state = 384 + this.modifierList() + this.state = 386 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__28) { + this.state = 385 + this.returnParameters() + } + + this.state = 390 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__1: + this.state = 388 + this.match(SolidityParser.T__1) + break + case SolidityParser.T__13: + this.state = 389 + this.block() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + functionDescriptor() { + let localctx = new FunctionDescriptorContext(this, this._ctx, this.state) + this.enterRule(localctx, 38, SolidityParser.RULE_functionDescriptor) + var _la = 0 // Token type + try { + this.state = 399 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__27: + this.enterOuterAlt(localctx, 1) + this.state = 392 + this.match(SolidityParser.T__27) + this.state = 394 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 393 + this.identifier() + } + + break + case SolidityParser.ConstructorKeyword: + this.enterOuterAlt(localctx, 2) + this.state = 396 + this.match(SolidityParser.ConstructorKeyword) + break + case SolidityParser.FallbackKeyword: + this.enterOuterAlt(localctx, 3) + this.state = 397 + this.match(SolidityParser.FallbackKeyword) + break + case SolidityParser.ReceiveKeyword: + this.enterOuterAlt(localctx, 4) + this.state = 398 + this.match(SolidityParser.ReceiveKeyword) + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + returnParameters() { + let localctx = new ReturnParametersContext(this, this._ctx, this.state) + this.enterRule(localctx, 40, SolidityParser.RULE_returnParameters) + try { + this.enterOuterAlt(localctx, 1) + this.state = 401 + this.match(SolidityParser.T__28) + this.state = 402 + this.parameterList() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + modifierList() { + let localctx = new ModifierListContext(this, this._ctx, this.state) + this.enterRule(localctx, 42, SolidityParser.RULE_modifierList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 414 + this._errHandler.sync(this) + _la = this._input.LA(1) + while ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.T__93 - 93)) | + (1 << (SolidityParser.ConstantKeyword - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.ExternalKeyword - 93)) | + (1 << (SolidityParser.InternalKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.PrivateKeyword - 93)) | + (1 << (SolidityParser.PublicKeyword - 93)) | + (1 << (SolidityParser.VirtualKeyword - 93)) | + (1 << (SolidityParser.PureKeyword - 93)) | + (1 << (SolidityParser.ViewKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 412 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 35, this._ctx) + switch (la_) { + case 1: + this.state = 404 + this.match(SolidityParser.ExternalKeyword) + break + + case 2: + this.state = 405 + this.match(SolidityParser.PublicKeyword) + break + + case 3: + this.state = 406 + this.match(SolidityParser.InternalKeyword) + break + + case 4: + this.state = 407 + this.match(SolidityParser.PrivateKeyword) + break + + case 5: + this.state = 408 + this.match(SolidityParser.VirtualKeyword) + break + + case 6: + this.state = 409 + this.stateMutability() + break + + case 7: + this.state = 410 + this.modifierInvocation() + break + + case 8: + this.state = 411 + this.overrideSpecifier() + break + } + this.state = 416 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + eventDefinition() { + let localctx = new EventDefinitionContext(this, this._ctx, this.state) + this.enterRule(localctx, 44, SolidityParser.RULE_eventDefinition) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 417 + this.match(SolidityParser.T__29) + this.state = 418 + this.identifier() + this.state = 419 + this.eventParameterList() + this.state = 421 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.AnonymousKeyword) { + this.state = 420 + this.match(SolidityParser.AnonymousKeyword) + } + + this.state = 423 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + enumValue() { + let localctx = new EnumValueContext(this, this._ctx, this.state) + this.enterRule(localctx, 46, SolidityParser.RULE_enumValue) + try { + this.enterOuterAlt(localctx, 1) + this.state = 425 + this.identifier() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + enumDefinition() { + let localctx = new EnumDefinitionContext(this, this._ctx, this.state) + this.enterRule(localctx, 48, SolidityParser.RULE_enumDefinition) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 427 + this.match(SolidityParser.T__30) + this.state = 428 + this.identifier() + this.state = 429 + this.match(SolidityParser.T__13) + this.state = 431 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 430 + this.enumValue() + } + + this.state = 437 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 433 + this.match(SolidityParser.T__14) + this.state = 434 + this.enumValue() + this.state = 439 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 440 + this.match(SolidityParser.T__15) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + parameterList() { + let localctx = new ParameterListContext(this, this._ctx, this.state) + this.enterRule(localctx, 50, SolidityParser.RULE_parameterList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 442 + this.match(SolidityParser.T__21) + this.state = 451 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__27 || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 443 + this.parameter() + this.state = 448 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 444 + this.match(SolidityParser.T__14) + this.state = 445 + this.parameter() + this.state = 450 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } + + this.state = 453 + this.match(SolidityParser.T__22) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + parameter() { + let localctx = new ParameterContext(this, this._ctx, this.state) + this.enterRule(localctx, 52, SolidityParser.RULE_parameter) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 455 + this.typeName(0) + this.state = 457 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 42, this._ctx) + if (la_ === 1) { + this.state = 456 + this.storageLocation() + } + this.state = 460 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 459 + this.identifier() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + eventParameterList() { + let localctx = new EventParameterListContext(this, this._ctx, this.state) + this.enterRule(localctx, 54, SolidityParser.RULE_eventParameterList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 462 + this.match(SolidityParser.T__21) + this.state = 471 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__27 || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 463 + this.eventParameter() + this.state = 468 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 464 + this.match(SolidityParser.T__14) + this.state = 465 + this.eventParameter() + this.state = 470 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } + + this.state = 473 + this.match(SolidityParser.T__22) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + eventParameter() { + let localctx = new EventParameterContext(this, this._ctx, this.state) + this.enterRule(localctx, 56, SolidityParser.RULE_eventParameter) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 475 + this.typeName(0) + this.state = 477 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.IndexedKeyword) { + this.state = 476 + this.match(SolidityParser.IndexedKeyword) + } + + this.state = 480 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 479 + this.identifier() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - storageLocation() { - return this.getTypedRuleContext(StorageLocationContext,0); - }; - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterParameter(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitParameter(this); - } - } - - -} - - - -class EventParameterListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_eventParameterList; - } - - eventParameter = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(EventParameterContext); - } else { - return this.getTypedRuleContext(EventParameterContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterEventParameterList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitEventParameterList(this); - } - } - - -} - - - -class EventParameterContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_eventParameter; + return localctx + } + + functionTypeParameterList() { + let localctx = new FunctionTypeParameterListContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 58, SolidityParser.RULE_functionTypeParameterList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 482 + this.match(SolidityParser.T__21) + this.state = 491 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__27 || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 483 + this.functionTypeParameter() + this.state = 488 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 484 + this.match(SolidityParser.T__14) + this.state = 485 + this.functionTypeParameter() + this.state = 490 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } + + this.state = 493 + this.match(SolidityParser.T__22) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - IndexedKeyword() { - return this.getToken(SolidityParser.IndexedKeyword, 0); - }; - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterEventParameter(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitEventParameter(this); - } - } - - -} - - - -class FunctionTypeParameterListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_functionTypeParameterList; - } - - functionTypeParameter = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(FunctionTypeParameterContext); - } else { - return this.getTypedRuleContext(FunctionTypeParameterContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterFunctionTypeParameterList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitFunctionTypeParameterList(this); - } - } - - -} - - - -class FunctionTypeParameterContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_functionTypeParameter; + return localctx + } + + functionTypeParameter() { + let localctx = new FunctionTypeParameterContext(this, this._ctx, this.state) + this.enterRule(localctx, 60, SolidityParser.RULE_functionTypeParameter) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 495 + this.typeName(0) + this.state = 497 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la - 38) & ~0x1f) == 0 && + ((1 << (_la - 38)) & + ((1 << (SolidityParser.T__37 - 38)) | + (1 << (SolidityParser.T__38 - 38)) | + (1 << (SolidityParser.T__39 - 38)))) !== + 0 + ) { + this.state = 496 + this.storageLocation() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - storageLocation() { - return this.getTypedRuleContext(StorageLocationContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterFunctionTypeParameter(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitFunctionTypeParameter(this); - } - } - - -} - - - -class VariableDeclarationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_variableDeclaration; + return localctx + } + + variableDeclaration() { + let localctx = new VariableDeclarationContext(this, this._ctx, this.state) + this.enterRule(localctx, 62, SolidityParser.RULE_variableDeclaration) + try { + this.enterOuterAlt(localctx, 1) + this.state = 499 + this.typeName(0) + this.state = 501 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 51, this._ctx) + if (la_ === 1) { + this.state = 500 + this.storageLocation() + } + this.state = 503 + this.identifier() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } + return localctx + } - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - storageLocation() { - return this.getTypedRuleContext(StorageLocationContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterVariableDeclaration(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitVariableDeclaration(this); - } - } - - -} - - - -class TypeNameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_typeName; + typeName(_p) { + if (_p === undefined) { + _p = 0 } - - elementaryTypeName() { - return this.getTypedRuleContext(ElementaryTypeNameContext,0); - }; - - userDefinedTypeName() { - return this.getTypedRuleContext(UserDefinedTypeNameContext,0); - }; - - mapping() { - return this.getTypedRuleContext(MappingContext,0); - }; - - functionTypeName() { - return this.getTypedRuleContext(FunctionTypeNameContext,0); - }; - - PayableKeyword() { - return this.getToken(SolidityParser.PayableKeyword, 0); - }; - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterTypeName(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitTypeName(this); - } - } - - -} - - - -class UserDefinedTypeNameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_userDefinedTypeName; - } - - identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterUserDefinedTypeName(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitUserDefinedTypeName(this); - } - } - - -} - - - -class MappingKeyContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_mappingKey; + const _parentctx = this._ctx + const _parentState = this.state + let localctx = new TypeNameContext(this, this._ctx, _parentState) + let _prevctx = localctx + const _startState = 64 + this.enterRecursionRule(localctx, 64, SolidityParser.RULE_typeName, _p) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 512 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 52, this._ctx) + switch (la_) { + case 1: + this.state = 506 + this.elementaryTypeName() + break + + case 2: + this.state = 507 + this.userDefinedTypeName() + break + + case 3: + this.state = 508 + this.mapping() + break + + case 4: + this.state = 509 + this.functionTypeName() + break + + case 5: + this.state = 510 + this.match(SolidityParser.T__33) + this.state = 511 + this.match(SolidityParser.PayableKeyword) + break + } + this._ctx.stop = this._input.LT(-1) + this.state = 522 + this._errHandler.sync(this) + let _alt = this._interp.adaptivePredict(this._input, 54, this._ctx) + while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners !== null) { + this.triggerExitRuleEvent() + } + _prevctx = localctx + localctx = new TypeNameContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_typeName + ) + this.state = 514 + if (!this.precpred(this._ctx, 3)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 3)' + ) + } + this.state = 515 + this.match(SolidityParser.T__31) + this.state = 517 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 516 + this.expression(0) + } + + this.state = 519 + this.match(SolidityParser.T__32) + } + this.state = 524 + this._errHandler.sync(this) + _alt = this._interp.adaptivePredict(this._input, 54, this._ctx) + } + } catch (error) { + if (error instanceof antlr4.error.RecognitionException) { + localctx.exception = error + this._errHandler.reportError(this, error) + this._errHandler.recover(this, error) + } else { + throw error + } + } finally { + this.unrollRecursionContexts(_parentctx) } - - elementaryTypeName() { - return this.getTypedRuleContext(ElementaryTypeNameContext,0); - }; - - userDefinedTypeName() { - return this.getTypedRuleContext(UserDefinedTypeNameContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterMappingKey(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitMappingKey(this); - } - } - - -} - - - -class MappingContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_mapping; + return localctx + } + + userDefinedTypeName() { + let localctx = new UserDefinedTypeNameContext(this, this._ctx, this.state) + this.enterRule(localctx, 66, SolidityParser.RULE_userDefinedTypeName) + try { + this.enterOuterAlt(localctx, 1) + this.state = 525 + this.identifier() + this.state = 530 + this._errHandler.sync(this) + let _alt = this._interp.adaptivePredict(this._input, 55, this._ctx) + while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + this.state = 526 + this.match(SolidityParser.T__34) + this.state = 527 + this.identifier() + } + this.state = 532 + this._errHandler.sync(this) + _alt = this._interp.adaptivePredict(this._input, 55, this._ctx) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - mappingKey() { - return this.getTypedRuleContext(MappingKeyContext,0); - }; - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterMapping(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitMapping(this); - } - } - - -} - - - -class FunctionTypeNameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_functionTypeName; - } - - functionTypeParameterList = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(FunctionTypeParameterListContext); - } else { - return this.getTypedRuleContext(FunctionTypeParameterListContext,i); - } - }; - - InternalKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.InternalKeyword); - } else { - return this.getToken(SolidityParser.InternalKeyword, i); - } - }; - - - ExternalKeyword = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.ExternalKeyword); - } else { - return this.getToken(SolidityParser.ExternalKeyword, i); - } - }; - - - stateMutability = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(StateMutabilityContext); - } else { - return this.getTypedRuleContext(StateMutabilityContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterFunctionTypeName(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitFunctionTypeName(this); - } - } - - -} - - - -class StorageLocationContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_storageLocation; + return localctx + } + + mappingKey() { + let localctx = new MappingKeyContext(this, this._ctx, this.state) + this.enterRule(localctx, 68, SolidityParser.RULE_mappingKey) + try { + this.state = 535 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__33: + case SolidityParser.T__50: + case SolidityParser.T__51: + case SolidityParser.T__52: + case SolidityParser.T__53: + case SolidityParser.Int: + case SolidityParser.Uint: + case SolidityParser.Byte: + case SolidityParser.Fixed: + case SolidityParser.Ufixed: + this.enterOuterAlt(localctx, 1) + this.state = 533 + this.elementaryTypeName() + break + case SolidityParser.T__12: + case SolidityParser.T__39: + case SolidityParser.T__92: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + this.enterOuterAlt(localctx, 2) + this.state = 534 + this.userDefinedTypeName() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterStorageLocation(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitStorageLocation(this); - } - } - - -} - - - -class StateMutabilityContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_stateMutability; + return localctx + } + + mapping() { + let localctx = new MappingContext(this, this._ctx, this.state) + this.enterRule(localctx, 70, SolidityParser.RULE_mapping) + try { + this.enterOuterAlt(localctx, 1) + this.state = 537 + this.match(SolidityParser.T__35) + this.state = 538 + this.match(SolidityParser.T__21) + this.state = 539 + this.mappingKey() + this.state = 540 + this.match(SolidityParser.T__36) + this.state = 541 + this.typeName(0) + this.state = 542 + this.match(SolidityParser.T__22) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - PureKeyword() { - return this.getToken(SolidityParser.PureKeyword, 0); - }; - - ConstantKeyword() { - return this.getToken(SolidityParser.ConstantKeyword, 0); - }; - - ViewKeyword() { - return this.getToken(SolidityParser.ViewKeyword, 0); - }; - - PayableKeyword() { - return this.getToken(SolidityParser.PayableKeyword, 0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterStateMutability(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitStateMutability(this); - } - } - - -} - - - -class BlockContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_block; - } - - statement = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(StatementContext); - } else { - return this.getTypedRuleContext(StatementContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterBlock(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitBlock(this); - } - } - - -} - - - -class StatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_statement; + return localctx + } + + functionTypeName() { + let localctx = new FunctionTypeNameContext(this, this._ctx, this.state) + this.enterRule(localctx, 72, SolidityParser.RULE_functionTypeName) + try { + this.enterOuterAlt(localctx, 1) + this.state = 544 + this.match(SolidityParser.T__27) + this.state = 545 + this.functionTypeParameterList() + this.state = 551 + this._errHandler.sync(this) + let _alt = this._interp.adaptivePredict(this._input, 58, this._ctx) + while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + this.state = 549 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.InternalKeyword: + this.state = 546 + this.match(SolidityParser.InternalKeyword) + break + case SolidityParser.ExternalKeyword: + this.state = 547 + this.match(SolidityParser.ExternalKeyword) + break + case SolidityParser.ConstantKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.PureKeyword: + case SolidityParser.ViewKeyword: + this.state = 548 + this.stateMutability() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } + this.state = 553 + this._errHandler.sync(this) + _alt = this._interp.adaptivePredict(this._input, 58, this._ctx) + } + + this.state = 556 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 59, this._ctx) + if (la_ === 1) { + this.state = 554 + this.match(SolidityParser.T__28) + this.state = 555 + this.functionTypeParameterList() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - ifStatement() { - return this.getTypedRuleContext(IfStatementContext,0); - }; - - tryStatement() { - return this.getTypedRuleContext(TryStatementContext,0); - }; - - whileStatement() { - return this.getTypedRuleContext(WhileStatementContext,0); - }; - - forStatement() { - return this.getTypedRuleContext(ForStatementContext,0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - inlineAssemblyStatement() { - return this.getTypedRuleContext(InlineAssemblyStatementContext,0); - }; - - doWhileStatement() { - return this.getTypedRuleContext(DoWhileStatementContext,0); - }; - - continueStatement() { - return this.getTypedRuleContext(ContinueStatementContext,0); - }; - - breakStatement() { - return this.getTypedRuleContext(BreakStatementContext,0); - }; - - returnStatement() { - return this.getTypedRuleContext(ReturnStatementContext,0); - }; - - throwStatement() { - return this.getTypedRuleContext(ThrowStatementContext,0); - }; - - emitStatement() { - return this.getTypedRuleContext(EmitStatementContext,0); - }; - - simpleStatement() { - return this.getTypedRuleContext(SimpleStatementContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitStatement(this); - } - } - - -} - - - -class ExpressionStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_expressionStatement; + return localctx + } + + storageLocation() { + let localctx = new StorageLocationContext(this, this._ctx, this.state) + this.enterRule(localctx, 74, SolidityParser.RULE_storageLocation) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 558 + _la = this._input.LA(1) + if ( + !( + ((_la - 38) & ~0x1f) == 0 && + ((1 << (_la - 38)) & + ((1 << (SolidityParser.T__37 - 38)) | + (1 << (SolidityParser.T__38 - 38)) | + (1 << (SolidityParser.T__39 - 38)))) !== + 0 + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterExpressionStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitExpressionStatement(this); - } - } - - -} - - - -class IfStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_ifStatement; - } - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - statement = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(StatementContext); - } else { - return this.getTypedRuleContext(StatementContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterIfStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitIfStatement(this); - } - } - - -} - - - -class TryStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_tryStatement; - } - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - returnParameters() { - return this.getTypedRuleContext(ReturnParametersContext,0); - }; - - catchClause = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(CatchClauseContext); - } else { - return this.getTypedRuleContext(CatchClauseContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterTryStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitTryStatement(this); - } - } - - -} - - - -class CatchClauseContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_catchClause; + return localctx + } + + stateMutability() { + let localctx = new StateMutabilityContext(this, this._ctx, this.state) + this.enterRule(localctx, 76, SolidityParser.RULE_stateMutability) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 560 + _la = this._input.LA(1) + if ( + !( + ((_la - 108) & ~0x1f) == 0 && + ((1 << (_la - 108)) & + ((1 << (SolidityParser.ConstantKeyword - 108)) | + (1 << (SolidityParser.PayableKeyword - 108)) | + (1 << (SolidityParser.PureKeyword - 108)) | + (1 << (SolidityParser.ViewKeyword - 108)))) !== + 0 + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + block() { + let localctx = new BlockContext(this, this._ctx, this.state) + this.enterRule(localctx, 78, SolidityParser.RULE_block) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 562 + this.match(SolidityParser.T__13) + this.state = 566 + this._errHandler.sync(this) + _la = this._input.LA(1) + while ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__13) | + (1 << SolidityParser.T__21) | + (1 << SolidityParser.T__24) | + (1 << SolidityParser.T__27))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__35 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__40 - 32)) | + (1 << (SolidityParser.T__42 - 32)) | + (1 << (SolidityParser.T__44 - 32)) | + (1 << (SolidityParser.T__45 - 32)) | + (1 << (SolidityParser.T__46 - 32)) | + (1 << (SolidityParser.T__47 - 32)) | + (1 << (SolidityParser.T__48 - 32)) | + (1 << (SolidityParser.T__49 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.BreakKeyword - 93)) | + (1 << (SolidityParser.ContinueKeyword - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 563 + this.statement() + this.state = 568 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 569 + this.match(SolidityParser.T__15) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + statement() { + let localctx = new StatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 80, SolidityParser.RULE_statement) + try { + this.state = 584 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__40: + this.enterOuterAlt(localctx, 1) + this.state = 571 + this.ifStatement() + break + case SolidityParser.T__42: + this.enterOuterAlt(localctx, 2) + this.state = 572 + this.tryStatement() + break + case SolidityParser.T__44: + this.enterOuterAlt(localctx, 3) + this.state = 573 + this.whileStatement() + break + case SolidityParser.T__24: + this.enterOuterAlt(localctx, 4) + this.state = 574 + this.forStatement() + break + case SolidityParser.T__13: + this.enterOuterAlt(localctx, 5) + this.state = 575 + this.block() + break + case SolidityParser.T__45: + this.enterOuterAlt(localctx, 6) + this.state = 576 + this.inlineAssemblyStatement() + break + case SolidityParser.T__46: + this.enterOuterAlt(localctx, 7) + this.state = 577 + this.doWhileStatement() + break + case SolidityParser.ContinueKeyword: + this.enterOuterAlt(localctx, 8) + this.state = 578 + this.continueStatement() + break + case SolidityParser.BreakKeyword: + this.enterOuterAlt(localctx, 9) + this.state = 579 + this.breakStatement() + break + case SolidityParser.T__47: + this.enterOuterAlt(localctx, 10) + this.state = 580 + this.returnStatement() + break + case SolidityParser.T__48: + this.enterOuterAlt(localctx, 11) + this.state = 581 + this.throwStatement() + break + case SolidityParser.T__49: + this.enterOuterAlt(localctx, 12) + this.state = 582 + this.emitStatement() + break + case SolidityParser.T__3: + case SolidityParser.T__12: + case SolidityParser.T__21: + case SolidityParser.T__27: + case SolidityParser.T__31: + case SolidityParser.T__33: + case SolidityParser.T__35: + case SolidityParser.T__39: + case SolidityParser.T__50: + case SolidityParser.T__51: + case SolidityParser.T__52: + case SolidityParser.T__53: + case SolidityParser.T__54: + case SolidityParser.T__55: + case SolidityParser.T__56: + case SolidityParser.T__58: + case SolidityParser.T__59: + case SolidityParser.T__60: + case SolidityParser.T__61: + case SolidityParser.T__62: + case SolidityParser.T__92: + case SolidityParser.Int: + case SolidityParser.Uint: + case SolidityParser.Byte: + case SolidityParser.Fixed: + case SolidityParser.Ufixed: + case SolidityParser.BooleanLiteral: + case SolidityParser.DecimalNumber: + case SolidityParser.HexNumber: + case SolidityParser.HexLiteralFragment: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.TypeKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + case SolidityParser.StringLiteralFragment: + this.enterOuterAlt(localctx, 13) + this.state = 583 + this.simpleStatement() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + expressionStatement() { + let localctx = new ExpressionStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 82, SolidityParser.RULE_expressionStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 586 + this.expression(0) + this.state = 587 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + ifStatement() { + let localctx = new IfStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 84, SolidityParser.RULE_ifStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 589 + this.match(SolidityParser.T__40) + this.state = 590 + this.match(SolidityParser.T__21) + this.state = 591 + this.expression(0) + this.state = 592 + this.match(SolidityParser.T__22) + this.state = 593 + this.statement() + this.state = 596 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 62, this._ctx) + if (la_ === 1) { + this.state = 594 + this.match(SolidityParser.T__41) + this.state = 595 + this.statement() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + tryStatement() { + let localctx = new TryStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 86, SolidityParser.RULE_tryStatement) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 598 + this.match(SolidityParser.T__42) + this.state = 599 + this.expression(0) + this.state = 601 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__28) { + this.state = 600 + this.returnParameters() + } + + this.state = 603 + this.block() + this.state = 605 + this._errHandler.sync(this) + _la = this._input.LA(1) + do { + this.state = 604 + this.catchClause() + this.state = 607 + this._errHandler.sync(this) + _la = this._input.LA(1) + } while (_la === SolidityParser.T__43) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + catchClause() { + let localctx = new CatchClauseContext(this, this._ctx, this.state) + this.enterRule(localctx, 88, SolidityParser.RULE_catchClause) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 609 + this.match(SolidityParser.T__43) + this.state = 614 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + (((_la - 13) & ~0x1f) == 0 && + ((1 << (_la - 13)) & + ((1 << (SolidityParser.T__12 - 13)) | + (1 << (SolidityParser.T__21 - 13)) | + (1 << (SolidityParser.T__39 - 13)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 611 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 610 + this.identifier() + } + + this.state = 613 + this.parameterList() + } + + this.state = 616 + this.block() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + whileStatement() { + let localctx = new WhileStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 90, SolidityParser.RULE_whileStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 618 + this.match(SolidityParser.T__44) + this.state = 619 + this.match(SolidityParser.T__21) + this.state = 620 + this.expression(0) + this.state = 621 + this.match(SolidityParser.T__22) + this.state = 622 + this.statement() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + simpleStatement() { + let localctx = new SimpleStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 92, SolidityParser.RULE_simpleStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 626 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 67, this._ctx) + switch (la_) { + case 1: + this.state = 624 + this.variableDeclarationStatement() + break + + case 2: + this.state = 625 + this.expressionStatement() + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + forStatement() { + let localctx = new ForStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 94, SolidityParser.RULE_forStatement) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 628 + this.match(SolidityParser.T__24) + this.state = 629 + this.match(SolidityParser.T__21) + this.state = 632 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__3: + case SolidityParser.T__12: + case SolidityParser.T__21: + case SolidityParser.T__27: + case SolidityParser.T__31: + case SolidityParser.T__33: + case SolidityParser.T__35: + case SolidityParser.T__39: + case SolidityParser.T__50: + case SolidityParser.T__51: + case SolidityParser.T__52: + case SolidityParser.T__53: + case SolidityParser.T__54: + case SolidityParser.T__55: + case SolidityParser.T__56: + case SolidityParser.T__58: + case SolidityParser.T__59: + case SolidityParser.T__60: + case SolidityParser.T__61: + case SolidityParser.T__62: + case SolidityParser.T__92: + case SolidityParser.Int: + case SolidityParser.Uint: + case SolidityParser.Byte: + case SolidityParser.Fixed: + case SolidityParser.Ufixed: + case SolidityParser.BooleanLiteral: + case SolidityParser.DecimalNumber: + case SolidityParser.HexNumber: + case SolidityParser.HexLiteralFragment: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.TypeKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + case SolidityParser.StringLiteralFragment: + this.state = 630 + this.simpleStatement() + break + case SolidityParser.T__1: + this.state = 631 + this.match(SolidityParser.T__1) + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 636 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__3: + case SolidityParser.T__12: + case SolidityParser.T__21: + case SolidityParser.T__31: + case SolidityParser.T__33: + case SolidityParser.T__39: + case SolidityParser.T__50: + case SolidityParser.T__51: + case SolidityParser.T__52: + case SolidityParser.T__53: + case SolidityParser.T__54: + case SolidityParser.T__55: + case SolidityParser.T__56: + case SolidityParser.T__58: + case SolidityParser.T__59: + case SolidityParser.T__60: + case SolidityParser.T__61: + case SolidityParser.T__62: + case SolidityParser.T__92: + case SolidityParser.Int: + case SolidityParser.Uint: + case SolidityParser.Byte: + case SolidityParser.Fixed: + case SolidityParser.Ufixed: + case SolidityParser.BooleanLiteral: + case SolidityParser.DecimalNumber: + case SolidityParser.HexNumber: + case SolidityParser.HexLiteralFragment: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.TypeKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + case SolidityParser.StringLiteralFragment: + this.state = 634 + this.expressionStatement() + break + case SolidityParser.T__1: + this.state = 635 + this.match(SolidityParser.T__1) + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 639 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 638 + this.expression(0) + } + + this.state = 641 + this.match(SolidityParser.T__22) + this.state = 642 + this.statement() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + inlineAssemblyStatement() { + let localctx = new InlineAssemblyStatementContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 96, SolidityParser.RULE_inlineAssemblyStatement) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 644 + this.match(SolidityParser.T__45) + this.state = 646 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.StringLiteralFragment) { + this.state = 645 + this.match(SolidityParser.StringLiteralFragment) + } + + this.state = 648 + this.assemblyBlock() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - block() { - return this.getTypedRuleContext(BlockContext,0); - }; - - parameterList() { - return this.getTypedRuleContext(ParameterListContext,0); - }; - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterCatchClause(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitCatchClause(this); - } - } - - -} - - - -class WhileStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_whileStatement; + return localctx + } + + doWhileStatement() { + let localctx = new DoWhileStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 98, SolidityParser.RULE_doWhileStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 650 + this.match(SolidityParser.T__46) + this.state = 651 + this.statement() + this.state = 652 + this.match(SolidityParser.T__44) + this.state = 653 + this.match(SolidityParser.T__21) + this.state = 654 + this.expression(0) + this.state = 655 + this.match(SolidityParser.T__22) + this.state = 656 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - statement() { - return this.getTypedRuleContext(StatementContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterWhileStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitWhileStatement(this); - } - } - - -} - - - -class SimpleStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_simpleStatement; + return localctx + } + + continueStatement() { + let localctx = new ContinueStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 100, SolidityParser.RULE_continueStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 658 + this.match(SolidityParser.ContinueKeyword) + this.state = 659 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - variableDeclarationStatement() { - return this.getTypedRuleContext(VariableDeclarationStatementContext,0); - }; - - expressionStatement() { - return this.getTypedRuleContext(ExpressionStatementContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterSimpleStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitSimpleStatement(this); - } - } - - -} - - - -class ForStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_forStatement; + return localctx + } + + breakStatement() { + let localctx = new BreakStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 102, SolidityParser.RULE_breakStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 661 + this.match(SolidityParser.BreakKeyword) + this.state = 662 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - statement() { - return this.getTypedRuleContext(StatementContext,0); - }; - - simpleStatement() { - return this.getTypedRuleContext(SimpleStatementContext,0); - }; - - expressionStatement() { - return this.getTypedRuleContext(ExpressionStatementContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterForStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitForStatement(this); - } - } - - -} - - - -class InlineAssemblyStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_inlineAssemblyStatement; + return localctx + } + + returnStatement() { + let localctx = new ReturnStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 104, SolidityParser.RULE_returnStatement) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 664 + this.match(SolidityParser.T__47) + this.state = 666 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 665 + this.expression(0) + } + + this.state = 668 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - assemblyBlock() { - return this.getTypedRuleContext(AssemblyBlockContext,0); - }; - - StringLiteralFragment() { - return this.getToken(SolidityParser.StringLiteralFragment, 0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterInlineAssemblyStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitInlineAssemblyStatement(this); - } - } - - -} - - - -class DoWhileStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_doWhileStatement; + return localctx + } + + throwStatement() { + let localctx = new ThrowStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 106, SolidityParser.RULE_throwStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 670 + this.match(SolidityParser.T__48) + this.state = 671 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - statement() { - return this.getTypedRuleContext(StatementContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterDoWhileStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitDoWhileStatement(this); - } - } - - -} - - - -class ContinueStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_continueStatement; + return localctx + } + + emitStatement() { + let localctx = new EmitStatementContext(this, this._ctx, this.state) + this.enterRule(localctx, 108, SolidityParser.RULE_emitStatement) + try { + this.enterOuterAlt(localctx, 1) + this.state = 673 + this.match(SolidityParser.T__49) + this.state = 674 + this.functionCall() + this.state = 675 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - ContinueKeyword() { - return this.getToken(SolidityParser.ContinueKeyword, 0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterContinueStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitContinueStatement(this); - } - } - - -} - - - -class BreakStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_breakStatement; + return localctx + } + + variableDeclarationStatement() { + let localctx = new VariableDeclarationStatementContext( + this, + this._ctx, + this.state + ) + this.enterRule( + localctx, + 110, + SolidityParser.RULE_variableDeclarationStatement + ) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 684 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 73, this._ctx) + switch (la_) { + case 1: + this.state = 677 + this.match(SolidityParser.T__50) + this.state = 678 + this.identifierList() + break + + case 2: + this.state = 679 + this.variableDeclaration() + break + + case 3: + this.state = 680 + this.match(SolidityParser.T__21) + this.state = 681 + this.variableDeclarationList() + this.state = 682 + this.match(SolidityParser.T__22) + break + } + this.state = 688 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__8) { + this.state = 686 + this.match(SolidityParser.T__8) + this.state = 687 + this.expression(0) + } + + this.state = 690 + this.match(SolidityParser.T__1) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - BreakKeyword() { - return this.getToken(SolidityParser.BreakKeyword, 0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterBreakStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitBreakStatement(this); - } - } - - -} - - - -class ReturnStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_returnStatement; + return localctx + } + + variableDeclarationList() { + let localctx = new VariableDeclarationListContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 112, SolidityParser.RULE_variableDeclarationList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 693 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__27 || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 692 + this.variableDeclaration() + } + + this.state = 701 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 695 + this.match(SolidityParser.T__14) + this.state = 697 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__27 || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__35 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 696 + this.variableDeclaration() + } + + this.state = 703 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterReturnStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitReturnStatement(this); - } - } - - -} - - - -class ThrowStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_throwStatement; + return localctx + } + + identifierList() { + let localctx = new IdentifierListContext(this, this._ctx, this.state) + this.enterRule(localctx, 114, SolidityParser.RULE_identifierList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 704 + this.match(SolidityParser.T__21) + this.state = 711 + this._errHandler.sync(this) + let _alt = this._interp.adaptivePredict(this._input, 79, this._ctx) + while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + this.state = 706 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 705 + this.identifier() + } + + this.state = 708 + this.match(SolidityParser.T__14) + } + this.state = 713 + this._errHandler.sync(this) + _alt = this._interp.adaptivePredict(this._input, 79, this._ctx) + } + + this.state = 715 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 714 + this.identifier() + } + + this.state = 717 + this.match(SolidityParser.T__22) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } - - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterThrowStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitThrowStatement(this); - } - } - - -} - - - -class EmitStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_emitStatement; + return localctx + } + + elementaryTypeName() { + let localctx = new ElementaryTypeNameContext(this, this._ctx, this.state) + this.enterRule(localctx, 116, SolidityParser.RULE_elementaryTypeName) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 719 + _la = this._input.LA(1) + if ( + !( + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__50 - 34)) | + (1 << (SolidityParser.T__51 - 34)) | + (1 << (SolidityParser.T__52 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 95) & ~0x1f) == 0 && + ((1 << (_la - 95)) & + ((1 << (SolidityParser.Int - 95)) | + (1 << (SolidityParser.Uint - 95)) | + (1 << (SolidityParser.Byte - 95)) | + (1 << (SolidityParser.Fixed - 95)) | + (1 << (SolidityParser.Ufixed - 95)))) !== + 0) + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } + return localctx + } - functionCall() { - return this.getTypedRuleContext(FunctionCallContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterEmitStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitEmitStatement(this); - } - } - - -} - - - -class VariableDeclarationStatementContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_variableDeclarationStatement; + expression(_p) { + if (_p === undefined) { + _p = 0 } - - identifierList() { - return this.getTypedRuleContext(IdentifierListContext,0); - }; - - variableDeclaration() { - return this.getTypedRuleContext(VariableDeclarationContext,0); - }; - - variableDeclarationList() { - return this.getTypedRuleContext(VariableDeclarationListContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterVariableDeclarationStatement(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitVariableDeclarationStatement(this); - } - } - - -} - - - -class VariableDeclarationListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_variableDeclarationList; - } - - variableDeclaration = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(VariableDeclarationContext); - } else { - return this.getTypedRuleContext(VariableDeclarationContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterVariableDeclarationList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitVariableDeclarationList(this); - } - } - - -} - - - -class IdentifierListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_identifierList; - } - - identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterIdentifierList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitIdentifierList(this); - } - } - - -} - - - -class ElementaryTypeNameContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_elementaryTypeName; + const _parentctx = this._ctx + const _parentState = this.state + let localctx = new ExpressionContext(this, this._ctx, _parentState) + let _prevctx = localctx + const _startState = 118 + this.enterRecursionRule(localctx, 118, SolidityParser.RULE_expression, _p) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 739 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 81, this._ctx) + switch (la_) { + case 1: + this.state = 722 + this.match(SolidityParser.T__56) + this.state = 723 + this.typeName(0) + break + + case 2: + this.state = 724 + this.match(SolidityParser.T__21) + this.state = 725 + this.expression(0) + this.state = 726 + this.match(SolidityParser.T__22) + break + + case 3: + this.state = 728 + _la = this._input.LA(1) + if (!(_la === SolidityParser.T__54 || _la === SolidityParser.T__55)) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 729 + this.expression(19) + break + + case 4: + this.state = 730 + _la = this._input.LA(1) + if (!(_la === SolidityParser.T__58 || _la === SolidityParser.T__59)) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 731 + this.expression(18) + break + + case 5: + this.state = 732 + _la = this._input.LA(1) + if (!(_la === SolidityParser.T__60 || _la === SolidityParser.T__61)) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 733 + this.expression(17) + break + + case 6: + this.state = 734 + this.match(SolidityParser.T__62) + this.state = 735 + this.expression(16) + break + + case 7: + this.state = 736 + this.match(SolidityParser.T__3) + this.state = 737 + this.expression(15) + break + + case 8: + this.state = 738 + this.primaryExpression() + break + } + this._ctx.stop = this._input.LT(-1) + this.state = 816 + this._errHandler.sync(this) + let _alt = this._interp.adaptivePredict(this._input, 86, this._ctx) + while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners !== null) { + this.triggerExitRuleEvent() + } + _prevctx = localctx + this.state = 814 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 85, this._ctx) + switch (la_) { + case 1: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 741 + if (!this.precpred(this._ctx, 14)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 14)' + ) + } + this.state = 742 + this.match(SolidityParser.T__63) + this.state = 743 + this.expression(15) + break + + case 2: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 744 + if (!this.precpred(this._ctx, 13)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 13)' + ) + } + this.state = 745 + _la = this._input.LA(1) + if ( + !( + _la === SolidityParser.T__11 || + _la === SolidityParser.T__64 || + _la === SolidityParser.T__65 + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 746 + this.expression(14) + break + + case 3: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 747 + if (!this.precpred(this._ctx, 12)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 12)' + ) + } + this.state = 748 + _la = this._input.LA(1) + if ( + !(_la === SolidityParser.T__58 || _la === SolidityParser.T__59) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 749 + this.expression(13) + break + + case 4: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 750 + if (!this.precpred(this._ctx, 11)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 11)' + ) + } + this.state = 751 + _la = this._input.LA(1) + if ( + !(_la === SolidityParser.T__66 || _la === SolidityParser.T__67) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 752 + this.expression(12) + break + + case 5: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 753 + if (!this.precpred(this._ctx, 10)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 10)' + ) + } + this.state = 754 + this.match(SolidityParser.T__68) + this.state = 755 + this.expression(11) + break + + case 6: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 756 + if (!this.precpred(this._ctx, 9)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 9)' + ) + } + this.state = 757 + this.match(SolidityParser.T__2) + this.state = 758 + this.expression(10) + break + + case 7: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 759 + if (!this.precpred(this._ctx, 8)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 8)' + ) + } + this.state = 760 + this.match(SolidityParser.T__69) + this.state = 761 + this.expression(9) + break + + case 8: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 762 + if (!this.precpred(this._ctx, 7)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 7)' + ) + } + this.state = 763 + _la = this._input.LA(1) + if ( + !( + (_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__4) | + (1 << SolidityParser.T__5) | + (1 << SolidityParser.T__6) | + (1 << SolidityParser.T__7))) !== + 0 + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 764 + this.expression(8) + break + + case 9: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 765 + if (!this.precpred(this._ctx, 6)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 6)' + ) + } + this.state = 766 + _la = this._input.LA(1) + if ( + !(_la === SolidityParser.T__70 || _la === SolidityParser.T__71) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 767 + this.expression(7) + break + + case 10: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 768 + if (!this.precpred(this._ctx, 5)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 5)' + ) + } + this.state = 769 + this.match(SolidityParser.T__72) + this.state = 770 + this.expression(6) + break + + case 11: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 771 + if (!this.precpred(this._ctx, 4)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 4)' + ) + } + this.state = 772 + this.match(SolidityParser.T__73) + this.state = 773 + this.expression(5) + break + + case 12: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 774 + if (!this.precpred(this._ctx, 3)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 3)' + ) + } + this.state = 775 + this.match(SolidityParser.T__74) + this.state = 776 + this.expression(0) + this.state = 777 + this.match(SolidityParser.T__57) + this.state = 778 + this.expression(4) + break + + case 13: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 780 + if (!this.precpred(this._ctx, 2)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 2)' + ) + } + this.state = 781 + _la = this._input.LA(1) + if ( + !( + _la === SolidityParser.T__8 || + (((_la - 76) & ~0x1f) == 0 && + ((1 << (_la - 76)) & + ((1 << (SolidityParser.T__75 - 76)) | + (1 << (SolidityParser.T__76 - 76)) | + (1 << (SolidityParser.T__77 - 76)) | + (1 << (SolidityParser.T__78 - 76)) | + (1 << (SolidityParser.T__79 - 76)) | + (1 << (SolidityParser.T__80 - 76)) | + (1 << (SolidityParser.T__81 - 76)) | + (1 << (SolidityParser.T__82 - 76)) | + (1 << (SolidityParser.T__83 - 76)) | + (1 << (SolidityParser.T__84 - 76)))) !== + 0) + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 782 + this.expression(3) + break + + case 14: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 783 + if (!this.precpred(this._ctx, 27)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 27)' + ) + } + this.state = 784 + _la = this._input.LA(1) + if ( + !(_la === SolidityParser.T__54 || _la === SolidityParser.T__55) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + break + + case 15: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 785 + if (!this.precpred(this._ctx, 25)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 25)' + ) + } + this.state = 786 + this.match(SolidityParser.T__31) + this.state = 788 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 787 + this.expression(0) + } + + this.state = 790 + this.match(SolidityParser.T__32) + break + + case 16: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 791 + if (!this.precpred(this._ctx, 24)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 24)' + ) + } + this.state = 792 + this.match(SolidityParser.T__31) + this.state = 794 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 793 + this.expression(0) + } + + this.state = 796 + this.match(SolidityParser.T__57) + this.state = 798 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 797 + this.expression(0) + } + + this.state = 800 + this.match(SolidityParser.T__32) + break + + case 17: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 801 + if (!this.precpred(this._ctx, 23)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 23)' + ) + } + this.state = 802 + this.match(SolidityParser.T__34) + this.state = 803 + this.identifier() + break + + case 18: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 804 + if (!this.precpred(this._ctx, 22)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 22)' + ) + } + this.state = 805 + this.match(SolidityParser.T__13) + this.state = 806 + this.nameValueList() + this.state = 807 + this.match(SolidityParser.T__15) + break + + case 19: + localctx = new ExpressionContext(this, _parentctx, _parentState) + this.pushNewRecursionContext( + localctx, + _startState, + SolidityParser.RULE_expression + ) + this.state = 809 + if (!this.precpred(this._ctx, 21)) { + throw new antlr4.error.FailedPredicateException( + this, + 'this.precpred(this._ctx, 21)' + ) + } + this.state = 810 + this.match(SolidityParser.T__21) + this.state = 811 + this.functionCallArguments() + this.state = 812 + this.match(SolidityParser.T__22) + break + } + } + this.state = 818 + this._errHandler.sync(this) + _alt = this._interp.adaptivePredict(this._input, 86, this._ctx) + } + } catch (error) { + if (error instanceof antlr4.error.RecognitionException) { + localctx.exception = error + this._errHandler.reportError(this, error) + this._errHandler.recover(this, error) + } else { + throw error + } + } finally { + this.unrollRecursionContexts(_parentctx) } - - Int() { - return this.getToken(SolidityParser.Int, 0); - }; - - Uint() { - return this.getToken(SolidityParser.Uint, 0); - }; - - Byte() { - return this.getToken(SolidityParser.Byte, 0); - }; - - Fixed() { - return this.getToken(SolidityParser.Fixed, 0); - }; - - Ufixed() { - return this.getToken(SolidityParser.Ufixed, 0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterElementaryTypeName(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitElementaryTypeName(this); - } - } - - -} - - - -class ExpressionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_expression; - } - - typeName() { - return this.getTypedRuleContext(TypeNameContext,0); - }; - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - primaryExpression() { - return this.getTypedRuleContext(PrimaryExpressionContext,0); - }; - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - nameValueList() { - return this.getTypedRuleContext(NameValueListContext,0); - }; - - functionCallArguments() { - return this.getTypedRuleContext(FunctionCallArgumentsContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterExpression(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitExpression(this); - } - } - - -} - - - -class PrimaryExpressionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_primaryExpression; + return localctx + } + + primaryExpression() { + let localctx = new PrimaryExpressionContext(this, this._ctx, this.state) + this.enterRule(localctx, 120, SolidityParser.RULE_primaryExpression) + try { + this.state = 836 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 89, this._ctx) + switch (la_) { + case 1: + this.enterOuterAlt(localctx, 1) + this.state = 819 + this.match(SolidityParser.BooleanLiteral) + break + + case 2: + this.enterOuterAlt(localctx, 2) + this.state = 820 + this.numberLiteral() + break + + case 3: + this.enterOuterAlt(localctx, 3) + this.state = 821 + this.hexLiteral() + break + + case 4: + this.enterOuterAlt(localctx, 4) + this.state = 822 + this.stringLiteral() + break + + case 5: + this.enterOuterAlt(localctx, 5) + this.state = 823 + this.identifier() + this.state = 826 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 87, this._ctx) + if (la_ === 1) { + this.state = 824 + this.match(SolidityParser.T__31) + this.state = 825 + this.match(SolidityParser.T__32) + } + break + + case 6: + this.enterOuterAlt(localctx, 6) + this.state = 828 + this.match(SolidityParser.TypeKeyword) + break + + case 7: + this.enterOuterAlt(localctx, 7) + this.state = 829 + this.match(SolidityParser.PayableKeyword) + break + + case 8: + this.enterOuterAlt(localctx, 8) + this.state = 830 + this.tupleExpression() + break + + case 9: + this.enterOuterAlt(localctx, 9) + this.state = 831 + this.typeNameExpression() + this.state = 834 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 88, this._ctx) + if (la_ === 1) { + this.state = 832 + this.match(SolidityParser.T__31) + this.state = 833 + this.match(SolidityParser.T__32) + } + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() } + return localctx + } + + expressionList() { + let localctx = new ExpressionListContext(this, this._ctx, this.state) + this.enterRule(localctx, 122, SolidityParser.RULE_expressionList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 838 + this.expression(0) + this.state = 843 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 839 + this.match(SolidityParser.T__14) + this.state = 840 + this.expression(0) + this.state = 845 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + nameValueList() { + let localctx = new NameValueListContext(this, this._ctx, this.state) + this.enterRule(localctx, 124, SolidityParser.RULE_nameValueList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 846 + this.nameValue() + this.state = 851 + this._errHandler.sync(this) + let _alt = this._interp.adaptivePredict(this._input, 91, this._ctx) + while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + this.state = 847 + this.match(SolidityParser.T__14) + this.state = 848 + this.nameValue() + } + this.state = 853 + this._errHandler.sync(this) + _alt = this._interp.adaptivePredict(this._input, 91, this._ctx) + } + + this.state = 855 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__14) { + this.state = 854 + this.match(SolidityParser.T__14) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + nameValue() { + let localctx = new NameValueContext(this, this._ctx, this.state) + this.enterRule(localctx, 126, SolidityParser.RULE_nameValue) + try { + this.enterOuterAlt(localctx, 1) + this.state = 857 + this.identifier() + this.state = 858 + this.match(SolidityParser.T__57) + this.state = 859 + this.expression(0) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + functionCallArguments() { + let localctx = new FunctionCallArgumentsContext(this, this._ctx, this.state) + this.enterRule(localctx, 128, SolidityParser.RULE_functionCallArguments) + var _la = 0 // Token type + try { + this.state = 869 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__13: + this.enterOuterAlt(localctx, 1) + this.state = 861 + this.match(SolidityParser.T__13) + this.state = 863 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 862 + this.nameValueList() + } + + this.state = 865 + this.match(SolidityParser.T__15) + break + case SolidityParser.T__3: + case SolidityParser.T__12: + case SolidityParser.T__21: + case SolidityParser.T__22: + case SolidityParser.T__31: + case SolidityParser.T__33: + case SolidityParser.T__39: + case SolidityParser.T__50: + case SolidityParser.T__51: + case SolidityParser.T__52: + case SolidityParser.T__53: + case SolidityParser.T__54: + case SolidityParser.T__55: + case SolidityParser.T__56: + case SolidityParser.T__58: + case SolidityParser.T__59: + case SolidityParser.T__60: + case SolidityParser.T__61: + case SolidityParser.T__62: + case SolidityParser.T__92: + case SolidityParser.Int: + case SolidityParser.Uint: + case SolidityParser.Byte: + case SolidityParser.Fixed: + case SolidityParser.Ufixed: + case SolidityParser.BooleanLiteral: + case SolidityParser.DecimalNumber: + case SolidityParser.HexNumber: + case SolidityParser.HexLiteralFragment: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.TypeKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + case SolidityParser.StringLiteralFragment: + this.enterOuterAlt(localctx, 2) + this.state = 867 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 866 + this.expressionList() + } + + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + functionCall() { + let localctx = new FunctionCallContext(this, this._ctx, this.state) + this.enterRule(localctx, 130, SolidityParser.RULE_functionCall) + try { + this.enterOuterAlt(localctx, 1) + this.state = 871 + this.expression(0) + this.state = 872 + this.match(SolidityParser.T__21) + this.state = 873 + this.functionCallArguments() + this.state = 874 + this.match(SolidityParser.T__22) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyBlock() { + let localctx = new AssemblyBlockContext(this, this._ctx, this.state) + this.enterRule(localctx, 132, SolidityParser.RULE_assemblyBlock) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 876 + this.match(SolidityParser.T__13) + this.state = 880 + this._errHandler.sync(this) + _la = this._input.LA(1) + while ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__12) | + (1 << SolidityParser.T__13) | + (1 << SolidityParser.T__21) | + (1 << SolidityParser.T__24) | + (1 << SolidityParser.T__27))) !== + 0) || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__40 - 34)) | + (1 << (SolidityParser.T__45 - 34)) | + (1 << (SolidityParser.T__47 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 86) & ~0x1f) == 0 && + ((1 << (_la - 86)) & + ((1 << (SolidityParser.T__85 - 86)) | + (1 << (SolidityParser.T__87 - 86)) | + (1 << (SolidityParser.T__88 - 86)) | + (1 << (SolidityParser.T__92 - 86)) | + (1 << (SolidityParser.DecimalNumber - 86)) | + (1 << (SolidityParser.HexNumber - 86)) | + (1 << (SolidityParser.HexLiteralFragment - 86)) | + (1 << (SolidityParser.BreakKeyword - 86)) | + (1 << (SolidityParser.ContinueKeyword - 86)) | + (1 << (SolidityParser.LeaveKeyword - 86)) | + (1 << (SolidityParser.PayableKeyword - 86)))) !== + 0) || + (((_la - 124) & ~0x1f) == 0 && + ((1 << (_la - 124)) & + ((1 << (SolidityParser.ReceiveKeyword - 124)) | + (1 << (SolidityParser.Identifier - 124)) | + (1 << (SolidityParser.StringLiteralFragment - 124)))) !== + 0) + ) { + this.state = 877 + this.assemblyItem() + this.state = 882 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 883 + this.match(SolidityParser.T__15) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyItem() { + let localctx = new AssemblyItemContext(this, this._ctx, this.state) + this.enterRule(localctx, 134, SolidityParser.RULE_assemblyItem) + try { + this.state = 903 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 97, this._ctx) + switch (la_) { + case 1: + this.enterOuterAlt(localctx, 1) + this.state = 885 + this.identifier() + break + + case 2: + this.enterOuterAlt(localctx, 2) + this.state = 886 + this.assemblyBlock() + break + + case 3: + this.enterOuterAlt(localctx, 3) + this.state = 887 + this.assemblyExpression() + break + + case 4: + this.enterOuterAlt(localctx, 4) + this.state = 888 + this.assemblyLocalDefinition() + break + + case 5: + this.enterOuterAlt(localctx, 5) + this.state = 889 + this.assemblyAssignment() + break + + case 6: + this.enterOuterAlt(localctx, 6) + this.state = 890 + this.assemblyStackAssignment() + break + + case 7: + this.enterOuterAlt(localctx, 7) + this.state = 891 + this.labelDefinition() + break + + case 8: + this.enterOuterAlt(localctx, 8) + this.state = 892 + this.assemblySwitch() + break + + case 9: + this.enterOuterAlt(localctx, 9) + this.state = 893 + this.assemblyFunctionDefinition() + break + + case 10: + this.enterOuterAlt(localctx, 10) + this.state = 894 + this.assemblyFor() + break + + case 11: + this.enterOuterAlt(localctx, 11) + this.state = 895 + this.assemblyIf() + break + + case 12: + this.enterOuterAlt(localctx, 12) + this.state = 896 + this.match(SolidityParser.BreakKeyword) + break + + case 13: + this.enterOuterAlt(localctx, 13) + this.state = 897 + this.match(SolidityParser.ContinueKeyword) + break + + case 14: + this.enterOuterAlt(localctx, 14) + this.state = 898 + this.match(SolidityParser.LeaveKeyword) + break + + case 15: + this.enterOuterAlt(localctx, 15) + this.state = 899 + this.subAssembly() + break + + case 16: + this.enterOuterAlt(localctx, 16) + this.state = 900 + this.numberLiteral() + break + + case 17: + this.enterOuterAlt(localctx, 17) + this.state = 901 + this.stringLiteral() + break + + case 18: + this.enterOuterAlt(localctx, 18) + this.state = 902 + this.hexLiteral() + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyExpression() { + let localctx = new AssemblyExpressionContext(this, this._ctx, this.state) + this.enterRule(localctx, 136, SolidityParser.RULE_assemblyExpression) + try { + this.state = 908 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 98, this._ctx) + switch (la_) { + case 1: + this.enterOuterAlt(localctx, 1) + this.state = 905 + this.assemblyCall() + break + + case 2: + this.enterOuterAlt(localctx, 2) + this.state = 906 + this.assemblyLiteral() + break + + case 3: + this.enterOuterAlt(localctx, 3) + this.state = 907 + this.assemblyMember() + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyMember() { + let localctx = new AssemblyMemberContext(this, this._ctx, this.state) + this.enterRule(localctx, 138, SolidityParser.RULE_assemblyMember) + try { + this.enterOuterAlt(localctx, 1) + this.state = 910 + this.identifier() + this.state = 911 + this.match(SolidityParser.T__34) + this.state = 912 + this.identifier() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyCall() { + let localctx = new AssemblyCallContext(this, this._ctx, this.state) + this.enterRule(localctx, 140, SolidityParser.RULE_assemblyCall) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 918 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__47: + this.state = 914 + this.match(SolidityParser.T__47) + break + case SolidityParser.T__33: + this.state = 915 + this.match(SolidityParser.T__33) + break + case SolidityParser.T__53: + this.state = 916 + this.match(SolidityParser.T__53) + break + case SolidityParser.T__12: + case SolidityParser.T__39: + case SolidityParser.T__92: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + this.state = 917 + this.identifier() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 932 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 102, this._ctx) + if (la_ === 1) { + this.state = 920 + this.match(SolidityParser.T__21) + this.state = 922 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + (((_la - 34) & ~0x1f) == 0 && + ((1 << (_la - 34)) & + ((1 << (SolidityParser.T__33 - 34)) | + (1 << (SolidityParser.T__39 - 34)) | + (1 << (SolidityParser.T__47 - 34)) | + (1 << (SolidityParser.T__53 - 34)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 921 + this.assemblyExpression() + } + + this.state = 928 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 924 + this.match(SolidityParser.T__14) + this.state = 925 + this.assemblyExpression() + this.state = 930 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 931 + this.match(SolidityParser.T__22) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyLocalDefinition() { + let localctx = new AssemblyLocalDefinitionContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 142, SolidityParser.RULE_assemblyLocalDefinition) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 934 + this.match(SolidityParser.T__85) + this.state = 935 + this.assemblyIdentifierOrList() + this.state = 938 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__86) { + this.state = 936 + this.match(SolidityParser.T__86) + this.state = 937 + this.assemblyExpression() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyAssignment() { + let localctx = new AssemblyAssignmentContext(this, this._ctx, this.state) + this.enterRule(localctx, 144, SolidityParser.RULE_assemblyAssignment) + try { + this.enterOuterAlt(localctx, 1) + this.state = 940 + this.assemblyIdentifierOrList() + this.state = 941 + this.match(SolidityParser.T__86) + this.state = 942 + this.assemblyExpression() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyIdentifierOrList() { + let localctx = new AssemblyIdentifierOrListContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 146, SolidityParser.RULE_assemblyIdentifierOrList) + try { + this.state = 950 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 104, this._ctx) + switch (la_) { + case 1: + this.enterOuterAlt(localctx, 1) + this.state = 944 + this.identifier() + break + + case 2: + this.enterOuterAlt(localctx, 2) + this.state = 945 + this.assemblyMember() + break + + case 3: + this.enterOuterAlt(localctx, 3) + this.state = 946 + this.match(SolidityParser.T__21) + this.state = 947 + this.assemblyIdentifierList() + this.state = 948 + this.match(SolidityParser.T__22) + break + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyIdentifierList() { + let localctx = new AssemblyIdentifierListContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 148, SolidityParser.RULE_assemblyIdentifierList) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 952 + this.identifier() + this.state = 957 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 953 + this.match(SolidityParser.T__14) + this.state = 954 + this.identifier() + this.state = 959 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyStackAssignment() { + let localctx = new AssemblyStackAssignmentContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 150, SolidityParser.RULE_assemblyStackAssignment) + try { + this.enterOuterAlt(localctx, 1) + this.state = 960 + this.match(SolidityParser.T__87) + this.state = 961 + this.identifier() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + labelDefinition() { + let localctx = new LabelDefinitionContext(this, this._ctx, this.state) + this.enterRule(localctx, 152, SolidityParser.RULE_labelDefinition) + try { + this.enterOuterAlt(localctx, 1) + this.state = 963 + this.identifier() + this.state = 964 + this.match(SolidityParser.T__57) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblySwitch() { + let localctx = new AssemblySwitchContext(this, this._ctx, this.state) + this.enterRule(localctx, 154, SolidityParser.RULE_assemblySwitch) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 966 + this.match(SolidityParser.T__88) + this.state = 967 + this.assemblyExpression() + this.state = 971 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__89 || _la === SolidityParser.T__90) { + this.state = 968 + this.assemblyCase() + this.state = 973 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyCase() { + let localctx = new AssemblyCaseContext(this, this._ctx, this.state) + this.enterRule(localctx, 156, SolidityParser.RULE_assemblyCase) + try { + this.state = 980 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__89: + this.enterOuterAlt(localctx, 1) + this.state = 974 + this.match(SolidityParser.T__89) + this.state = 975 + this.assemblyLiteral() + this.state = 976 + this.assemblyBlock() + break + case SolidityParser.T__90: + this.enterOuterAlt(localctx, 2) + this.state = 978 + this.match(SolidityParser.T__90) + this.state = 979 + this.assemblyBlock() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyFunctionDefinition() { + let localctx = new AssemblyFunctionDefinitionContext( + this, + this._ctx, + this.state + ) + this.enterRule( + localctx, + 158, + SolidityParser.RULE_assemblyFunctionDefinition + ) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 982 + this.match(SolidityParser.T__27) + this.state = 983 + this.identifier() + this.state = 984 + this.match(SolidityParser.T__21) + this.state = 986 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) { + this.state = 985 + this.assemblyIdentifierList() + } + + this.state = 988 + this.match(SolidityParser.T__22) + this.state = 990 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__91) { + this.state = 989 + this.assemblyFunctionReturns() + } + + this.state = 992 + this.assemblyBlock() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyFunctionReturns() { + let localctx = new AssemblyFunctionReturnsContext( + this, + this._ctx, + this.state + ) + this.enterRule(localctx, 160, SolidityParser.RULE_assemblyFunctionReturns) + try { + this.enterOuterAlt(localctx, 1) + this.state = 994 + this.match(SolidityParser.T__91) + this.state = 995 + this.assemblyIdentifierList() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyFor() { + let localctx = new AssemblyForContext(this, this._ctx, this.state) + this.enterRule(localctx, 162, SolidityParser.RULE_assemblyFor) + try { + this.enterOuterAlt(localctx, 1) + this.state = 997 + this.match(SolidityParser.T__24) + this.state = 1000 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__13: + this.state = 998 + this.assemblyBlock() + break + case SolidityParser.T__12: + case SolidityParser.T__33: + case SolidityParser.T__39: + case SolidityParser.T__47: + case SolidityParser.T__53: + case SolidityParser.T__92: + case SolidityParser.DecimalNumber: + case SolidityParser.HexNumber: + case SolidityParser.HexLiteralFragment: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + case SolidityParser.StringLiteralFragment: + this.state = 999 + this.assemblyExpression() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 1002 + this.assemblyExpression() + this.state = 1005 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__13: + this.state = 1003 + this.assemblyBlock() + break + case SolidityParser.T__12: + case SolidityParser.T__33: + case SolidityParser.T__39: + case SolidityParser.T__47: + case SolidityParser.T__53: + case SolidityParser.T__92: + case SolidityParser.DecimalNumber: + case SolidityParser.HexNumber: + case SolidityParser.HexLiteralFragment: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + case SolidityParser.StringLiteralFragment: + this.state = 1004 + this.assemblyExpression() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 1007 + this.assemblyBlock() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyIf() { + let localctx = new AssemblyIfContext(this, this._ctx, this.state) + this.enterRule(localctx, 164, SolidityParser.RULE_assemblyIf) + try { + this.enterOuterAlt(localctx, 1) + this.state = 1009 + this.match(SolidityParser.T__40) + this.state = 1010 + this.assemblyExpression() + this.state = 1011 + this.assemblyBlock() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + assemblyLiteral() { + let localctx = new AssemblyLiteralContext(this, this._ctx, this.state) + this.enterRule(localctx, 166, SolidityParser.RULE_assemblyLiteral) + try { + this.state = 1017 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.StringLiteralFragment: + this.enterOuterAlt(localctx, 1) + this.state = 1013 + this.stringLiteral() + break + case SolidityParser.DecimalNumber: + this.enterOuterAlt(localctx, 2) + this.state = 1014 + this.match(SolidityParser.DecimalNumber) + break + case SolidityParser.HexNumber: + this.enterOuterAlt(localctx, 3) + this.state = 1015 + this.match(SolidityParser.HexNumber) + break + case SolidityParser.HexLiteralFragment: + this.enterOuterAlt(localctx, 4) + this.state = 1016 + this.hexLiteral() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + subAssembly() { + let localctx = new SubAssemblyContext(this, this._ctx, this.state) + this.enterRule(localctx, 168, SolidityParser.RULE_subAssembly) + try { + this.enterOuterAlt(localctx, 1) + this.state = 1019 + this.match(SolidityParser.T__45) + this.state = 1020 + this.identifier() + this.state = 1021 + this.assemblyBlock() + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + tupleExpression() { + let localctx = new TupleExpressionContext(this, this._ctx, this.state) + this.enterRule(localctx, 170, SolidityParser.RULE_tupleExpression) + var _la = 0 // Token type + try { + this.state = 1049 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__21: + this.enterOuterAlt(localctx, 1) + this.state = 1023 + this.match(SolidityParser.T__21) + + this.state = 1025 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 1024 + this.expression(0) + } + + this.state = 1033 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 1027 + this.match(SolidityParser.T__14) + this.state = 1029 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 1028 + this.expression(0) + } + + this.state = 1035 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 1036 + this.match(SolidityParser.T__22) + break + case SolidityParser.T__31: + this.enterOuterAlt(localctx, 2) + this.state = 1037 + this.match(SolidityParser.T__31) + this.state = 1046 + this._errHandler.sync(this) + _la = this._input.LA(1) + if ( + ((_la & ~0x1f) == 0 && + ((1 << _la) & + ((1 << SolidityParser.T__3) | + (1 << SolidityParser.T__12) | + (1 << SolidityParser.T__21))) !== + 0) || + (((_la - 32) & ~0x1f) == 0 && + ((1 << (_la - 32)) & + ((1 << (SolidityParser.T__31 - 32)) | + (1 << (SolidityParser.T__33 - 32)) | + (1 << (SolidityParser.T__39 - 32)) | + (1 << (SolidityParser.T__50 - 32)) | + (1 << (SolidityParser.T__51 - 32)) | + (1 << (SolidityParser.T__52 - 32)) | + (1 << (SolidityParser.T__53 - 32)) | + (1 << (SolidityParser.T__54 - 32)) | + (1 << (SolidityParser.T__55 - 32)) | + (1 << (SolidityParser.T__56 - 32)) | + (1 << (SolidityParser.T__58 - 32)) | + (1 << (SolidityParser.T__59 - 32)) | + (1 << (SolidityParser.T__60 - 32)) | + (1 << (SolidityParser.T__61 - 32)) | + (1 << (SolidityParser.T__62 - 32)))) !== + 0) || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.Int - 93)) | + (1 << (SolidityParser.Uint - 93)) | + (1 << (SolidityParser.Byte - 93)) | + (1 << (SolidityParser.Fixed - 93)) | + (1 << (SolidityParser.Ufixed - 93)) | + (1 << (SolidityParser.BooleanLiteral - 93)) | + (1 << (SolidityParser.DecimalNumber - 93)) | + (1 << (SolidityParser.HexNumber - 93)) | + (1 << (SolidityParser.HexLiteralFragment - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.TypeKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier || + _la === SolidityParser.StringLiteralFragment + ) { + this.state = 1038 + this.expression(0) + this.state = 1043 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 1039 + this.match(SolidityParser.T__14) + this.state = 1040 + this.expression(0) + this.state = 1045 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + } + + this.state = 1048 + this.match(SolidityParser.T__32) + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + typeNameExpression() { + let localctx = new TypeNameExpressionContext(this, this._ctx, this.state) + this.enterRule(localctx, 172, SolidityParser.RULE_typeNameExpression) + try { + this.state = 1053 + this._errHandler.sync(this) + switch (this._input.LA(1)) { + case SolidityParser.T__33: + case SolidityParser.T__50: + case SolidityParser.T__51: + case SolidityParser.T__52: + case SolidityParser.T__53: + case SolidityParser.Int: + case SolidityParser.Uint: + case SolidityParser.Byte: + case SolidityParser.Fixed: + case SolidityParser.Ufixed: + this.enterOuterAlt(localctx, 1) + this.state = 1051 + this.elementaryTypeName() + break + case SolidityParser.T__12: + case SolidityParser.T__39: + case SolidityParser.T__92: + case SolidityParser.LeaveKeyword: + case SolidityParser.PayableKeyword: + case SolidityParser.ReceiveKeyword: + case SolidityParser.Identifier: + this.enterOuterAlt(localctx, 2) + this.state = 1052 + this.userDefinedTypeName() + break + default: + throw new antlr4.error.NoViableAltException(this) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + numberLiteral() { + let localctx = new NumberLiteralContext(this, this._ctx, this.state) + this.enterRule(localctx, 174, SolidityParser.RULE_numberLiteral) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 1055 + _la = this._input.LA(1) + if ( + !( + _la === SolidityParser.DecimalNumber || + _la === SolidityParser.HexNumber + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + this.state = 1057 + this._errHandler.sync(this) + var la_ = this._interp.adaptivePredict(this._input, 120, this._ctx) + if (la_ === 1) { + this.state = 1056 + this.match(SolidityParser.NumberUnit) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + identifier() { + let localctx = new IdentifierContext(this, this._ctx, this.state) + this.enterRule(localctx, 176, SolidityParser.RULE_identifier) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 1059 + _la = this._input.LA(1) + if ( + !( + _la === SolidityParser.T__12 || + _la === SolidityParser.T__39 || + (((_la - 93) & ~0x1f) == 0 && + ((1 << (_la - 93)) & + ((1 << (SolidityParser.T__92 - 93)) | + (1 << (SolidityParser.LeaveKeyword - 93)) | + (1 << (SolidityParser.PayableKeyword - 93)) | + (1 << (SolidityParser.ReceiveKeyword - 93)))) !== + 0) || + _la === SolidityParser.Identifier + ) + ) { + this._errHandler.recoverInline(this) + } else { + this._errHandler.reportMatch(this) + this.consume() + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + hexLiteral() { + let localctx = new HexLiteralContext(this, this._ctx, this.state) + this.enterRule(localctx, 178, SolidityParser.RULE_hexLiteral) + try { + this.enterOuterAlt(localctx, 1) + this.state = 1062 + this._errHandler.sync(this) + let _alt = 1 + do { + switch (_alt) { + case 1: + this.state = 1061 + this.match(SolidityParser.HexLiteralFragment) + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 1064 + this._errHandler.sync(this) + _alt = this._interp.adaptivePredict(this._input, 121, this._ctx) + } while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + overrideSpecifier() { + let localctx = new OverrideSpecifierContext(this, this._ctx, this.state) + this.enterRule(localctx, 180, SolidityParser.RULE_overrideSpecifier) + var _la = 0 // Token type + try { + this.enterOuterAlt(localctx, 1) + this.state = 1066 + this.match(SolidityParser.T__93) + this.state = 1078 + this._errHandler.sync(this) + _la = this._input.LA(1) + if (_la === SolidityParser.T__21) { + this.state = 1067 + this.match(SolidityParser.T__21) + this.state = 1068 + this.userDefinedTypeName() + this.state = 1073 + this._errHandler.sync(this) + _la = this._input.LA(1) + while (_la === SolidityParser.T__14) { + this.state = 1069 + this.match(SolidityParser.T__14) + this.state = 1070 + this.userDefinedTypeName() + this.state = 1075 + this._errHandler.sync(this) + _la = this._input.LA(1) + } + this.state = 1076 + this.match(SolidityParser.T__22) + } + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } + + stringLiteral() { + let localctx = new StringLiteralContext(this, this._ctx, this.state) + this.enterRule(localctx, 182, SolidityParser.RULE_stringLiteral) + try { + this.enterOuterAlt(localctx, 1) + this.state = 1081 + this._errHandler.sync(this) + let _alt = 1 + do { + switch (_alt) { + case 1: + this.state = 1080 + this.match(SolidityParser.StringLiteralFragment) + break + default: + throw new antlr4.error.NoViableAltException(this) + } + this.state = 1083 + this._errHandler.sync(this) + _alt = this._interp.adaptivePredict(this._input, 124, this._ctx) + } while (_alt != 2 && _alt != antlr4.atn.ATN.INVALID_ALT_NUMBER) + } catch (re) { + if (re instanceof antlr4.error.RecognitionException) { + localctx.exception = re + this._errHandler.reportError(this, re) + this._errHandler.recover(this, re) + } else { + throw re + } + } finally { + this.exitRule() + } + return localctx + } +} - BooleanLiteral() { - return this.getToken(SolidityParser.BooleanLiteral, 0); - }; - - numberLiteral() { - return this.getTypedRuleContext(NumberLiteralContext,0); - }; - - hexLiteral() { - return this.getTypedRuleContext(HexLiteralContext,0); - }; - - stringLiteral() { - return this.getTypedRuleContext(StringLiteralContext,0); - }; +SolidityParser.EOF = antlr4.Token.EOF +SolidityParser.T__0 = 1 +SolidityParser.T__1 = 2 +SolidityParser.T__2 = 3 +SolidityParser.T__3 = 4 +SolidityParser.T__4 = 5 +SolidityParser.T__5 = 6 +SolidityParser.T__6 = 7 +SolidityParser.T__7 = 8 +SolidityParser.T__8 = 9 +SolidityParser.T__9 = 10 +SolidityParser.T__10 = 11 +SolidityParser.T__11 = 12 +SolidityParser.T__12 = 13 +SolidityParser.T__13 = 14 +SolidityParser.T__14 = 15 +SolidityParser.T__15 = 16 +SolidityParser.T__16 = 17 +SolidityParser.T__17 = 18 +SolidityParser.T__18 = 19 +SolidityParser.T__19 = 20 +SolidityParser.T__20 = 21 +SolidityParser.T__21 = 22 +SolidityParser.T__22 = 23 +SolidityParser.T__23 = 24 +SolidityParser.T__24 = 25 +SolidityParser.T__25 = 26 +SolidityParser.T__26 = 27 +SolidityParser.T__27 = 28 +SolidityParser.T__28 = 29 +SolidityParser.T__29 = 30 +SolidityParser.T__30 = 31 +SolidityParser.T__31 = 32 +SolidityParser.T__32 = 33 +SolidityParser.T__33 = 34 +SolidityParser.T__34 = 35 +SolidityParser.T__35 = 36 +SolidityParser.T__36 = 37 +SolidityParser.T__37 = 38 +SolidityParser.T__38 = 39 +SolidityParser.T__39 = 40 +SolidityParser.T__40 = 41 +SolidityParser.T__41 = 42 +SolidityParser.T__42 = 43 +SolidityParser.T__43 = 44 +SolidityParser.T__44 = 45 +SolidityParser.T__45 = 46 +SolidityParser.T__46 = 47 +SolidityParser.T__47 = 48 +SolidityParser.T__48 = 49 +SolidityParser.T__49 = 50 +SolidityParser.T__50 = 51 +SolidityParser.T__51 = 52 +SolidityParser.T__52 = 53 +SolidityParser.T__53 = 54 +SolidityParser.T__54 = 55 +SolidityParser.T__55 = 56 +SolidityParser.T__56 = 57 +SolidityParser.T__57 = 58 +SolidityParser.T__58 = 59 +SolidityParser.T__59 = 60 +SolidityParser.T__60 = 61 +SolidityParser.T__61 = 62 +SolidityParser.T__62 = 63 +SolidityParser.T__63 = 64 +SolidityParser.T__64 = 65 +SolidityParser.T__65 = 66 +SolidityParser.T__66 = 67 +SolidityParser.T__67 = 68 +SolidityParser.T__68 = 69 +SolidityParser.T__69 = 70 +SolidityParser.T__70 = 71 +SolidityParser.T__71 = 72 +SolidityParser.T__72 = 73 +SolidityParser.T__73 = 74 +SolidityParser.T__74 = 75 +SolidityParser.T__75 = 76 +SolidityParser.T__76 = 77 +SolidityParser.T__77 = 78 +SolidityParser.T__78 = 79 +SolidityParser.T__79 = 80 +SolidityParser.T__80 = 81 +SolidityParser.T__81 = 82 +SolidityParser.T__82 = 83 +SolidityParser.T__83 = 84 +SolidityParser.T__84 = 85 +SolidityParser.T__85 = 86 +SolidityParser.T__86 = 87 +SolidityParser.T__87 = 88 +SolidityParser.T__88 = 89 +SolidityParser.T__89 = 90 +SolidityParser.T__90 = 91 +SolidityParser.T__91 = 92 +SolidityParser.T__92 = 93 +SolidityParser.T__93 = 94 +SolidityParser.Int = 95 +SolidityParser.Uint = 96 +SolidityParser.Byte = 97 +SolidityParser.Fixed = 98 +SolidityParser.Ufixed = 99 +SolidityParser.BooleanLiteral = 100 +SolidityParser.DecimalNumber = 101 +SolidityParser.HexNumber = 102 +SolidityParser.NumberUnit = 103 +SolidityParser.HexLiteralFragment = 104 +SolidityParser.ReservedKeyword = 105 +SolidityParser.AnonymousKeyword = 106 +SolidityParser.BreakKeyword = 107 +SolidityParser.ConstantKeyword = 108 +SolidityParser.ImmutableKeyword = 109 +SolidityParser.ContinueKeyword = 110 +SolidityParser.LeaveKeyword = 111 +SolidityParser.ExternalKeyword = 112 +SolidityParser.IndexedKeyword = 113 +SolidityParser.InternalKeyword = 114 +SolidityParser.PayableKeyword = 115 +SolidityParser.PrivateKeyword = 116 +SolidityParser.PublicKeyword = 117 +SolidityParser.VirtualKeyword = 118 +SolidityParser.PureKeyword = 119 +SolidityParser.TypeKeyword = 120 +SolidityParser.ViewKeyword = 121 +SolidityParser.ConstructorKeyword = 122 +SolidityParser.FallbackKeyword = 123 +SolidityParser.ReceiveKeyword = 124 +SolidityParser.Identifier = 125 +SolidityParser.StringLiteralFragment = 126 +SolidityParser.VersionLiteral = 127 +SolidityParser.WS = 128 +SolidityParser.COMMENT = 129 +SolidityParser.LINE_COMMENT = 130 + +SolidityParser.RULE_sourceUnit = 0 +SolidityParser.RULE_pragmaDirective = 1 +SolidityParser.RULE_pragmaName = 2 +SolidityParser.RULE_pragmaValue = 3 +SolidityParser.RULE_version = 4 +SolidityParser.RULE_versionOperator = 5 +SolidityParser.RULE_versionConstraint = 6 +SolidityParser.RULE_importDeclaration = 7 +SolidityParser.RULE_importDirective = 8 +SolidityParser.RULE_contractDefinition = 9 +SolidityParser.RULE_inheritanceSpecifier = 10 +SolidityParser.RULE_contractPart = 11 +SolidityParser.RULE_stateVariableDeclaration = 12 +SolidityParser.RULE_fileLevelConstant = 13 +SolidityParser.RULE_usingForDeclaration = 14 +SolidityParser.RULE_structDefinition = 15 +SolidityParser.RULE_modifierDefinition = 16 +SolidityParser.RULE_modifierInvocation = 17 +SolidityParser.RULE_functionDefinition = 18 +SolidityParser.RULE_functionDescriptor = 19 +SolidityParser.RULE_returnParameters = 20 +SolidityParser.RULE_modifierList = 21 +SolidityParser.RULE_eventDefinition = 22 +SolidityParser.RULE_enumValue = 23 +SolidityParser.RULE_enumDefinition = 24 +SolidityParser.RULE_parameterList = 25 +SolidityParser.RULE_parameter = 26 +SolidityParser.RULE_eventParameterList = 27 +SolidityParser.RULE_eventParameter = 28 +SolidityParser.RULE_functionTypeParameterList = 29 +SolidityParser.RULE_functionTypeParameter = 30 +SolidityParser.RULE_variableDeclaration = 31 +SolidityParser.RULE_typeName = 32 +SolidityParser.RULE_userDefinedTypeName = 33 +SolidityParser.RULE_mappingKey = 34 +SolidityParser.RULE_mapping = 35 +SolidityParser.RULE_functionTypeName = 36 +SolidityParser.RULE_storageLocation = 37 +SolidityParser.RULE_stateMutability = 38 +SolidityParser.RULE_block = 39 +SolidityParser.RULE_statement = 40 +SolidityParser.RULE_expressionStatement = 41 +SolidityParser.RULE_ifStatement = 42 +SolidityParser.RULE_tryStatement = 43 +SolidityParser.RULE_catchClause = 44 +SolidityParser.RULE_whileStatement = 45 +SolidityParser.RULE_simpleStatement = 46 +SolidityParser.RULE_forStatement = 47 +SolidityParser.RULE_inlineAssemblyStatement = 48 +SolidityParser.RULE_doWhileStatement = 49 +SolidityParser.RULE_continueStatement = 50 +SolidityParser.RULE_breakStatement = 51 +SolidityParser.RULE_returnStatement = 52 +SolidityParser.RULE_throwStatement = 53 +SolidityParser.RULE_emitStatement = 54 +SolidityParser.RULE_variableDeclarationStatement = 55 +SolidityParser.RULE_variableDeclarationList = 56 +SolidityParser.RULE_identifierList = 57 +SolidityParser.RULE_elementaryTypeName = 58 +SolidityParser.RULE_expression = 59 +SolidityParser.RULE_primaryExpression = 60 +SolidityParser.RULE_expressionList = 61 +SolidityParser.RULE_nameValueList = 62 +SolidityParser.RULE_nameValue = 63 +SolidityParser.RULE_functionCallArguments = 64 +SolidityParser.RULE_functionCall = 65 +SolidityParser.RULE_assemblyBlock = 66 +SolidityParser.RULE_assemblyItem = 67 +SolidityParser.RULE_assemblyExpression = 68 +SolidityParser.RULE_assemblyMember = 69 +SolidityParser.RULE_assemblyCall = 70 +SolidityParser.RULE_assemblyLocalDefinition = 71 +SolidityParser.RULE_assemblyAssignment = 72 +SolidityParser.RULE_assemblyIdentifierOrList = 73 +SolidityParser.RULE_assemblyIdentifierList = 74 +SolidityParser.RULE_assemblyStackAssignment = 75 +SolidityParser.RULE_labelDefinition = 76 +SolidityParser.RULE_assemblySwitch = 77 +SolidityParser.RULE_assemblyCase = 78 +SolidityParser.RULE_assemblyFunctionDefinition = 79 +SolidityParser.RULE_assemblyFunctionReturns = 80 +SolidityParser.RULE_assemblyFor = 81 +SolidityParser.RULE_assemblyIf = 82 +SolidityParser.RULE_assemblyLiteral = 83 +SolidityParser.RULE_subAssembly = 84 +SolidityParser.RULE_tupleExpression = 85 +SolidityParser.RULE_typeNameExpression = 86 +SolidityParser.RULE_numberLiteral = 87 +SolidityParser.RULE_identifier = 88 +SolidityParser.RULE_hexLiteral = 89 +SolidityParser.RULE_overrideSpecifier = 90 +SolidityParser.RULE_stringLiteral = 91 - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; +class SourceUnitContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_sourceUnit + } + + EOF() { + return this.getToken(SolidityParser.EOF, 0) + } + + pragmaDirective = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(PragmaDirectiveContext) + } else { + return this.getTypedRuleContext(PragmaDirectiveContext, i) + } + } - TypeKeyword() { - return this.getToken(SolidityParser.TypeKeyword, 0); - }; + importDirective = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ImportDirectiveContext) + } else { + return this.getTypedRuleContext(ImportDirectiveContext, i) + } + } - PayableKeyword() { - return this.getToken(SolidityParser.PayableKeyword, 0); - }; + contractDefinition = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ContractDefinitionContext) + } else { + return this.getTypedRuleContext(ContractDefinitionContext, i) + } + } - tupleExpression() { - return this.getTypedRuleContext(TupleExpressionContext,0); - }; + enumDefinition = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(EnumDefinitionContext) + } else { + return this.getTypedRuleContext(EnumDefinitionContext, i) + } + } - typeNameExpression() { - return this.getTypedRuleContext(TypeNameExpressionContext,0); - }; + structDefinition = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(StructDefinitionContext) + } else { + return this.getTypedRuleContext(StructDefinitionContext, i) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterPrimaryExpression(this); - } - } + functionDefinition = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(FunctionDefinitionContext) + } else { + return this.getTypedRuleContext(FunctionDefinitionContext, i) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitPrimaryExpression(this); - } - } + fileLevelConstant = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(FileLevelConstantContext) + } else { + return this.getTypedRuleContext(FileLevelConstantContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterSourceUnit(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitSourceUnit(this) + } + } } +class PragmaDirectiveContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_pragmaDirective + } + + pragmaName() { + return this.getTypedRuleContext(PragmaNameContext, 0) + } + + pragmaValue() { + return this.getTypedRuleContext(PragmaValueContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterPragmaDirective(this) + } + } - -class ExpressionListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_expressionList; - } - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterExpressionList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitExpressionList(this); - } - } - - + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitPragmaDirective(this) + } + } } +class PragmaNameContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_pragmaName + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterPragmaName(this) + } + } - -class NameValueListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_nameValueList; - } - - nameValue = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(NameValueContext); - } else { - return this.getTypedRuleContext(NameValueContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterNameValueList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitNameValueList(this); - } - } - - + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitPragmaName(this) + } + } } - - -class NameValueContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_nameValue; +class PragmaValueContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_pragmaValue + } + + version() { + return this.getTypedRuleContext(VersionContext, 0) + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterPragmaValue(this) + } + } - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterNameValue(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitNameValue(this); - } - } - - + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitPragmaValue(this) + } + } } - - -class FunctionCallArgumentsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_functionCallArguments; +class VersionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_version + } + + versionConstraint = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(VersionConstraintContext) + } else { + return this.getTypedRuleContext(VersionConstraintContext, i) + } + } - nameValueList() { - return this.getTypedRuleContext(NameValueListContext,0); - }; - - expressionList() { - return this.getTypedRuleContext(ExpressionListContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterFunctionCallArguments(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitFunctionCallArguments(this); - } - } - + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterVersion(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitVersion(this) + } + } } - - -class FunctionCallContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_functionCall; +class VersionOperatorContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_versionOperator + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterVersionOperator(this) + } + } - expression() { - return this.getTypedRuleContext(ExpressionContext,0); - }; - - functionCallArguments() { - return this.getTypedRuleContext(FunctionCallArgumentsContext,0); - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterFunctionCall(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitFunctionCall(this); - } - } - - + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitVersionOperator(this) + } + } } +class VersionConstraintContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_versionConstraint + } + + VersionLiteral() { + return this.getToken(SolidityParser.VersionLiteral, 0) + } + + versionOperator() { + return this.getTypedRuleContext(VersionOperatorContext, 0) + } + + DecimalNumber() { + return this.getToken(SolidityParser.DecimalNumber, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterVersionConstraint(this) + } + } - -class AssemblyBlockContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyBlock; - } - - assemblyItem = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(AssemblyItemContext); - } else { - return this.getTypedRuleContext(AssemblyItemContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyBlock(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyBlock(this); - } - } - - + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitVersionConstraint(this) + } + } } - - -class AssemblyItemContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyItem; +class ImportDeclarationContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_importDeclaration + } + + identifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(IdentifierContext) + } else { + return this.getTypedRuleContext(IdentifierContext, i) + } + } - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - assemblyBlock() { - return this.getTypedRuleContext(AssemblyBlockContext,0); - }; - - assemblyExpression() { - return this.getTypedRuleContext(AssemblyExpressionContext,0); - }; - - assemblyLocalDefinition() { - return this.getTypedRuleContext(AssemblyLocalDefinitionContext,0); - }; - - assemblyAssignment() { - return this.getTypedRuleContext(AssemblyAssignmentContext,0); - }; - - assemblyStackAssignment() { - return this.getTypedRuleContext(AssemblyStackAssignmentContext,0); - }; - - labelDefinition() { - return this.getTypedRuleContext(LabelDefinitionContext,0); - }; - - assemblySwitch() { - return this.getTypedRuleContext(AssemblySwitchContext,0); - }; - - assemblyFunctionDefinition() { - return this.getTypedRuleContext(AssemblyFunctionDefinitionContext,0); - }; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterImportDeclaration(this) + } + } - assemblyFor() { - return this.getTypedRuleContext(AssemblyForContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitImportDeclaration(this) + } + } +} - assemblyIf() { - return this.getTypedRuleContext(AssemblyIfContext,0); - }; +class ImportDirectiveContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_importDirective + } + + StringLiteralFragment() { + return this.getToken(SolidityParser.StringLiteralFragment, 0) + } + + identifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(IdentifierContext) + } else { + return this.getTypedRuleContext(IdentifierContext, i) + } + } - BreakKeyword() { - return this.getToken(SolidityParser.BreakKeyword, 0); - }; + importDeclaration = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ImportDeclarationContext) + } else { + return this.getTypedRuleContext(ImportDeclarationContext, i) + } + } - ContinueKeyword() { - return this.getToken(SolidityParser.ContinueKeyword, 0); - }; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterImportDirective(this) + } + } - LeaveKeyword() { - return this.getToken(SolidityParser.LeaveKeyword, 0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitImportDirective(this) + } + } +} - subAssembly() { - return this.getTypedRuleContext(SubAssemblyContext,0); - }; +class ContractDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_contractDefinition + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + inheritanceSpecifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(InheritanceSpecifierContext) + } else { + return this.getTypedRuleContext(InheritanceSpecifierContext, i) + } + } - numberLiteral() { - return this.getTypedRuleContext(NumberLiteralContext,0); - }; + contractPart = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ContractPartContext) + } else { + return this.getTypedRuleContext(ContractPartContext, i) + } + } - stringLiteral() { - return this.getTypedRuleContext(StringLiteralContext,0); - }; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterContractDefinition(this) + } + } - hexLiteral() { - return this.getTypedRuleContext(HexLiteralContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitContractDefinition(this) + } + } +} - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyItem(this); - } - } +class InheritanceSpecifierContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_inheritanceSpecifier + } + + userDefinedTypeName() { + return this.getTypedRuleContext(UserDefinedTypeNameContext, 0) + } + + expressionList() { + return this.getTypedRuleContext(ExpressionListContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterInheritanceSpecifier(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyItem(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitInheritanceSpecifier(this) + } + } +} +class ContractPartContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_contractPart + } + + stateVariableDeclaration() { + return this.getTypedRuleContext(StateVariableDeclarationContext, 0) + } + + usingForDeclaration() { + return this.getTypedRuleContext(UsingForDeclarationContext, 0) + } + + structDefinition() { + return this.getTypedRuleContext(StructDefinitionContext, 0) + } + + modifierDefinition() { + return this.getTypedRuleContext(ModifierDefinitionContext, 0) + } + + functionDefinition() { + return this.getTypedRuleContext(FunctionDefinitionContext, 0) + } + + eventDefinition() { + return this.getTypedRuleContext(EventDefinitionContext, 0) + } + + enumDefinition() { + return this.getTypedRuleContext(EnumDefinitionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterContractPart(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitContractPart(this) + } + } } +class StateVariableDeclarationContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_stateVariableDeclaration + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + PublicKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.PublicKeyword) + } else { + return this.getToken(SolidityParser.PublicKeyword, i) + } + } + InternalKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.InternalKeyword) + } else { + return this.getToken(SolidityParser.InternalKeyword, i) + } + } -class AssemblyExpressionContext extends antlr4.ParserRuleContext { + PrivateKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.PrivateKeyword) + } else { + return this.getToken(SolidityParser.PrivateKeyword, i) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyExpression; + ConstantKeyword = function(i) { + if (i === undefined) { + i = null } + if (i === null) { + return this.getTokens(SolidityParser.ConstantKeyword) + } else { + return this.getToken(SolidityParser.ConstantKeyword, i) + } + } - assemblyCall() { - return this.getTypedRuleContext(AssemblyCallContext,0); - }; + ImmutableKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.ImmutableKeyword) + } else { + return this.getToken(SolidityParser.ImmutableKeyword, i) + } + } - assemblyLiteral() { - return this.getTypedRuleContext(AssemblyLiteralContext,0); - }; + overrideSpecifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(OverrideSpecifierContext) + } else { + return this.getTypedRuleContext(OverrideSpecifierContext, i) + } + } - assemblyMember() { - return this.getTypedRuleContext(AssemblyMemberContext,0); - }; + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyExpression(this); - } - } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterStateVariableDeclaration(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyExpression(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitStateVariableDeclaration(this) + } + } +} +class FileLevelConstantContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_fileLevelConstant + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + ConstantKeyword() { + return this.getToken(SolidityParser.ConstantKeyword, 0) + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterFileLevelConstant(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitFileLevelConstant(this) + } + } } +class UsingForDeclarationContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_usingForDeclaration + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterUsingForDeclaration(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitUsingForDeclaration(this) + } + } +} -class AssemblyMemberContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyMember; - } - - identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyMember(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyMember(this); - } - } +class StructDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_structDefinition + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + variableDeclaration = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(VariableDeclarationContext) + } else { + return this.getTypedRuleContext(VariableDeclarationContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterStructDefinition(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitStructDefinition(this) + } + } } +class ModifierDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_modifierDefinition + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + block() { + return this.getTypedRuleContext(BlockContext, 0) + } + + parameterList() { + return this.getTypedRuleContext(ParameterListContext, 0) + } + + VirtualKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.VirtualKeyword) + } else { + return this.getToken(SolidityParser.VirtualKeyword, i) + } + } + overrideSpecifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(OverrideSpecifierContext) + } else { + return this.getTypedRuleContext(OverrideSpecifierContext, i) + } + } -class AssemblyCallContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyCall; - } - - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; - - assemblyExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(AssemblyExpressionContext); - } else { - return this.getTypedRuleContext(AssemblyExpressionContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyCall(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyCall(this); - } - } - + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterModifierDefinition(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitModifierDefinition(this) + } + } } +class ModifierInvocationContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_modifierInvocation + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + expressionList() { + return this.getTypedRuleContext(ExpressionListContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterModifierInvocation(this) + } + } - -class AssemblyLocalDefinitionContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyLocalDefinition; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitModifierInvocation(this) } + } +} - assemblyIdentifierOrList() { - return this.getTypedRuleContext(AssemblyIdentifierOrListContext,0); - }; +class FunctionDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_functionDefinition + } + + functionDescriptor() { + return this.getTypedRuleContext(FunctionDescriptorContext, 0) + } + + parameterList() { + return this.getTypedRuleContext(ParameterListContext, 0) + } + + modifierList() { + return this.getTypedRuleContext(ModifierListContext, 0) + } + + block() { + return this.getTypedRuleContext(BlockContext, 0) + } + + returnParameters() { + return this.getTypedRuleContext(ReturnParametersContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterFunctionDefinition(this) + } + } - assemblyExpression() { - return this.getTypedRuleContext(AssemblyExpressionContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitFunctionDefinition(this) + } + } +} - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyLocalDefinition(this); - } - } +class FunctionDescriptorContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_functionDescriptor + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + ConstructorKeyword() { + return this.getToken(SolidityParser.ConstructorKeyword, 0) + } + + FallbackKeyword() { + return this.getToken(SolidityParser.FallbackKeyword, 0) + } + + ReceiveKeyword() { + return this.getToken(SolidityParser.ReceiveKeyword, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterFunctionDescriptor(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyLocalDefinition(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitFunctionDescriptor(this) + } + } +} +class ReturnParametersContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_returnParameters + } + + parameterList() { + return this.getTypedRuleContext(ParameterListContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterReturnParameters(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitReturnParameters(this) + } + } } +class ModifierListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_modifierList + } + + ExternalKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.ExternalKeyword) + } else { + return this.getToken(SolidityParser.ExternalKeyword, i) + } + } + PublicKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.PublicKeyword) + } else { + return this.getToken(SolidityParser.PublicKeyword, i) + } + } -class AssemblyAssignmentContext extends antlr4.ParserRuleContext { + InternalKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.InternalKeyword) + } else { + return this.getToken(SolidityParser.InternalKeyword, i) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyAssignment; + PrivateKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.PrivateKeyword) + } else { + return this.getToken(SolidityParser.PrivateKeyword, i) } + } - assemblyIdentifierOrList() { - return this.getTypedRuleContext(AssemblyIdentifierOrListContext,0); - }; + VirtualKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.VirtualKeyword) + } else { + return this.getToken(SolidityParser.VirtualKeyword, i) + } + } - assemblyExpression() { - return this.getTypedRuleContext(AssemblyExpressionContext,0); - }; + stateMutability = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(StateMutabilityContext) + } else { + return this.getTypedRuleContext(StateMutabilityContext, i) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyAssignment(this); - } - } + modifierInvocation = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ModifierInvocationContext) + } else { + return this.getTypedRuleContext(ModifierInvocationContext, i) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyAssignment(this); - } - } + overrideSpecifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(OverrideSpecifierContext) + } else { + return this.getTypedRuleContext(OverrideSpecifierContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterModifierList(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitModifierList(this) + } + } } +class EventDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_eventDefinition + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + eventParameterList() { + return this.getTypedRuleContext(EventParameterListContext, 0) + } + + AnonymousKeyword() { + return this.getToken(SolidityParser.AnonymousKeyword, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterEventDefinition(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitEventDefinition(this) + } + } +} -class AssemblyIdentifierOrListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyIdentifierOrList; +class EnumValueContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_enumValue + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterEnumValue(this) + } + } - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitEnumValue(this) + } + } +} - assemblyMember() { - return this.getTypedRuleContext(AssemblyMemberContext,0); - }; +class EnumDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_enumDefinition + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + enumValue = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(EnumValueContext) + } else { + return this.getTypedRuleContext(EnumValueContext, i) + } + } - assemblyIdentifierList() { - return this.getTypedRuleContext(AssemblyIdentifierListContext,0); - }; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterEnumDefinition(this) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyIdentifierOrList(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitEnumDefinition(this) + } + } +} - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyIdentifierOrList(this); - } - } +class ParameterListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_parameterList + } + + parameter = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ParameterContext) + } else { + return this.getTypedRuleContext(ParameterContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterParameterList(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitParameterList(this) + } + } } +class ParameterContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_parameter + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + storageLocation() { + return this.getTypedRuleContext(StorageLocationContext, 0) + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterParameter(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitParameter(this) + } + } +} -class AssemblyIdentifierListContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyIdentifierList; - } - - identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyIdentifierList(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyIdentifierList(this); - } - } +class EventParameterListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_eventParameterList + } + + eventParameter = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(EventParameterContext) + } else { + return this.getTypedRuleContext(EventParameterContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterEventParameterList(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitEventParameterList(this) + } + } } +class EventParameterContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_eventParameter + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + IndexedKeyword() { + return this.getToken(SolidityParser.IndexedKeyword, 0) + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterEventParameter(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitEventParameter(this) + } + } +} -class AssemblyStackAssignmentContext extends antlr4.ParserRuleContext { +class FunctionTypeParameterListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_functionTypeParameterList + } + + functionTypeParameter = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(FunctionTypeParameterContext) + } else { + return this.getTypedRuleContext(FunctionTypeParameterContext, i) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyStackAssignment; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterFunctionTypeParameterList(this) } + } - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitFunctionTypeParameterList(this) + } + } +} - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyStackAssignment(this); - } - } +class FunctionTypeParameterContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_functionTypeParameter + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + storageLocation() { + return this.getTypedRuleContext(StorageLocationContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterFunctionTypeParameter(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyStackAssignment(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitFunctionTypeParameter(this) + } + } +} +class VariableDeclarationContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_variableDeclaration + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + storageLocation() { + return this.getTypedRuleContext(StorageLocationContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterVariableDeclaration(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitVariableDeclaration(this) + } + } } +class TypeNameContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_typeName + } + + elementaryTypeName() { + return this.getTypedRuleContext(ElementaryTypeNameContext, 0) + } + + userDefinedTypeName() { + return this.getTypedRuleContext(UserDefinedTypeNameContext, 0) + } + + mapping() { + return this.getTypedRuleContext(MappingContext, 0) + } + + functionTypeName() { + return this.getTypedRuleContext(FunctionTypeNameContext, 0) + } + + PayableKeyword() { + return this.getToken(SolidityParser.PayableKeyword, 0) + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterTypeName(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitTypeName(this) + } + } +} -class LabelDefinitionContext extends antlr4.ParserRuleContext { +class UserDefinedTypeNameContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_userDefinedTypeName + } + + identifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(IdentifierContext) + } else { + return this.getTypedRuleContext(IdentifierContext, i) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_labelDefinition; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterUserDefinedTypeName(this) } + } - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitUserDefinedTypeName(this) + } + } +} - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterLabelDefinition(this); - } - } +class MappingKeyContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_mappingKey + } + + elementaryTypeName() { + return this.getTypedRuleContext(ElementaryTypeNameContext, 0) + } + + userDefinedTypeName() { + return this.getTypedRuleContext(UserDefinedTypeNameContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterMappingKey(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitLabelDefinition(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitMappingKey(this) + } + } +} +class MappingContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_mapping + } + + mappingKey() { + return this.getTypedRuleContext(MappingKeyContext, 0) + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterMapping(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitMapping(this) + } + } } +class FunctionTypeNameContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_functionTypeName + } + + functionTypeParameterList = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(FunctionTypeParameterListContext) + } else { + return this.getTypedRuleContext(FunctionTypeParameterListContext, i) + } + } + InternalKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.InternalKeyword) + } else { + return this.getToken(SolidityParser.InternalKeyword, i) + } + } -class AssemblySwitchContext extends antlr4.ParserRuleContext { + ExternalKeyword = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.ExternalKeyword) + } else { + return this.getToken(SolidityParser.ExternalKeyword, i) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblySwitch; - } - - assemblyExpression() { - return this.getTypedRuleContext(AssemblyExpressionContext,0); - }; - - assemblyCase = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(AssemblyCaseContext); - } else { - return this.getTypedRuleContext(AssemblyCaseContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblySwitch(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblySwitch(this); - } - } + stateMutability = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(StateMutabilityContext) + } else { + return this.getTypedRuleContext(StateMutabilityContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterFunctionTypeName(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitFunctionTypeName(this) + } + } } +class StorageLocationContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_storageLocation + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterStorageLocation(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitStorageLocation(this) + } + } +} -class AssemblyCaseContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyCase; +class StateMutabilityContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_stateMutability + } + + PureKeyword() { + return this.getToken(SolidityParser.PureKeyword, 0) + } + + ConstantKeyword() { + return this.getToken(SolidityParser.ConstantKeyword, 0) + } + + ViewKeyword() { + return this.getToken(SolidityParser.ViewKeyword, 0) + } + + PayableKeyword() { + return this.getToken(SolidityParser.PayableKeyword, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterStateMutability(this) + } + } - assemblyLiteral() { - return this.getTypedRuleContext(AssemblyLiteralContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitStateMutability(this) + } + } +} - assemblyBlock() { - return this.getTypedRuleContext(AssemblyBlockContext,0); - }; +class BlockContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_block + } + + statement = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(StatementContext) + } else { + return this.getTypedRuleContext(StatementContext, i) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyCase(this); - } - } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterBlock(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyCase(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitBlock(this) + } + } +} +class StatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_statement + } + + ifStatement() { + return this.getTypedRuleContext(IfStatementContext, 0) + } + + tryStatement() { + return this.getTypedRuleContext(TryStatementContext, 0) + } + + whileStatement() { + return this.getTypedRuleContext(WhileStatementContext, 0) + } + + forStatement() { + return this.getTypedRuleContext(ForStatementContext, 0) + } + + block() { + return this.getTypedRuleContext(BlockContext, 0) + } + + inlineAssemblyStatement() { + return this.getTypedRuleContext(InlineAssemblyStatementContext, 0) + } + + doWhileStatement() { + return this.getTypedRuleContext(DoWhileStatementContext, 0) + } + + continueStatement() { + return this.getTypedRuleContext(ContinueStatementContext, 0) + } + + breakStatement() { + return this.getTypedRuleContext(BreakStatementContext, 0) + } + + returnStatement() { + return this.getTypedRuleContext(ReturnStatementContext, 0) + } + + throwStatement() { + return this.getTypedRuleContext(ThrowStatementContext, 0) + } + + emitStatement() { + return this.getTypedRuleContext(EmitStatementContext, 0) + } + + simpleStatement() { + return this.getTypedRuleContext(SimpleStatementContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterStatement(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitStatement(this) + } + } } +class ExpressionStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_expressionStatement + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterExpressionStatement(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitExpressionStatement(this) + } + } +} -class AssemblyFunctionDefinitionContext extends antlr4.ParserRuleContext { +class IfStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_ifStatement + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + statement = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(StatementContext) + } else { + return this.getTypedRuleContext(StatementContext, i) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyFunctionDefinition; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterIfStatement(this) } + } - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitIfStatement(this) + } + } +} - assemblyBlock() { - return this.getTypedRuleContext(AssemblyBlockContext,0); - }; +class TryStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_tryStatement + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + block() { + return this.getTypedRuleContext(BlockContext, 0) + } + + returnParameters() { + return this.getTypedRuleContext(ReturnParametersContext, 0) + } + + catchClause = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(CatchClauseContext) + } else { + return this.getTypedRuleContext(CatchClauseContext, i) + } + } - assemblyIdentifierList() { - return this.getTypedRuleContext(AssemblyIdentifierListContext,0); - }; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterTryStatement(this) + } + } - assemblyFunctionReturns() { - return this.getTypedRuleContext(AssemblyFunctionReturnsContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitTryStatement(this) + } + } +} - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyFunctionDefinition(this); - } - } +class CatchClauseContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_catchClause + } + + block() { + return this.getTypedRuleContext(BlockContext, 0) + } + + parameterList() { + return this.getTypedRuleContext(ParameterListContext, 0) + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterCatchClause(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyFunctionDefinition(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitCatchClause(this) + } + } +} +class WhileStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_whileStatement + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + statement() { + return this.getTypedRuleContext(StatementContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterWhileStatement(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitWhileStatement(this) + } + } } +class SimpleStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_simpleStatement + } + + variableDeclarationStatement() { + return this.getTypedRuleContext(VariableDeclarationStatementContext, 0) + } + + expressionStatement() { + return this.getTypedRuleContext(ExpressionStatementContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterSimpleStatement(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitSimpleStatement(this) + } + } +} -class AssemblyFunctionReturnsContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyFunctionReturns; +class ForStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_forStatement + } + + statement() { + return this.getTypedRuleContext(StatementContext, 0) + } + + simpleStatement() { + return this.getTypedRuleContext(SimpleStatementContext, 0) + } + + expressionStatement() { + return this.getTypedRuleContext(ExpressionStatementContext, 0) + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterForStatement(this) + } + } - assemblyIdentifierList() { - return this.getTypedRuleContext(AssemblyIdentifierListContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitForStatement(this) + } + } +} - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyFunctionReturns(this); - } - } +class InlineAssemblyStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_inlineAssemblyStatement + } + + assemblyBlock() { + return this.getTypedRuleContext(AssemblyBlockContext, 0) + } + + StringLiteralFragment() { + return this.getToken(SolidityParser.StringLiteralFragment, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterInlineAssemblyStatement(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyFunctionReturns(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitInlineAssemblyStatement(this) + } + } +} +class DoWhileStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_doWhileStatement + } + + statement() { + return this.getTypedRuleContext(StatementContext, 0) + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterDoWhileStatement(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitDoWhileStatement(this) + } + } } +class ContinueStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_continueStatement + } + + ContinueKeyword() { + return this.getToken(SolidityParser.ContinueKeyword, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterContinueStatement(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitContinueStatement(this) + } + } +} -class AssemblyForContext extends antlr4.ParserRuleContext { +class BreakStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_breakStatement + } + + BreakKeyword() { + return this.getToken(SolidityParser.BreakKeyword, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterBreakStatement(this) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyFor; - } - - assemblyExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(AssemblyExpressionContext); - } else { - return this.getTypedRuleContext(AssemblyExpressionContext,i); - } - }; - - assemblyBlock = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(AssemblyBlockContext); - } else { - return this.getTypedRuleContext(AssemblyBlockContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyFor(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyFor(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitBreakStatement(this) + } + } +} +class ReturnStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_returnStatement + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterReturnStatement(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitReturnStatement(this) + } + } } +class ThrowStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_throwStatement + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterThrowStatement(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitThrowStatement(this) + } + } +} -class AssemblyIfContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyIf; +class EmitStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_emitStatement + } + + functionCall() { + return this.getTypedRuleContext(FunctionCallContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterEmitStatement(this) + } + } - assemblyExpression() { - return this.getTypedRuleContext(AssemblyExpressionContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitEmitStatement(this) + } + } +} - assemblyBlock() { - return this.getTypedRuleContext(AssemblyBlockContext,0); - }; +class VariableDeclarationStatementContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_variableDeclarationStatement + } + + identifierList() { + return this.getTypedRuleContext(IdentifierListContext, 0) + } + + variableDeclaration() { + return this.getTypedRuleContext(VariableDeclarationContext, 0) + } + + variableDeclarationList() { + return this.getTypedRuleContext(VariableDeclarationListContext, 0) + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterVariableDeclarationStatement(this) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyIf(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitVariableDeclarationStatement(this) + } + } +} - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyIf(this); - } - } +class VariableDeclarationListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_variableDeclarationList + } + + variableDeclaration = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(VariableDeclarationContext) + } else { + return this.getTypedRuleContext(VariableDeclarationContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterVariableDeclarationList(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitVariableDeclarationList(this) + } + } } +class IdentifierListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_identifierList + } + + identifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(IdentifierContext) + } else { + return this.getTypedRuleContext(IdentifierContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterIdentifierList(this) + } + } -class AssemblyLiteralContext extends antlr4.ParserRuleContext { + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitIdentifierList(this) + } + } +} - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_assemblyLiteral; +class ElementaryTypeNameContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_elementaryTypeName + } + + Int() { + return this.getToken(SolidityParser.Int, 0) + } + + Uint() { + return this.getToken(SolidityParser.Uint, 0) + } + + Byte() { + return this.getToken(SolidityParser.Byte, 0) + } + + Fixed() { + return this.getToken(SolidityParser.Fixed, 0) + } + + Ufixed() { + return this.getToken(SolidityParser.Ufixed, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterElementaryTypeName(this) } + } - stringLiteral() { - return this.getTypedRuleContext(StringLiteralContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitElementaryTypeName(this) + } + } +} - DecimalNumber() { - return this.getToken(SolidityParser.DecimalNumber, 0); - }; +class ExpressionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_expression + } + + typeName() { + return this.getTypedRuleContext(TypeNameContext, 0) + } + + expression = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ExpressionContext) + } else { + return this.getTypedRuleContext(ExpressionContext, i) + } + } - HexNumber() { - return this.getToken(SolidityParser.HexNumber, 0); - }; + primaryExpression() { + return this.getTypedRuleContext(PrimaryExpressionContext, 0) + } - hexLiteral() { - return this.getTypedRuleContext(HexLiteralContext,0); - }; + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterAssemblyLiteral(this); - } - } + nameValueList() { + return this.getTypedRuleContext(NameValueListContext, 0) + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitAssemblyLiteral(this); - } - } + functionCallArguments() { + return this.getTypedRuleContext(FunctionCallArgumentsContext, 0) + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterExpression(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitExpression(this) + } + } } +class PrimaryExpressionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_primaryExpression + } + + BooleanLiteral() { + return this.getToken(SolidityParser.BooleanLiteral, 0) + } + + numberLiteral() { + return this.getTypedRuleContext(NumberLiteralContext, 0) + } + + hexLiteral() { + return this.getTypedRuleContext(HexLiteralContext, 0) + } + + stringLiteral() { + return this.getTypedRuleContext(StringLiteralContext, 0) + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + TypeKeyword() { + return this.getToken(SolidityParser.TypeKeyword, 0) + } + + PayableKeyword() { + return this.getToken(SolidityParser.PayableKeyword, 0) + } + + tupleExpression() { + return this.getTypedRuleContext(TupleExpressionContext, 0) + } + + typeNameExpression() { + return this.getTypedRuleContext(TypeNameExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterPrimaryExpression(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitPrimaryExpression(this) + } + } +} -class SubAssemblyContext extends antlr4.ParserRuleContext { +class ExpressionListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_expressionList + } + + expression = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ExpressionContext) + } else { + return this.getTypedRuleContext(ExpressionContext, i) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_subAssembly; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterExpressionList(this) } + } - identifier() { - return this.getTypedRuleContext(IdentifierContext,0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitExpressionList(this) + } + } +} - assemblyBlock() { - return this.getTypedRuleContext(AssemblyBlockContext,0); - }; +class NameValueListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_nameValueList + } + + nameValue = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(NameValueContext) + } else { + return this.getTypedRuleContext(NameValueContext, i) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterSubAssembly(this); - } - } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterNameValueList(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitSubAssembly(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitNameValueList(this) + } + } +} +class NameValueContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_nameValue + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterNameValue(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitNameValue(this) + } + } } +class FunctionCallArgumentsContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_functionCallArguments + } + + nameValueList() { + return this.getTypedRuleContext(NameValueListContext, 0) + } + + expressionList() { + return this.getTypedRuleContext(ExpressionListContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterFunctionCallArguments(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitFunctionCallArguments(this) + } + } +} -class TupleExpressionContext extends antlr4.ParserRuleContext { +class FunctionCallContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_functionCall + } + + expression() { + return this.getTypedRuleContext(ExpressionContext, 0) + } + + functionCallArguments() { + return this.getTypedRuleContext(FunctionCallArgumentsContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterFunctionCall(this) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_tupleExpression; - } - - expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterTupleExpression(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitTupleExpression(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitFunctionCall(this) + } + } +} + +class AssemblyBlockContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyBlock + } + + assemblyItem = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(AssemblyItemContext) + } else { + return this.getTypedRuleContext(AssemblyItemContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyBlock(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyBlock(this) + } + } } +class AssemblyItemContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyItem + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + assemblyBlock() { + return this.getTypedRuleContext(AssemblyBlockContext, 0) + } + + assemblyExpression() { + return this.getTypedRuleContext(AssemblyExpressionContext, 0) + } + + assemblyLocalDefinition() { + return this.getTypedRuleContext(AssemblyLocalDefinitionContext, 0) + } + + assemblyAssignment() { + return this.getTypedRuleContext(AssemblyAssignmentContext, 0) + } + + assemblyStackAssignment() { + return this.getTypedRuleContext(AssemblyStackAssignmentContext, 0) + } + + labelDefinition() { + return this.getTypedRuleContext(LabelDefinitionContext, 0) + } + + assemblySwitch() { + return this.getTypedRuleContext(AssemblySwitchContext, 0) + } + + assemblyFunctionDefinition() { + return this.getTypedRuleContext(AssemblyFunctionDefinitionContext, 0) + } + + assemblyFor() { + return this.getTypedRuleContext(AssemblyForContext, 0) + } + + assemblyIf() { + return this.getTypedRuleContext(AssemblyIfContext, 0) + } + + BreakKeyword() { + return this.getToken(SolidityParser.BreakKeyword, 0) + } + + ContinueKeyword() { + return this.getToken(SolidityParser.ContinueKeyword, 0) + } + + LeaveKeyword() { + return this.getToken(SolidityParser.LeaveKeyword, 0) + } + + subAssembly() { + return this.getTypedRuleContext(SubAssemblyContext, 0) + } + + numberLiteral() { + return this.getTypedRuleContext(NumberLiteralContext, 0) + } + + stringLiteral() { + return this.getTypedRuleContext(StringLiteralContext, 0) + } + + hexLiteral() { + return this.getTypedRuleContext(HexLiteralContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyItem(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyItem(this) + } + } +} -class TypeNameExpressionContext extends antlr4.ParserRuleContext { +class AssemblyExpressionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyExpression + } + + assemblyCall() { + return this.getTypedRuleContext(AssemblyCallContext, 0) + } + + assemblyLiteral() { + return this.getTypedRuleContext(AssemblyLiteralContext, 0) + } + + assemblyMember() { + return this.getTypedRuleContext(AssemblyMemberContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyExpression(this) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_typeNameExpression; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyExpression(this) } + } +} - elementaryTypeName() { - return this.getTypedRuleContext(ElementaryTypeNameContext,0); - }; +class AssemblyMemberContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyMember + } + + identifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(IdentifierContext) + } else { + return this.getTypedRuleContext(IdentifierContext, i) + } + } - userDefinedTypeName() { - return this.getTypedRuleContext(UserDefinedTypeNameContext,0); - }; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyMember(this) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterTypeNameExpression(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyMember(this) + } + } +} - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitTypeNameExpression(this); - } - } +class AssemblyCallContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyCall + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + assemblyExpression = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(AssemblyExpressionContext) + } else { + return this.getTypedRuleContext(AssemblyExpressionContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyCall(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyCall(this) + } + } } +class AssemblyLocalDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyLocalDefinition + } + + assemblyIdentifierOrList() { + return this.getTypedRuleContext(AssemblyIdentifierOrListContext, 0) + } + + assemblyExpression() { + return this.getTypedRuleContext(AssemblyExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyLocalDefinition(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyLocalDefinition(this) + } + } +} -class NumberLiteralContext extends antlr4.ParserRuleContext { +class AssemblyAssignmentContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyAssignment + } + + assemblyIdentifierOrList() { + return this.getTypedRuleContext(AssemblyIdentifierOrListContext, 0) + } + + assemblyExpression() { + return this.getTypedRuleContext(AssemblyExpressionContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyAssignment(this) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_numberLiteral; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyAssignment(this) } + } +} - DecimalNumber() { - return this.getToken(SolidityParser.DecimalNumber, 0); - }; +class AssemblyIdentifierOrListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyIdentifierOrList + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + assemblyMember() { + return this.getTypedRuleContext(AssemblyMemberContext, 0) + } + + assemblyIdentifierList() { + return this.getTypedRuleContext(AssemblyIdentifierListContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyIdentifierOrList(this) + } + } - HexNumber() { - return this.getToken(SolidityParser.HexNumber, 0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyIdentifierOrList(this) + } + } +} - NumberUnit() { - return this.getToken(SolidityParser.NumberUnit, 0); - }; +class AssemblyIdentifierListContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyIdentifierList + } + + identifier = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(IdentifierContext) + } else { + return this.getTypedRuleContext(IdentifierContext, i) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterNumberLiteral(this); - } - } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyIdentifierList(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitNumberLiteral(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyIdentifierList(this) + } + } +} +class AssemblyStackAssignmentContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyStackAssignment + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyStackAssignment(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyStackAssignment(this) + } + } } +class LabelDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_labelDefinition + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterLabelDefinition(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitLabelDefinition(this) + } + } +} -class IdentifierContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_identifier; +class AssemblySwitchContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblySwitch + } + + assemblyExpression() { + return this.getTypedRuleContext(AssemblyExpressionContext, 0) + } + + assemblyCase = function(i) { + if (i === undefined) { + i = null } + if (i === null) { + return this.getTypedRuleContexts(AssemblyCaseContext) + } else { + return this.getTypedRuleContext(AssemblyCaseContext, i) + } + } - ReceiveKeyword() { - return this.getToken(SolidityParser.ReceiveKeyword, 0); - }; + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblySwitch(this) + } + } - PayableKeyword() { - return this.getToken(SolidityParser.PayableKeyword, 0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblySwitch(this) + } + } +} - LeaveKeyword() { - return this.getToken(SolidityParser.LeaveKeyword, 0); - }; +class AssemblyCaseContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyCase + } + + assemblyLiteral() { + return this.getTypedRuleContext(AssemblyLiteralContext, 0) + } + + assemblyBlock() { + return this.getTypedRuleContext(AssemblyBlockContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyCase(this) + } + } - Identifier() { - return this.getToken(SolidityParser.Identifier, 0); - }; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyCase(this) + } + } +} - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterIdentifier(this); - } - } +class AssemblyFunctionDefinitionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyFunctionDefinition + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + assemblyBlock() { + return this.getTypedRuleContext(AssemblyBlockContext, 0) + } + + assemblyIdentifierList() { + return this.getTypedRuleContext(AssemblyIdentifierListContext, 0) + } + + assemblyFunctionReturns() { + return this.getTypedRuleContext(AssemblyFunctionReturnsContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyFunctionDefinition(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitIdentifier(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyFunctionDefinition(this) + } + } +} +class AssemblyFunctionReturnsContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyFunctionReturns + } + + assemblyIdentifierList() { + return this.getTypedRuleContext(AssemblyIdentifierListContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyFunctionReturns(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyFunctionReturns(this) + } + } } +class AssemblyForContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyFor + } + + assemblyExpression = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(AssemblyExpressionContext) + } else { + return this.getTypedRuleContext(AssemblyExpressionContext, i) + } + } + assemblyBlock = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(AssemblyBlockContext) + } else { + return this.getTypedRuleContext(AssemblyBlockContext, i) + } + } -class HexLiteralContext extends antlr4.ParserRuleContext { + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyFor(this) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_hexLiteral; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyFor(this) } + } +} - HexLiteralFragment = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.HexLiteralFragment); - } else { - return this.getToken(SolidityParser.HexLiteralFragment, i); - } - }; +class AssemblyIfContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyIf + } + + assemblyExpression() { + return this.getTypedRuleContext(AssemblyExpressionContext, 0) + } + + assemblyBlock() { + return this.getTypedRuleContext(AssemblyBlockContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyIf(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyIf(this) + } + } +} - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterHexLiteral(this); - } - } +class AssemblyLiteralContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_assemblyLiteral + } + + stringLiteral() { + return this.getTypedRuleContext(StringLiteralContext, 0) + } + + DecimalNumber() { + return this.getToken(SolidityParser.DecimalNumber, 0) + } + + HexNumber() { + return this.getToken(SolidityParser.HexNumber, 0) + } + + hexLiteral() { + return this.getTypedRuleContext(HexLiteralContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterAssemblyLiteral(this) + } + } - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitHexLiteral(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitAssemblyLiteral(this) + } + } +} +class SubAssemblyContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_subAssembly + } + + identifier() { + return this.getTypedRuleContext(IdentifierContext, 0) + } + + assemblyBlock() { + return this.getTypedRuleContext(AssemblyBlockContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterSubAssembly(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitSubAssembly(this) + } + } } +class TupleExpressionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_tupleExpression + } + + expression = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(ExpressionContext) + } else { + return this.getTypedRuleContext(ExpressionContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterTupleExpression(this) + } + } -class OverrideSpecifierContext extends antlr4.ParserRuleContext { - - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_overrideSpecifier; - } - - userDefinedTypeName = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(UserDefinedTypeNameContext); - } else { - return this.getTypedRuleContext(UserDefinedTypeNameContext,i); - } - }; - - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterOverrideSpecifier(this); - } - } - - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitOverrideSpecifier(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitTupleExpression(this) + } + } +} +class TypeNameExpressionContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_typeNameExpression + } + + elementaryTypeName() { + return this.getTypedRuleContext(ElementaryTypeNameContext, 0) + } + + userDefinedTypeName() { + return this.getTypedRuleContext(UserDefinedTypeNameContext, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterTypeNameExpression(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitTypeNameExpression(this) + } + } } +class NumberLiteralContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_numberLiteral + } + + DecimalNumber() { + return this.getToken(SolidityParser.DecimalNumber, 0) + } + + HexNumber() { + return this.getToken(SolidityParser.HexNumber, 0) + } + + NumberUnit() { + return this.getToken(SolidityParser.NumberUnit, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterNumberLiteral(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitNumberLiteral(this) + } + } +} -class StringLiteralContext extends antlr4.ParserRuleContext { +class IdentifierContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_identifier + } + + ReceiveKeyword() { + return this.getToken(SolidityParser.ReceiveKeyword, 0) + } + + PayableKeyword() { + return this.getToken(SolidityParser.PayableKeyword, 0) + } + + LeaveKeyword() { + return this.getToken(SolidityParser.LeaveKeyword, 0) + } + + Identifier() { + return this.getToken(SolidityParser.Identifier, 0) + } + + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterIdentifier(this) + } + } - constructor(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - super(parent, invokingState); - this.parser = parser; - this.ruleIndex = SolidityParser.RULE_stringLiteral; + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitIdentifier(this) } + } +} - StringLiteralFragment = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(SolidityParser.StringLiteralFragment); - } else { - return this.getToken(SolidityParser.StringLiteralFragment, i); - } - }; +class HexLiteralContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_hexLiteral + } + + HexLiteralFragment = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.HexLiteralFragment) + } else { + return this.getToken(SolidityParser.HexLiteralFragment, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterHexLiteral(this) + } + } - enterRule(listener) { - if(listener instanceof SolidityListener ) { - listener.enterStringLiteral(this); - } - } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitHexLiteral(this) + } + } +} - exitRule(listener) { - if(listener instanceof SolidityListener ) { - listener.exitStringLiteral(this); - } - } +class OverrideSpecifierContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_overrideSpecifier + } + + userDefinedTypeName = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTypedRuleContexts(UserDefinedTypeNameContext) + } else { + return this.getTypedRuleContext(UserDefinedTypeNameContext, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterOverrideSpecifier(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitOverrideSpecifier(this) + } + } } +class StringLiteralContext extends antlr4.ParserRuleContext { + constructor(parser, parent, invokingState) { + if (parent === undefined) { + parent = null + } + if (invokingState === undefined || invokingState === null) { + invokingState = -1 + } + super(parent, invokingState) + this.parser = parser + this.ruleIndex = SolidityParser.RULE_stringLiteral + } + + StringLiteralFragment = function(i) { + if (i === undefined) { + i = null + } + if (i === null) { + return this.getTokens(SolidityParser.StringLiteralFragment) + } else { + return this.getToken(SolidityParser.StringLiteralFragment, i) + } + } + enterRule(listener) { + if (listener instanceof SolidityListener) { + listener.enterStringLiteral(this) + } + } + exitRule(listener) { + if (listener instanceof SolidityListener) { + listener.exitStringLiteral(this) + } + } +} -SolidityParser.SourceUnitContext = SourceUnitContext; -SolidityParser.PragmaDirectiveContext = PragmaDirectiveContext; -SolidityParser.PragmaNameContext = PragmaNameContext; -SolidityParser.PragmaValueContext = PragmaValueContext; -SolidityParser.VersionContext = VersionContext; -SolidityParser.VersionOperatorContext = VersionOperatorContext; -SolidityParser.VersionConstraintContext = VersionConstraintContext; -SolidityParser.ImportDeclarationContext = ImportDeclarationContext; -SolidityParser.ImportDirectiveContext = ImportDirectiveContext; -SolidityParser.ContractDefinitionContext = ContractDefinitionContext; -SolidityParser.InheritanceSpecifierContext = InheritanceSpecifierContext; -SolidityParser.ContractPartContext = ContractPartContext; -SolidityParser.StateVariableDeclarationContext = StateVariableDeclarationContext; -SolidityParser.FileLevelConstantContext = FileLevelConstantContext; -SolidityParser.UsingForDeclarationContext = UsingForDeclarationContext; -SolidityParser.StructDefinitionContext = StructDefinitionContext; -SolidityParser.ModifierDefinitionContext = ModifierDefinitionContext; -SolidityParser.ModifierInvocationContext = ModifierInvocationContext; -SolidityParser.FunctionDefinitionContext = FunctionDefinitionContext; -SolidityParser.FunctionDescriptorContext = FunctionDescriptorContext; -SolidityParser.ReturnParametersContext = ReturnParametersContext; -SolidityParser.ModifierListContext = ModifierListContext; -SolidityParser.EventDefinitionContext = EventDefinitionContext; -SolidityParser.EnumValueContext = EnumValueContext; -SolidityParser.EnumDefinitionContext = EnumDefinitionContext; -SolidityParser.ParameterListContext = ParameterListContext; -SolidityParser.ParameterContext = ParameterContext; -SolidityParser.EventParameterListContext = EventParameterListContext; -SolidityParser.EventParameterContext = EventParameterContext; -SolidityParser.FunctionTypeParameterListContext = FunctionTypeParameterListContext; -SolidityParser.FunctionTypeParameterContext = FunctionTypeParameterContext; -SolidityParser.VariableDeclarationContext = VariableDeclarationContext; -SolidityParser.TypeNameContext = TypeNameContext; -SolidityParser.UserDefinedTypeNameContext = UserDefinedTypeNameContext; -SolidityParser.MappingKeyContext = MappingKeyContext; -SolidityParser.MappingContext = MappingContext; -SolidityParser.FunctionTypeNameContext = FunctionTypeNameContext; -SolidityParser.StorageLocationContext = StorageLocationContext; -SolidityParser.StateMutabilityContext = StateMutabilityContext; -SolidityParser.BlockContext = BlockContext; -SolidityParser.StatementContext = StatementContext; -SolidityParser.ExpressionStatementContext = ExpressionStatementContext; -SolidityParser.IfStatementContext = IfStatementContext; -SolidityParser.TryStatementContext = TryStatementContext; -SolidityParser.CatchClauseContext = CatchClauseContext; -SolidityParser.WhileStatementContext = WhileStatementContext; -SolidityParser.SimpleStatementContext = SimpleStatementContext; -SolidityParser.ForStatementContext = ForStatementContext; -SolidityParser.InlineAssemblyStatementContext = InlineAssemblyStatementContext; -SolidityParser.DoWhileStatementContext = DoWhileStatementContext; -SolidityParser.ContinueStatementContext = ContinueStatementContext; -SolidityParser.BreakStatementContext = BreakStatementContext; -SolidityParser.ReturnStatementContext = ReturnStatementContext; -SolidityParser.ThrowStatementContext = ThrowStatementContext; -SolidityParser.EmitStatementContext = EmitStatementContext; -SolidityParser.VariableDeclarationStatementContext = VariableDeclarationStatementContext; -SolidityParser.VariableDeclarationListContext = VariableDeclarationListContext; -SolidityParser.IdentifierListContext = IdentifierListContext; -SolidityParser.ElementaryTypeNameContext = ElementaryTypeNameContext; -SolidityParser.ExpressionContext = ExpressionContext; -SolidityParser.PrimaryExpressionContext = PrimaryExpressionContext; -SolidityParser.ExpressionListContext = ExpressionListContext; -SolidityParser.NameValueListContext = NameValueListContext; -SolidityParser.NameValueContext = NameValueContext; -SolidityParser.FunctionCallArgumentsContext = FunctionCallArgumentsContext; -SolidityParser.FunctionCallContext = FunctionCallContext; -SolidityParser.AssemblyBlockContext = AssemblyBlockContext; -SolidityParser.AssemblyItemContext = AssemblyItemContext; -SolidityParser.AssemblyExpressionContext = AssemblyExpressionContext; -SolidityParser.AssemblyMemberContext = AssemblyMemberContext; -SolidityParser.AssemblyCallContext = AssemblyCallContext; -SolidityParser.AssemblyLocalDefinitionContext = AssemblyLocalDefinitionContext; -SolidityParser.AssemblyAssignmentContext = AssemblyAssignmentContext; -SolidityParser.AssemblyIdentifierOrListContext = AssemblyIdentifierOrListContext; -SolidityParser.AssemblyIdentifierListContext = AssemblyIdentifierListContext; -SolidityParser.AssemblyStackAssignmentContext = AssemblyStackAssignmentContext; -SolidityParser.LabelDefinitionContext = LabelDefinitionContext; -SolidityParser.AssemblySwitchContext = AssemblySwitchContext; -SolidityParser.AssemblyCaseContext = AssemblyCaseContext; -SolidityParser.AssemblyFunctionDefinitionContext = AssemblyFunctionDefinitionContext; -SolidityParser.AssemblyFunctionReturnsContext = AssemblyFunctionReturnsContext; -SolidityParser.AssemblyForContext = AssemblyForContext; -SolidityParser.AssemblyIfContext = AssemblyIfContext; -SolidityParser.AssemblyLiteralContext = AssemblyLiteralContext; -SolidityParser.SubAssemblyContext = SubAssemblyContext; -SolidityParser.TupleExpressionContext = TupleExpressionContext; -SolidityParser.TypeNameExpressionContext = TypeNameExpressionContext; -SolidityParser.NumberLiteralContext = NumberLiteralContext; -SolidityParser.IdentifierContext = IdentifierContext; -SolidityParser.HexLiteralContext = HexLiteralContext; -SolidityParser.OverrideSpecifierContext = OverrideSpecifierContext; -SolidityParser.StringLiteralContext = StringLiteralContext; +SolidityParser.SourceUnitContext = SourceUnitContext +SolidityParser.PragmaDirectiveContext = PragmaDirectiveContext +SolidityParser.PragmaNameContext = PragmaNameContext +SolidityParser.PragmaValueContext = PragmaValueContext +SolidityParser.VersionContext = VersionContext +SolidityParser.VersionOperatorContext = VersionOperatorContext +SolidityParser.VersionConstraintContext = VersionConstraintContext +SolidityParser.ImportDeclarationContext = ImportDeclarationContext +SolidityParser.ImportDirectiveContext = ImportDirectiveContext +SolidityParser.ContractDefinitionContext = ContractDefinitionContext +SolidityParser.InheritanceSpecifierContext = InheritanceSpecifierContext +SolidityParser.ContractPartContext = ContractPartContext +SolidityParser.StateVariableDeclarationContext = StateVariableDeclarationContext +SolidityParser.FileLevelConstantContext = FileLevelConstantContext +SolidityParser.UsingForDeclarationContext = UsingForDeclarationContext +SolidityParser.StructDefinitionContext = StructDefinitionContext +SolidityParser.ModifierDefinitionContext = ModifierDefinitionContext +SolidityParser.ModifierInvocationContext = ModifierInvocationContext +SolidityParser.FunctionDefinitionContext = FunctionDefinitionContext +SolidityParser.FunctionDescriptorContext = FunctionDescriptorContext +SolidityParser.ReturnParametersContext = ReturnParametersContext +SolidityParser.ModifierListContext = ModifierListContext +SolidityParser.EventDefinitionContext = EventDefinitionContext +SolidityParser.EnumValueContext = EnumValueContext +SolidityParser.EnumDefinitionContext = EnumDefinitionContext +SolidityParser.ParameterListContext = ParameterListContext +SolidityParser.ParameterContext = ParameterContext +SolidityParser.EventParameterListContext = EventParameterListContext +SolidityParser.EventParameterContext = EventParameterContext +SolidityParser.FunctionTypeParameterListContext = FunctionTypeParameterListContext +SolidityParser.FunctionTypeParameterContext = FunctionTypeParameterContext +SolidityParser.VariableDeclarationContext = VariableDeclarationContext +SolidityParser.TypeNameContext = TypeNameContext +SolidityParser.UserDefinedTypeNameContext = UserDefinedTypeNameContext +SolidityParser.MappingKeyContext = MappingKeyContext +SolidityParser.MappingContext = MappingContext +SolidityParser.FunctionTypeNameContext = FunctionTypeNameContext +SolidityParser.StorageLocationContext = StorageLocationContext +SolidityParser.StateMutabilityContext = StateMutabilityContext +SolidityParser.BlockContext = BlockContext +SolidityParser.StatementContext = StatementContext +SolidityParser.ExpressionStatementContext = ExpressionStatementContext +SolidityParser.IfStatementContext = IfStatementContext +SolidityParser.TryStatementContext = TryStatementContext +SolidityParser.CatchClauseContext = CatchClauseContext +SolidityParser.WhileStatementContext = WhileStatementContext +SolidityParser.SimpleStatementContext = SimpleStatementContext +SolidityParser.ForStatementContext = ForStatementContext +SolidityParser.InlineAssemblyStatementContext = InlineAssemblyStatementContext +SolidityParser.DoWhileStatementContext = DoWhileStatementContext +SolidityParser.ContinueStatementContext = ContinueStatementContext +SolidityParser.BreakStatementContext = BreakStatementContext +SolidityParser.ReturnStatementContext = ReturnStatementContext +SolidityParser.ThrowStatementContext = ThrowStatementContext +SolidityParser.EmitStatementContext = EmitStatementContext +SolidityParser.VariableDeclarationStatementContext = VariableDeclarationStatementContext +SolidityParser.VariableDeclarationListContext = VariableDeclarationListContext +SolidityParser.IdentifierListContext = IdentifierListContext +SolidityParser.ElementaryTypeNameContext = ElementaryTypeNameContext +SolidityParser.ExpressionContext = ExpressionContext +SolidityParser.PrimaryExpressionContext = PrimaryExpressionContext +SolidityParser.ExpressionListContext = ExpressionListContext +SolidityParser.NameValueListContext = NameValueListContext +SolidityParser.NameValueContext = NameValueContext +SolidityParser.FunctionCallArgumentsContext = FunctionCallArgumentsContext +SolidityParser.FunctionCallContext = FunctionCallContext +SolidityParser.AssemblyBlockContext = AssemblyBlockContext +SolidityParser.AssemblyItemContext = AssemblyItemContext +SolidityParser.AssemblyExpressionContext = AssemblyExpressionContext +SolidityParser.AssemblyMemberContext = AssemblyMemberContext +SolidityParser.AssemblyCallContext = AssemblyCallContext +SolidityParser.AssemblyLocalDefinitionContext = AssemblyLocalDefinitionContext +SolidityParser.AssemblyAssignmentContext = AssemblyAssignmentContext +SolidityParser.AssemblyIdentifierOrListContext = AssemblyIdentifierOrListContext +SolidityParser.AssemblyIdentifierListContext = AssemblyIdentifierListContext +SolidityParser.AssemblyStackAssignmentContext = AssemblyStackAssignmentContext +SolidityParser.LabelDefinitionContext = LabelDefinitionContext +SolidityParser.AssemblySwitchContext = AssemblySwitchContext +SolidityParser.AssemblyCaseContext = AssemblyCaseContext +SolidityParser.AssemblyFunctionDefinitionContext = AssemblyFunctionDefinitionContext +SolidityParser.AssemblyFunctionReturnsContext = AssemblyFunctionReturnsContext +SolidityParser.AssemblyForContext = AssemblyForContext +SolidityParser.AssemblyIfContext = AssemblyIfContext +SolidityParser.AssemblyLiteralContext = AssemblyLiteralContext +SolidityParser.SubAssemblyContext = SubAssemblyContext +SolidityParser.TupleExpressionContext = TupleExpressionContext +SolidityParser.TypeNameExpressionContext = TypeNameExpressionContext +SolidityParser.NumberLiteralContext = NumberLiteralContext +SolidityParser.IdentifierContext = IdentifierContext +SolidityParser.HexLiteralContext = HexLiteralContext +SolidityParser.OverrideSpecifierContext = OverrideSpecifierContext +SolidityParser.StringLiteralContext = StringLiteralContext diff --git a/src/tokens-string.js b/src/tokens-string.js new file mode 100644 index 0000000..1be3074 --- /dev/null +++ b/src/tokens-string.js @@ -0,0 +1,4 @@ +// This is an indirect file to import the tokens string +// It needs to be a js file so that tsc doesn't complain +import tokens from './lib/Solidity.tokens' +export default tokens diff --git a/src/tokens.js b/src/tokens.ts similarity index 70% rename from src/tokens.js rename to src/tokens.ts index 9293240..e2fc1a7 100644 --- a/src/tokens.js +++ b/src/tokens.ts @@ -1,4 +1,7 @@ -import tokens from './lib/Solidity.tokens' +import { Token, AntlrToken, TokenizeOptions } from './types' +import untypedTokens from './tokens-string' + +const tokens = untypedTokens as string const TYPE_TOKENS = [ 'var', @@ -9,15 +12,15 @@ const TYPE_TOKENS = [ 'Uint', 'Byte', 'Fixed', - 'UFixed' + 'UFixed', ] -function rsplit(str, value) { +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) { +function normalizeTokenType(value: string) { if (value.endsWith("'")) { value = value.substring(0, value.length - 1) } @@ -27,7 +30,7 @@ function normalizeTokenType(value) { return value } -function getTokenType(value) { +function getTokenType(value: string) { if (value === 'Identifier' || value === 'from') { return 'Identifier' } else if (value === 'TrueLiteral' || value === 'FalseLiteral') { @@ -56,28 +59,33 @@ function getTokenType(value) { function getTokenTypeMap() { return tokens .split('\n') - .map(line => rsplit(line, '=')) - .reduce((acum, [value, key]) => { + .map((line) => rsplit(line, '=')) + .reduce((acum: any, [value, key]) => { acum[parseInt(key, 10)] = normalizeTokenType(value) return acum }, {}) } -export function buildTokenList(tokens, options) { +export function buildTokenList( + tokens: AntlrToken[], + options: TokenizeOptions +): Token[] { const tokenTypes = getTokenTypeMap() - return tokens.map(token => { + const result = tokens.map((token) => { const type = getTokenType(tokenTypes[token.type]) - const node = { type, value: token.text } - if (options.range) { + const node: Token = { type, value: token.text } + if (options.range === true) { node.range = [token.start, token.stop + 1] } - if (options.loc) { + if (options.loc === true) { node.loc = { start: { line: token.line, column: token.column }, - end: { line: token.line, column: token.column + token.text.length } + end: { line: token.line, column: token.column + token.text.length }, } } return node }) + + return result } diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..eeeb25c --- /dev/null +++ b/src/types.ts @@ -0,0 +1,38 @@ +export interface Node { + type: string +} + +export interface AntlrToken { + type: string + text: string + start: number + stop: number + line: number + column: number +} + +export interface TokenizeOptions { + range?: boolean + loc?: boolean +} + +export interface ParseOptions extends TokenizeOptions { + tokens?: boolean + tolerant?: boolean +} + +export interface Token { + type: string + value: string + range?: [number, number] + loc?: { + start: { + line: number + column: number + } + end: { + line: number + column: number + } + } +} diff --git a/test/ast.js b/test/ast.js index 0a90658..90ac00b 100644 --- a/test/ast.js +++ b/test/ast.js @@ -1,2427 +1,2467 @@ const { assert } = require('chai') -const parser = require('../src/index') +const parser = require('..') const { parseContract, parseNode, parseStatement, parseExpression, - parseAssembly + parseAssembly, } = require('./utils') describe('AST', () => { - - it("SourceUnit", function() { - var ast = parser.parse(""); + it('SourceUnit', function () { + var ast = parser.parse('') assert.deepEqual(ast, { - "type": "SourceUnit", - "children": [] - }); + type: 'SourceUnit', + children: [], + }) }) - it("EnumDefinition / EnumValue", function() { - var ast = parseNode("enum Hello { A, B, C }") + it('EnumDefinition / EnumValue', function () { + var ast = parseNode('enum Hello { A, B, C }') assert.deepEqual(ast, { - "type": "EnumDefinition", - "name": "Hello", - "members": [ + type: 'EnumDefinition', + name: 'Hello', + members: [ { - "type": "EnumValue", - "name": "A" + type: 'EnumValue', + name: 'A', }, { - "type": "EnumValue", - "name": "B" + type: 'EnumValue', + name: 'B', }, { - "type": "EnumValue", - "name": "C" - } - ] + type: 'EnumValue', + name: 'C', + }, + ], }) }) - it("UsingForDeclaration", function() { - var ast = parseNode("using Lib for uint;") + it('UsingForDeclaration', function () { + var ast = parseNode('using Lib for uint;') assert.deepEqual(ast, { - "type": "UsingForDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" - }, - "libraryName": "Lib" + type: 'UsingForDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', + }, + libraryName: 'Lib', }) - ast = parseNode("using Lib for *;") + ast = parseNode('using Lib for *;') assert.deepEqual(ast, { - "type": "UsingForDeclaration", - "typeName": null, - "libraryName": "Lib" + type: 'UsingForDeclaration', + typeName: null, + libraryName: 'Lib', }) - ast = parseNode("using Lib for S;") + ast = parseNode('using Lib for S;') assert.deepEqual(ast, { - "type": "UsingForDeclaration", - "typeName": { - "type": "UserDefinedTypeName", - "namePath": "S" - }, - "libraryName": "Lib" + type: 'UsingForDeclaration', + typeName: { + type: 'UserDefinedTypeName', + namePath: 'S', + }, + libraryName: 'Lib', }) - }) const versions = [ - "0.4.12", - "0.0.0", "0.0", "0", - ">0.5.1", ">0.5", ">1", - ">=100.500.100", ">=100.500", - "^0.4.0", "^0.4", "^1", - "~0.3.11",, "~1.3", "~10", - "=0.0.1", "=0.6", "=1", - "<=1.1.1", "<=11.11", "<=111", - "<0.5.11", ">=0.6.7 <0.7.0"] + '0.4.12', + '0.0.0', + '0.0', + '0', + '>0.5.1', + '>0.5', + '>1', + '>=100.500.100', + '>=100.500', + '^0.4.0', + '^0.4', + '^1', + '~0.3.11', + , + '~1.3', + '~10', + '=0.0.1', + '=0.6', + '=1', + '<=1.1.1', + '<=11.11', + '<=111', + '<0.5.11', + '>=0.6.7 <0.7.0', + ] versions.forEach(function (version) { - it("PragmaDirective " + version, function() { - var ast = parser.parse("pragma solidity " + version + ";") + it('PragmaDirective ' + version, function () { + var ast = parser.parse('pragma solidity ' + version + ';') var pragma = ast.children[0] assert.deepEqual(pragma, { - "type": "PragmaDirective", - "name": "solidity", - "value": version + type: 'PragmaDirective', + name: 'solidity', + value: version, }) }) }) - it("ContractDefinition", function() { - var ast = parseContract("contract test {}") + it('ContractDefinition', function () { + var ast = parseContract('contract test {}') assert.deepEqual(ast, { - "type": "ContractDefinition", - "name": "test", - "baseContracts": [], - "subNodes": [], - "kind": "contract" + type: 'ContractDefinition', + name: 'test', + baseContracts: [], + subNodes: [], + kind: 'contract', }) // inheritance - ast = parseContract("contract test is foo, bar {}") + ast = parseContract('contract test is foo, bar {}') assert.deepEqual(ast, { - "type": "ContractDefinition", - "name": "test", - "baseContracts": [ - { - "type": "InheritanceSpecifier", - "baseName": { - "type": "UserDefinedTypeName", - "namePath": "foo" + type: 'ContractDefinition', + name: 'test', + baseContracts: [ + { + type: 'InheritanceSpecifier', + baseName: { + type: 'UserDefinedTypeName', + namePath: 'foo', }, - "arguments": [] + arguments: [], }, { - "type": "InheritanceSpecifier", - "baseName": { - "type": "UserDefinedTypeName", - "namePath": "bar" + type: 'InheritanceSpecifier', + baseName: { + type: 'UserDefinedTypeName', + namePath: 'bar', }, - "arguments": [] - } + arguments: [], + }, ], - "subNodes": [], - "kind": "contract" + subNodes: [], + kind: 'contract', }) // library - ast = parseContract("library test {}") + ast = parseContract('library test {}') assert.deepEqual(ast, { - "type": "ContractDefinition", - "name": "test", - "baseContracts": [], - "subNodes": [], - "kind": "library" + type: 'ContractDefinition', + name: 'test', + baseContracts: [], + subNodes: [], + kind: 'library', }) // interface - ast = parseContract("interface test {}") + ast = parseContract('interface test {}') assert.deepEqual(ast, { - "type": "ContractDefinition", - "name": "test", - "baseContracts": [], - "subNodes": [], - "kind": "interface" + type: 'ContractDefinition', + name: 'test', + baseContracts: [], + subNodes: [], + kind: 'interface', }) }) it('FunctionDefinition constructor case', () => { - var ast = parseNode("constructor(uint a) public {}") + var ast = parseNode('constructor(uint a) public {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": null, - "parameters": [ - { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'FunctionDefinition', + name: null, + parameters: [ + { + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] + returnParameters: null, + body: { + type: 'Block', + statements: [], }, - "visibility": "public", - "modifiers": [], - "override": null, - "isConstructor": true, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": null, + visibility: 'public', + modifiers: [], + override: null, + isConstructor: true, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: null, }) }) it('FunctionDefinition constructor case without public', () => { - var ast = parseNode("constructor(uint a) {}") + var ast = parseNode('constructor(uint a) {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": null, - "parameters": [ - { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'FunctionDefinition', + name: null, + parameters: [ + { + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] + returnParameters: null, + body: { + type: 'Block', + statements: [], }, - "visibility": "default", - "modifiers": [], - "override": null, - "isConstructor": true, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": null, + visibility: 'default', + modifiers: [], + override: null, + isConstructor: true, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: null, }) }) it('FunctionDefinition fallback case', () => { - var ast = parseNode("fallback () external {}") + var ast = parseNode('fallback () external {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": null, - "parameters": [], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] + type: 'FunctionDefinition', + name: null, + parameters: [], + returnParameters: null, + body: { + type: 'Block', + statements: [], }, - "visibility": "external", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": true, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": null, + visibility: 'external', + modifiers: [], + override: null, + isConstructor: false, + isFallback: true, + isReceiveEther: false, + isVirtual: false, + stateMutability: null, }) }) it('FunctionDefinition fallback old definition', () => { - var ast = parseNode("function () external {}") + var ast = parseNode('function () external {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": '', - "parameters": [], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] + type: 'FunctionDefinition', + name: '', + parameters: [], + returnParameters: null, + body: { + type: 'Block', + statements: [], }, - "visibility": "external", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": true, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": null, + visibility: 'external', + modifiers: [], + override: null, + isConstructor: false, + isFallback: true, + isReceiveEther: false, + isVirtual: false, + stateMutability: null, }) }) it('FunctionDefinition fallback case missing "external" decorator throws', () => { assert.throws( - () => parseNode("fallback () {}"), + () => parseNode('fallback () {}'), Error, 'Fallback functions have to be declared "external"' - ); + ) }) it('FunctionDefinition fallback case with parameters throws', () => { assert.throws( - () => parseNode("fallback (uint256 myUint) external {}"), + () => parseNode('fallback (uint256 myUint) external {}'), Error, 'Fallback functions cannot have parameters' - ); + ) }) it('FunctionDefinition fallback case with return parameters throws', () => { assert.throws( - () => parseNode("fallback () external returns (uint256 myUint) {}"), + () => parseNode('fallback () external returns (uint256 myUint) {}'), Error, 'Fallback functions cannot have return parameters' - ); + ) }) it('FunctionDefinition receive ether case', () => { - var ast = parseNode("receive () external payable {}") + var ast = parseNode('receive () external payable {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": null, - "parameters": [], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] + type: 'FunctionDefinition', + name: null, + parameters: [], + returnParameters: null, + body: { + type: 'Block', + statements: [], }, - "visibility": "external", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": false, - "isReceiveEther": true, - "isVirtual": false, - "stateMutability": "payable", + visibility: 'external', + modifiers: [], + override: null, + isConstructor: false, + isFallback: false, + isReceiveEther: true, + isVirtual: false, + stateMutability: 'payable', }) }) it('FunctionDefinition receive ether case missing "external" decorator throws', () => { assert.throws( - () => parseNode("receive () payable {}"), + () => parseNode('receive () payable {}'), Error, - 'Receive Ether functions have to be declared "external"'); + 'Receive Ether functions have to be declared "external"' + ) }) it('FunctionDefinition receive ether case missing "payable" decorator throws', () => { assert.throws( - () => parseNode("receive () external {}"), + () => parseNode('receive () external {}'), Error, - 'Receive Ether functions have to be declared "payable"'); + 'Receive Ether functions have to be declared "payable"' + ) }) it('FunctionDefinition receive ether case with parameters throws', () => { assert.throws( - () => parseNode("receive (uint256 myUint) external payable {}"), + () => parseNode('receive (uint256 myUint) external payable {}'), Error, - 'Receive Ether functions cannot have parameters'); + 'Receive Ether functions cannot have parameters' + ) }) it('FunctionDefinition receive ether case with return parameters throws', () => { assert.throws( - () => parseNode("receive () external payable returns (uint256 myUint) {}"), + () => + parseNode('receive () external payable returns (uint256 myUint) {}'), Error, - 'Receive Ether functions cannot have return parameters'); + 'Receive Ether functions cannot have return parameters' + ) }) it('FunctionDefinition with override', () => { - var ast = parseNode("function foo() public override {}") + var ast = parseNode('function foo() public override {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] + type: 'FunctionDefinition', + name: 'foo', + parameters: [], + returnParameters: null, + body: { + type: 'Block', + statements: [], }, - "visibility": "public", - "modifiers": [], - "override": [], - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": null, + visibility: 'public', + modifiers: [], + override: [], + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: null, }) }) it('StateVariableDeclaration with override', () => { - var ast = parseNode("uint public override foo;") + var ast = parseNode('uint public override foo;') assert.deepEqual(ast, { - "type": "StateVariableDeclaration", - "variables": [ + type: 'StateVariableDeclaration', + variables: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "foo", - "expression": null, - "visibility": "public", - "override": [], - "isStateVar": true, - "isDeclaredConst": false, - "isIndexed": false, - "isImmutable": false, - } + name: 'foo', + expression: null, + visibility: 'public', + override: [], + isStateVar: true, + isDeclaredConst: false, + isIndexed: false, + isImmutable: false, + }, ], - "initialValue": null + initialValue: null, }) }) it('StateVariableDeclaration with immutable', () => { - var ast = parseNode("uint immutable foo;") + var ast = parseNode('uint immutable foo;') assert.deepEqual(ast, { - "type": "StateVariableDeclaration", - "variables": [ + type: 'StateVariableDeclaration', + variables: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "foo", - "expression": null, - "visibility": "default", - "override": null, - "isStateVar": true, - "isDeclaredConst": false, - "isIndexed": false, - "isImmutable": true, - } + name: 'foo', + expression: null, + visibility: 'default', + override: null, + isStateVar: true, + isDeclaredConst: false, + isIndexed: false, + isImmutable: true, + }, ], - "initialValue": null + initialValue: null, }) }) it('FunctionDefinition with one explicit override', () => { - var ast = parseNode("function foo() public override(Base) {}") + var ast = parseNode('function foo() public override(Base) {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] - }, - "visibility": "public", - "modifiers": [], - "override": [{ - "type": "UserDefinedTypeName", - "namePath": "Base" - }], - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": null, + type: 'FunctionDefinition', + name: 'foo', + parameters: [], + returnParameters: null, + body: { + type: 'Block', + statements: [], + }, + visibility: 'public', + modifiers: [], + override: [ + { + type: 'UserDefinedTypeName', + namePath: 'Base', + }, + ], + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: null, }) }) it('StateVariableDeclaration with one explicit override', () => { - var ast = parseNode("uint public override(Base) foo;") + var ast = parseNode('uint public override(Base) foo;') assert.deepEqual(ast, { - "type": "StateVariableDeclaration", - "variables": [ + type: 'StateVariableDeclaration', + variables: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "foo", - "expression": null, - "visibility": "public", - "override": [{ - "type": "UserDefinedTypeName", - "namePath": "Base" - }], - "isStateVar": true, - "isDeclaredConst": false, - "isIndexed": false, - "isImmutable": false - } + name: 'foo', + expression: null, + visibility: 'public', + override: [ + { + type: 'UserDefinedTypeName', + namePath: 'Base', + }, + ], + isStateVar: true, + isDeclaredConst: false, + isIndexed: false, + isImmutable: false, + }, ], - "initialValue": null + initialValue: null, }) }) it('FunctionDefinition with two overrides', () => { - var ast = parseNode("function foo() public override(Base1, Base2) {}") + var ast = parseNode('function foo() public override(Base1, Base2) {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] - }, - "visibility": "public", - "modifiers": [], - "override": [{ - "type": "UserDefinedTypeName", - "namePath": "Base1" - }, { - "type": "UserDefinedTypeName", - "namePath": "Base2" - }], - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": null, + type: 'FunctionDefinition', + name: 'foo', + parameters: [], + returnParameters: null, + body: { + type: 'Block', + statements: [], + }, + visibility: 'public', + modifiers: [], + override: [ + { + type: 'UserDefinedTypeName', + namePath: 'Base1', + }, + { + type: 'UserDefinedTypeName', + namePath: 'Base2', + }, + ], + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: null, }) }) it('StateVariableDeclaration with two overrides', () => { - var ast = parseNode("uint public override(Base1, Base2) foo;") + var ast = parseNode('uint public override(Base1, Base2) foo;') assert.deepEqual(ast, { - "type": "StateVariableDeclaration", - "variables": [ + type: 'StateVariableDeclaration', + variables: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "foo", - "expression": null, - "visibility": "public", - "override": [{ - "type": "UserDefinedTypeName", - "namePath": "Base1" - }, { - "type": "UserDefinedTypeName", - "namePath": "Base2" - }], - "isStateVar": true, - "isDeclaredConst": false, - "isIndexed": false, - "isImmutable": false - } + name: 'foo', + expression: null, + visibility: 'public', + override: [ + { + type: 'UserDefinedTypeName', + namePath: 'Base1', + }, + { + type: 'UserDefinedTypeName', + namePath: 'Base2', + }, + ], + isStateVar: true, + isDeclaredConst: false, + isIndexed: false, + isImmutable: false, + }, ], - "initialValue": null + initialValue: null, }) }) - it("FunctionDefinition", function() { - var ast = parseNode("function foo(uint a) pure {}") + it('FunctionDefinition', function () { + var ast = parseNode('function foo(uint a) pure {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [ - { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'FunctionDefinition', + name: 'foo', + parameters: [ + { + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] - }, - "visibility": "default", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": "pure", - }) - - ast = parseNode("function foo() virtual public {}") + returnParameters: null, + body: { + type: 'Block', + statements: [], + }, + visibility: 'default', + modifiers: [], + override: null, + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: 'pure', + }) + + ast = parseNode('function foo() virtual public {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] - }, - "visibility": "public", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": true, - "stateMutability": null, + type: 'FunctionDefinition', + name: 'foo', + parameters: [], + returnParameters: null, + body: { + type: 'Block', + statements: [], + }, + visibility: 'public', + modifiers: [], + override: null, + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: true, + stateMutability: null, }) // Function Definition with return parameters - ast = parseNode("function foo(uint a) pure returns (uint256) {}") + ast = parseNode('function foo(uint a) pure returns (uint256) {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [ - { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'FunctionDefinition', + name: 'foo', + parameters: [ + { + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "returnParameters": [ - { - "isIndexed": false, - "isStateVar": false, - "name": null, - "storageLocation": null, - "type": "VariableDeclaration", - "typeName": { - "name": "uint256", - "type": "ElementaryTypeName" - } - } + returnParameters: [ + { + isIndexed: false, + isStateVar: false, + name: null, + storageLocation: null, + type: 'VariableDeclaration', + typeName: { + name: 'uint256', + type: 'ElementaryTypeName', + }, + }, ], - "body": { - "type": "Block", - "statements": [] + body: { + type: 'Block', + statements: [], }, - "visibility": "default", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": "pure" + visibility: 'default', + modifiers: [], + override: null, + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: 'pure', }) }) - it("top-level FunctionDefinition", function() { - var ast = parser.parse("function foo(uint a) pure {}") - var functionNode = ast.children[0]; + it('top-level FunctionDefinition', function () { + var ast = parser.parse('function foo(uint a) pure {}') + var functionNode = ast.children[0] assert.deepEqual(functionNode, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [ - { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'FunctionDefinition', + name: 'foo', + parameters: [ + { + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] - }, - "visibility": "default", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": "pure", - }) - - ast = parseNode("function foo() virtual public {}") + returnParameters: null, + body: { + type: 'Block', + statements: [], + }, + visibility: 'default', + modifiers: [], + override: null, + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: 'pure', + }) + + ast = parseNode('function foo() virtual public {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [], - "returnParameters": null, - "body": { - "type": "Block", - "statements": [] - }, - "visibility": "public", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": true, - "stateMutability": null, + type: 'FunctionDefinition', + name: 'foo', + parameters: [], + returnParameters: null, + body: { + type: 'Block', + statements: [], + }, + visibility: 'public', + modifiers: [], + override: null, + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: true, + stateMutability: null, }) // Function Definition with return parameters - ast = parseNode("function foo(uint a) pure returns (uint256) {}") + ast = parseNode('function foo(uint a) pure returns (uint256) {}') assert.deepEqual(ast, { - "type": "FunctionDefinition", - "name": "foo", - "parameters": [ - { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'FunctionDefinition', + name: 'foo', + parameters: [ + { + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "returnParameters": [ - { - "isIndexed": false, - "isStateVar": false, - "name": null, - "storageLocation": null, - "type": "VariableDeclaration", - "typeName": { - "name": "uint256", - "type": "ElementaryTypeName" - } - } + returnParameters: [ + { + isIndexed: false, + isStateVar: false, + name: null, + storageLocation: null, + type: 'VariableDeclaration', + typeName: { + name: 'uint256', + type: 'ElementaryTypeName', + }, + }, ], - "body": { - "type": "Block", - "statements": [] + body: { + type: 'Block', + statements: [], }, - "visibility": "default", - "modifiers": [], - "override": null, - "isConstructor": false, - "isFallback": false, - "isReceiveEther": false, - "isVirtual": false, - "stateMutability": "pure" + visibility: 'default', + modifiers: [], + override: null, + isConstructor: false, + isFallback: false, + isReceiveEther: false, + isVirtual: false, + stateMutability: 'pure', }) }) - it("file-level constants", function() { - var ast = parser.parse("uint constant EXPONENT = 10;") - var fileLevelConstantNode = ast.children[0]; + it('file-level constants', function () { + var ast = parser.parse('uint constant EXPONENT = 10;') + var fileLevelConstantNode = ast.children[0] assert.deepEqual(fileLevelConstantNode, { - type: "FileLevelConstant", + type: 'FileLevelConstant', initialValue: { - number: "10", + number: '10', subdenomination: null, - type: "NumberLiteral" + type: 'NumberLiteral', }, - name: "EXPONENT", + name: 'EXPONENT', typeName: { - name: "uint", - type: "ElementaryTypeName" - } + name: 'uint', + type: 'ElementaryTypeName', + }, }) }) - it("ModifierInvocation", function() { - var ast = parseNode("function foo(uint a) onlyOwner {}") + it('ModifierInvocation', function () { + var ast = parseNode('function foo(uint a) onlyOwner {}') assert.deepEqual(ast.modifiers[0], { - "type": "ModifierInvocation", - "name": "onlyOwner", - "arguments": null + type: 'ModifierInvocation', + name: 'onlyOwner', + arguments: null, }) - var ast = parseNode("function foo(uint a) onlyOwner() {}") + var ast = parseNode('function foo(uint a) onlyOwner() {}') assert.deepEqual(ast.modifiers[0], { - "type": "ModifierInvocation", - "name": "onlyOwner", - "arguments": [] + type: 'ModifierInvocation', + name: 'onlyOwner', + arguments: [], }) - ast = parseNode("function foo(uint a) bar(true, 1) {}") + ast = parseNode('function foo(uint a) bar(true, 1) {}') assert.deepEqual(ast.modifiers[0], { - "type": "ModifierInvocation", - "name": "bar", - "arguments": [ + type: 'ModifierInvocation', + name: 'bar', + arguments: [ { - "type": "BooleanLiteral", - "value": true + type: 'BooleanLiteral', + value: true, }, { - "type": "NumberLiteral", - "number": "1", - "subdenomination": null + type: 'NumberLiteral', + number: '1', + subdenomination: null, }, - ] + ], }) }) - it("TypeNameExpression", function() { - var stmt = parseStatement("uint(a);") + it('TypeNameExpression', function () { + var stmt = parseStatement('uint(a);') assert.deepEqual(stmt.expression.expression, { - "type": "TypeNameExpression", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" - } + type: 'TypeNameExpression', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', + }, }) - stmt = parseStatement("A.B[];") + stmt = parseStatement('A.B[];') assert.deepEqual(stmt.expression, { - "type": "TypeNameExpression", - "typeName": { - "type": "ArrayTypeName", - "baseTypeName": { - "expression": { - "name": "A", - "type": "Identifier" + type: 'TypeNameExpression', + typeName: { + type: 'ArrayTypeName', + baseTypeName: { + expression: { + name: 'A', + type: 'Identifier', }, - "memberName": "B", - "type": "MemberAccess" + memberName: 'B', + type: 'MemberAccess', }, - "length": null - } + length: null, + }, }) }) - it("TypeName", function() { - var ast = parseNode("uint256[2] a;") + it('TypeName', function () { + var ast = parseNode('uint256[2] a;') assert.deepEqual(ast.variables[0].typeName, { - "type": "ArrayTypeName", - "baseTypeName": { - "type": "ElementaryTypeName", - "name": "uint256" + type: 'ArrayTypeName', + baseTypeName: { + type: 'ElementaryTypeName', + name: 'uint256', + }, + length: { + type: 'NumberLiteral', + number: '2', + subdenomination: null, }, - "length": { - "type": "NumberLiteral", - "number": "2", - "subdenomination": null - } }) - ast = parseNode("uint256[] a;") + ast = parseNode('uint256[] a;') assert.deepEqual(ast.variables[0].typeName, { - "type": "ArrayTypeName", - "baseTypeName": { - "type": "ElementaryTypeName", - "name": "uint256" + type: 'ArrayTypeName', + baseTypeName: { + type: 'ElementaryTypeName', + name: 'uint256', }, - "length": null + length: null, }) // typename as expression - ast = parseExpression("A[]") + ast = parseExpression('A[]') assert.deepEqual(ast, { - "type": "TypeNameExpression", - "typeName": { - "type": "ArrayTypeName", - "baseTypeName": { - "type": "UserDefinedTypeName", - "namePath": "A" + type: 'TypeNameExpression', + typeName: { + type: 'ArrayTypeName', + baseTypeName: { + type: 'UserDefinedTypeName', + namePath: 'A', }, - "length": null - } + length: null, + }, }) - ast = parseExpression("uint256[]") + ast = parseExpression('uint256[]') assert.deepEqual(ast, { - "type": "TypeNameExpression", - "typeName": { - "type": "ArrayTypeName", - "baseTypeName": { - "type": "ElementaryTypeName", - "name": "uint256" + type: 'TypeNameExpression', + typeName: { + type: 'ArrayTypeName', + baseTypeName: { + type: 'ElementaryTypeName', + name: 'uint256', }, - "length": null - } + length: null, + }, }) }) - it("ElementaryTypeName", function() { - var ast = parseNode("address payable a;") + it('ElementaryTypeName', function () { + var ast = parseNode('address payable a;') assert.deepEqual(ast.variables[0].typeName, { - "type": "ElementaryTypeName", - "name": "address", - "stateMutability": "payable" + type: 'ElementaryTypeName', + name: 'address', + stateMutability: 'payable', }) }) - it("FunctionTypeName", function() { - var ast = parseNode("function (uint, uint) returns(bool) a;") + it('FunctionTypeName', function () { + var ast = parseNode('function (uint, uint) returns(bool) a;') assert.deepEqual(ast.variables[0].typeName, { - "type": "FunctionTypeName", - "parameterTypes": [ + type: 'FunctionTypeName', + parameterTypes: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": null, - "storageLocation": null, - "isStateVar": false, - "isIndexed": false + name: null, + storageLocation: null, + isStateVar: false, + isIndexed: false, }, { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": null, - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: null, + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "returnTypes": [ + returnTypes: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "bool" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'bool', }, - "name": null, - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: null, + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "visibility": "default", - "stateMutability": null + visibility: 'default', + stateMutability: null, }) }) - it("ReturnStatement", function() { - var ast = parseStatement("return;") + it('ReturnStatement', function () { + var ast = parseStatement('return;') assert.deepEqual(ast, { - "type": "ReturnStatement", - "expression": null + type: 'ReturnStatement', + expression: null, }) - ast = parseStatement("return 2;") + ast = parseStatement('return 2;') assert.deepEqual(ast, { - "type": "ReturnStatement", - "expression": { - "type": "NumberLiteral", - "number": "2", - "subdenomination": null - } + type: 'ReturnStatement', + expression: { + type: 'NumberLiteral', + number: '2', + subdenomination: null, + }, }) - ast = parseStatement("return ();") + ast = parseStatement('return ();') assert.deepEqual(ast, { - "type": "ReturnStatement", - "expression": { - "type": "TupleExpression", - "isArray": false, - "components": [] - } + type: 'ReturnStatement', + expression: { + type: 'TupleExpression', + isArray: false, + components: [], + }, }) }) - it("ThrowStatement", function() { - var ast = parseStatement("throw;") + it('ThrowStatement', function () { + var ast = parseStatement('throw;') assert.deepEqual(ast, { - "type": "ThrowStatement", + type: 'ThrowStatement', }) }) - it("EmitStatement", function() { - var ast = parseStatement("emit EventCalled(1);") + it('EmitStatement', function () { + var ast = parseStatement('emit EventCalled(1);') assert.deepEqual(ast, { - "type": "EmitStatement", - "eventCall": { - "type": "FunctionCall", - "expression": { - "type": "Identifier", - "name": "EventCalled" - }, - "arguments": [ + type: 'EmitStatement', + eventCall: { + type: 'FunctionCall', + expression: { + type: 'Identifier', + name: 'EventCalled', + }, + arguments: [ { - "type": "NumberLiteral", - "number": "1", - "subdenomination": null - } + type: 'NumberLiteral', + number: '1', + subdenomination: null, + }, ], - "names": [] - } + names: [], + }, }) }) - it("StructDefinition", function() { - var ast = parseNode("struct hello { uint a; }") + it('StructDefinition', function () { + var ast = parseNode('struct hello { uint a; }') assert.deepEqual(ast, { - "type": "StructDefinition", - "name": "hello", - "members": [ - { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'StructDefinition', + name: 'hello', + members: [ + { + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } - ] + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, + ], }) }) - it("VariableDeclaration", function() { + it('VariableDeclaration', function () { // state variable - var ast = parseNode("uint a;") + var ast = parseNode('uint a;') assert.deepEqual(ast.variables[0], { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "expression": null, - "visibility": "default", - "isStateVar": true, - "isDeclaredConst": false, - "isIndexed": false, - "override": null, - "isImmutable": false, + name: 'a', + expression: null, + visibility: 'default', + isStateVar: true, + isDeclaredConst: false, + isIndexed: false, + override: null, + isImmutable: false, }) }) - it("WhileStatement", function() { - var stmt = parseStatement("while (true) {}") + it('WhileStatement', function () { + var stmt = parseStatement('while (true) {}') assert.deepEqual(stmt, { - "type": "WhileStatement", - "condition": { - "type": "BooleanLiteral", - "value": true + type: 'WhileStatement', + condition: { + type: 'BooleanLiteral', + value: true, + }, + body: { + type: 'Block', + statements: [], }, - "body": { - "type": "Block", - "statements": [] - } }) - stmt = parseStatement("do {} while (true);") + stmt = parseStatement('do {} while (true);') assert.deepEqual(stmt, { - "type": "DoWhileStatement", - "condition": { - "type": "BooleanLiteral", - "value": true + type: 'DoWhileStatement', + condition: { + type: 'BooleanLiteral', + value: true, + }, + body: { + type: 'Block', + statements: [], }, - "body": { - "type": "Block", - "statements": [] - } }) }) - it("IfStatement", function() { - var stmt = parseStatement("if (true) {}") + it('IfStatement', function () { + var stmt = parseStatement('if (true) {}') assert.deepEqual(stmt, { - "type": "IfStatement", - "condition": { - "type": "BooleanLiteral", - "value": true + type: 'IfStatement', + condition: { + type: 'BooleanLiteral', + value: true, }, - "trueBody": { - "type": "Block", - "statements": [] + trueBody: { + type: 'Block', + statements: [], }, - "falseBody": null + falseBody: null, }) // else - stmt = parseStatement("if (true) {} else {}") + stmt = parseStatement('if (true) {} else {}') assert.deepEqual(stmt, { - "type": "IfStatement", - "condition": { - "type": "BooleanLiteral", - "value": true + type: 'IfStatement', + condition: { + type: 'BooleanLiteral', + value: true, }, - "trueBody": { - "type": "Block", - "statements": [] + trueBody: { + type: 'Block', + statements: [], }, - "falseBody": { - "type": "Block", - "statements": [] + falseBody: { + type: 'Block', + statements: [], }, }) }) - it("TryStatement", function() { + it('TryStatement', function () { // try with one catch clause var stmt = parseStatement( - "try f(1, 2) returns (uint a) {} catch (bytes memory a) {}" + 'try f(1, 2) returns (uint a) {} catch (bytes memory a) {}' ) assert.deepEqual(stmt, { - "type": "TryStatement", - "expression": { - "type": "FunctionCall", - "expression": { - "type": "Identifier", - "name": "f" - }, - "arguments": [ + type: 'TryStatement', + expression: { + type: 'FunctionCall', + expression: { + type: 'Identifier', + name: 'f', + }, + arguments: [ { - "type": "NumberLiteral", - "number": "1", - "subdenomination": null + type: 'NumberLiteral', + number: '1', + subdenomination: null, }, { - "type": "NumberLiteral", - "number": "2", - "subdenomination": null - } + type: 'NumberLiteral', + number: '2', + subdenomination: null, + }, ], - "names": [] + names: [], }, - "returnParameters": [ + returnParameters: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "body": { - "type": "Block", - "statements": [] + body: { + type: 'Block', + statements: [], }, - "catchClauses": [ + catchClauses: [ { - "body": { - "statements": [], - "type": "Block" + body: { + statements: [], + type: 'Block', }, - "isReasonStringType": false, - "parameters": [ + isReasonStringType: false, + parameters: [ { - "isIndexed": false, - "isStateVar": false, - "name": "a", - "storageLocation": "memory", - "type": "VariableDeclaration", - "typeName": { - "name": "bytes", - "type": "ElementaryTypeName" - } - } + isIndexed: false, + isStateVar: false, + name: 'a', + storageLocation: 'memory', + type: 'VariableDeclaration', + typeName: { + name: 'bytes', + type: 'ElementaryTypeName', + }, + }, ], - "type": "CatchClause" - } - ] + type: 'CatchClause', + }, + ], }) // try with two catch clauses var stmt = parseStatement( - "try f(1, 2) returns (uint a) {} catch Error(string memory b) {} catch (bytes memory c) {}" + 'try f(1, 2) returns (uint a) {} catch Error(string memory b) {} catch (bytes memory c) {}' ) assert.deepEqual(stmt, { - "type": "TryStatement", - "expression": { - "type": "FunctionCall", - "expression": { - "type": "Identifier", - "name": "f" - }, - "arguments": [ + type: 'TryStatement', + expression: { + type: 'FunctionCall', + expression: { + type: 'Identifier', + name: 'f', + }, + arguments: [ { - "type": "NumberLiteral", - "number": "1", - "subdenomination": null + type: 'NumberLiteral', + number: '1', + subdenomination: null, }, { - "type": "NumberLiteral", - "number": "2", - "subdenomination": null - } + type: 'NumberLiteral', + number: '2', + subdenomination: null, + }, ], - "names": [] + names: [], }, - "returnParameters": [ + returnParameters: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "body": { - "type": "Block", - "statements": [] + body: { + type: 'Block', + statements: [], }, - "catchClauses": [ + catchClauses: [ { - "body": { - "statements": [], - "type": "Block" + body: { + statements: [], + type: 'Block', }, - "isReasonStringType": true, - "parameters": [ + isReasonStringType: true, + parameters: [ { - "isIndexed": false, - "isStateVar": false, - "name": "b", - "storageLocation": "memory", - "type": "VariableDeclaration", - "typeName": { - "name": "string", - "type": "ElementaryTypeName" - } - } + isIndexed: false, + isStateVar: false, + name: 'b', + storageLocation: 'memory', + type: 'VariableDeclaration', + typeName: { + name: 'string', + type: 'ElementaryTypeName', + }, + }, ], - "type": "CatchClause" + type: 'CatchClause', }, { - "body": { - "statements": [], - "type": "Block" + body: { + statements: [], + type: 'Block', }, - "isReasonStringType": false, - "parameters": [ + isReasonStringType: false, + parameters: [ { - "isIndexed": false, - "isStateVar": false, - "name": "c", - "storageLocation": "memory", - "type": "VariableDeclaration", - "typeName": { - "name": "bytes", - "type": "ElementaryTypeName" - } - } + isIndexed: false, + isStateVar: false, + name: 'c', + storageLocation: 'memory', + type: 'VariableDeclaration', + typeName: { + name: 'bytes', + type: 'ElementaryTypeName', + }, + }, ], - "type": "CatchClause" - } - ] + type: 'CatchClause', + }, + ], }) }) - it("UserDefinedTypeName", function() { - var ast = parseStatement("Foo.Bar a;") + it('UserDefinedTypeName', function () { + var ast = parseStatement('Foo.Bar a;') assert.deepEqual(ast.variables[0].typeName, { - "type": "UserDefinedTypeName", - "namePath": "Foo.Bar" + type: 'UserDefinedTypeName', + namePath: 'Foo.Bar', }) }) - it("ExpressionStatement", function() { - var stmt = parseStatement("true;") + it('ExpressionStatement', function () { + var stmt = parseStatement('true;') assert.deepEqual(stmt, { - "type": "ExpressionStatement", - "expression": { - "type": "BooleanLiteral", - "value": true - } + type: 'ExpressionStatement', + expression: { + type: 'BooleanLiteral', + value: true, + }, }) }) - it("NumberLiteral", function() { - var expr = parseExpression("2 ether") + it('NumberLiteral', function () { + var expr = parseExpression('2 ether') assert.deepEqual(expr, { - "type": "NumberLiteral", - "number": "2", - "subdenomination": "ether" + type: 'NumberLiteral', + number: '2', + subdenomination: 'ether', }) - expr = parseExpression("2.3e5") + expr = parseExpression('2.3e5') assert.deepEqual(expr, { - "type": "NumberLiteral", - "number": "2.3e5", - "subdenomination": null + type: 'NumberLiteral', + number: '2.3e5', + subdenomination: null, }) - expr = parseExpression(".1") + expr = parseExpression('.1') assert.deepEqual(expr, { - "type": "NumberLiteral", - "number": ".1", - "subdenomination": null + type: 'NumberLiteral', + number: '.1', + subdenomination: null, }) - expr = parseExpression("1_000_000") + expr = parseExpression('1_000_000') assert.deepEqual(expr, { - "type": "NumberLiteral", - "number": "1_000_000", - "subdenomination": null + type: 'NumberLiteral', + number: '1_000_000', + subdenomination: null, }) }) - it("StringLiteral with double quotes", function() { - var expr = parseExpression("\"Hello\"") + it('StringLiteral with double quotes', function () { + var expr = parseExpression('"Hello"') assert.deepEqual(expr, { - "type": "StringLiteral", - "value": "Hello", - "parts": ["Hello"], + type: 'StringLiteral', + value: 'Hello', + parts: ['Hello'], }) }) - it("StringLiteral with single quotes", function() { + it('StringLiteral with single quotes', function () { var expr = parseExpression("'Hello'") assert.deepEqual(expr, { - "type": "StringLiteral", - "value": "Hello", - "parts": ["Hello"], + type: 'StringLiteral', + value: 'Hello', + parts: ['Hello'], }) }) - it("StringLiteral with escaped double quotes", function() { - var expr = parseExpression("\"Hello \\\"goodbye\\\"\"") + it('StringLiteral with escaped double quotes', function () { + var expr = parseExpression('"Hello \\"goodbye\\""') assert.deepEqual(expr, { - "type": "StringLiteral", - "value": "Hello \"goodbye\"", - "parts": ["Hello \"goodbye\""], + type: 'StringLiteral', + value: 'Hello "goodbye"', + parts: ['Hello "goodbye"'], }) }) - it("StringLiteral with escaped single quotes", function() { - var expr = parseExpression("'Hello \\\'goodbye\\\''") + it('StringLiteral with escaped single quotes', function () { + var expr = parseExpression("'Hello \\'goodbye\\''") assert.deepEqual(expr, { - "type": "StringLiteral", - "value": "Hello 'goodbye'", - "parts": ["Hello 'goodbye'"], + type: 'StringLiteral', + value: "Hello 'goodbye'", + parts: ["Hello 'goodbye'"], }) }) - it("Multiline StringLiteral with newline", function() { - var expr = parseExpression("\"Hello \"\n\"World\"") + it('Multiline StringLiteral with newline', function () { + var expr = parseExpression('"Hello "\n"World"') assert.deepEqual(expr, { - "type": "StringLiteral", - "value": "Hello World", - "parts": ["Hello ", "World"], + type: 'StringLiteral', + value: 'Hello World', + parts: ['Hello ', 'World'], }) }) - it("Multiline StringLiteral with space", function() { - var expr = parseExpression("\"Hello \" \"World\"") + it('Multiline StringLiteral with space', function () { + var expr = parseExpression('"Hello " "World"') assert.deepEqual(expr, { - "type": "StringLiteral", - "value": "Hello World", - "parts": ["Hello ", "World"], + type: 'StringLiteral', + value: 'Hello World', + parts: ['Hello ', 'World'], }) }) - it("Multiline StringLiteral with no space", function() { - var expr = parseExpression("\"Hello \"\"World\"") + it('Multiline StringLiteral with no space', function () { + var expr = parseExpression('"Hello ""World"') assert.deepEqual(expr, { - "type": "StringLiteral", - "value": "Hello World", - "parts": ["Hello ", "World"], + type: 'StringLiteral', + value: 'Hello World', + parts: ['Hello ', 'World'], }) }) - it("HexLiteral", function() { - var expr = parseExpression("hex\"fafafa\"") + it('HexLiteral', function () { + var expr = parseExpression('hex"fafafa"') assert.deepEqual(expr, { - type: "HexLiteral", - value: "fafafa", - parts: ["fafafa"], + type: 'HexLiteral', + value: 'fafafa', + parts: ['fafafa'], }) }) - it("Empty HexLiteral", function() { - var expr = parseExpression("hex\"\"") + it('Empty HexLiteral', function () { + var expr = parseExpression('hex""') assert.deepEqual(expr, { - type: "HexLiteral", - value: "", - parts: [""] + type: 'HexLiteral', + value: '', + parts: [''], }) }) - it("Multipart HexLiteral", function() { - var expr = parseExpression("hex\"dead\" hex'beef'") + it('Multipart HexLiteral', function () { + var expr = parseExpression('hex"dead" hex\'beef\'') assert.deepEqual(expr, { - type: "HexLiteral", - value: "deadbeef", - parts: ["dead", "beef"] + type: 'HexLiteral', + value: 'deadbeef', + parts: ['dead', 'beef'], }) }) - it("BooleanLiteral", function() { - var expr = parseExpression("false") + it('BooleanLiteral', function () { + var expr = parseExpression('false') assert.deepEqual(expr, { - "type": "BooleanLiteral", - "value": false, + type: 'BooleanLiteral', + value: false, }) }) - it("Mapping with elementary type key", function() { - var ast = parseNode("mapping(uint => address) a;") + it('Mapping with elementary type key', function () { + var ast = parseNode('mapping(uint => address) a;') assert.deepEqual(ast.variables[0].typeName, { - "type": "Mapping", - "keyType": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'Mapping', + keyType: { + type: 'ElementaryTypeName', + name: 'uint', + }, + valueType: { + type: 'ElementaryTypeName', + name: 'address', }, - "valueType": { - "type": "ElementaryTypeName", - "name": "address" - } }) }) - it("Mapping with user defined type key", function() { - var ast = parseNode("mapping(Foo => address) a;") + it('Mapping with user defined type key', function () { + var ast = parseNode('mapping(Foo => address) a;') assert.deepEqual(ast.variables[0].typeName, { - "type": "Mapping", - "keyType": { - "type": "UserDefinedTypeName", - "namePath": "Foo" + type: 'Mapping', + keyType: { + type: 'UserDefinedTypeName', + namePath: 'Foo', + }, + valueType: { + type: 'ElementaryTypeName', + name: 'address', }, - "valueType": { - "type": "ElementaryTypeName", - "name": "address" - } }) }) - it("ModifierDefinition", function() { - var ast = parseNode("modifier onlyOwner {}") + it('ModifierDefinition', function () { + var ast = parseNode('modifier onlyOwner {}') assert.deepEqual(ast, { - "type": "ModifierDefinition", - "name": "onlyOwner", - "parameters": null, - "isVirtual": false, - "override": null, - "body": { - "type": "Block", - "statements": [] - } - }) - var ast = parseNode("modifier onlyOwner() {}") + type: 'ModifierDefinition', + name: 'onlyOwner', + parameters: null, + isVirtual: false, + override: null, + body: { + type: 'Block', + statements: [], + }, + }) + var ast = parseNode('modifier onlyOwner() {}') assert.deepEqual(ast, { - "type": "ModifierDefinition", - "name": "onlyOwner", - "parameters": [], - "isVirtual": false, - "override": null, - "body": { - "type": "Block", - "statements": [] - } + type: 'ModifierDefinition', + name: 'onlyOwner', + parameters: [], + isVirtual: false, + override: null, + body: { + type: 'Block', + statements: [], + }, }) }) - it("Expression", function() { + it('Expression', function () { // new expression - var expr = parseExpression("new MyContract") + var expr = parseExpression('new MyContract') assert.deepEqual(expr, { - "type": "NewExpression", - "typeName": { - "type": "UserDefinedTypeName", - "namePath": "MyContract" - } + type: 'NewExpression', + typeName: { + type: 'UserDefinedTypeName', + namePath: 'MyContract', + }, }) // prefix operation - var expr = parseExpression("!true") + var expr = parseExpression('!true') assert.deepEqual(expr, { - "type": "UnaryOperation", - "operator": "!", - "subExpression": { - "type": "BooleanLiteral", - "value": true + type: 'UnaryOperation', + operator: '!', + subExpression: { + type: 'BooleanLiteral', + value: true, }, - "isPrefix": true + isPrefix: true, }) // prefix operation - var expr = parseExpression("i++") + var expr = parseExpression('i++') assert.deepEqual(expr, { - "type": "UnaryOperation", - "operator": "++", - "subExpression": { - "type": "Identifier", - "name": "i" + type: 'UnaryOperation', + operator: '++', + subExpression: { + type: 'Identifier', + name: 'i', }, - "isPrefix": false + isPrefix: false, }) }) - it("FunctionCall", function() { - var expr = parseExpression("f(1, 2)") + it('FunctionCall', function () { + var expr = parseExpression('f(1, 2)') assert.deepEqual(expr, { - "type": "FunctionCall", - "expression": { - "type": "Identifier", - "name": "f" + type: 'FunctionCall', + expression: { + type: 'Identifier', + name: 'f', }, - "arguments": [ + arguments: [ { - "type": "NumberLiteral", - "number": "1", - "subdenomination": null + type: 'NumberLiteral', + number: '1', + subdenomination: null, }, { - "type": "NumberLiteral", - "number": "2", - "subdenomination": null - } + type: 'NumberLiteral', + number: '2', + subdenomination: null, + }, ], - "names": [] + names: [], }) - var expr = parseExpression("type(MyContract)") + var expr = parseExpression('type(MyContract)') assert.deepEqual(expr, { - "type": "FunctionCall", - "expression": { - "type": "Identifier", - "name": "type" + type: 'FunctionCall', + expression: { + type: 'Identifier', + name: 'type', }, - "arguments": [ + arguments: [ { - "type": "Identifier", - "name": "MyContract", - } + type: 'Identifier', + name: 'MyContract', + }, ], - "names": [] + names: [], }) }) - it("StateVariableDeclaration", function() { - var ast = parseNode("uint a;") + it('StateVariableDeclaration', function () { + var ast = parseNode('uint a;') assert.deepEqual(ast, { - "type": "StateVariableDeclaration", - "variables": [ + type: 'StateVariableDeclaration', + variables: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "expression": null, - "visibility": "default", - "override": null, - "isStateVar": true, - "isDeclaredConst": false, - "isIndexed": false, - "isImmutable": false - } + name: 'a', + expression: null, + visibility: 'default', + override: null, + isStateVar: true, + isDeclaredConst: false, + isIndexed: false, + isImmutable: false, + }, ], - "initialValue": null + initialValue: null, }) }) - it("ForStatement", function() { - var stmt = parseStatement("for (i = 0; i < 10; i++) {}") + it('ForStatement', function () { + var stmt = parseStatement('for (i = 0; i < 10; i++) {}') assert.deepEqual(stmt, { - "type": "ForStatement", - "initExpression": { - "type": "ExpressionStatement", - "expression": { - "type": "BinaryOperation", - "operator": "=", - "left": { - "type": "Identifier", - "name": "i" + type: 'ForStatement', + initExpression: { + type: 'ExpressionStatement', + expression: { + type: 'BinaryOperation', + operator: '=', + left: { + type: 'Identifier', + name: 'i', }, - "right": { - "type": "NumberLiteral", - "number": "0", - "subdenomination": null - } - } - }, - "conditionExpression": { - "type": "BinaryOperation", - "operator": "<", - "left": { - "type": "Identifier", - "name": "i" - }, - "right": { - "type": "NumberLiteral", - "number": "10", - "subdenomination": null - } - }, - "loopExpression": { - "type": "ExpressionStatement", - "expression": { - "type": "UnaryOperation", - "operator": "++", - "subExpression": { - "type": "Identifier", - "name": "i" + right: { + type: 'NumberLiteral', + number: '0', + subdenomination: null, }, - "isPrefix": false - } + }, + }, + conditionExpression: { + type: 'BinaryOperation', + operator: '<', + left: { + type: 'Identifier', + name: 'i', + }, + right: { + type: 'NumberLiteral', + number: '10', + subdenomination: null, + }, + }, + loopExpression: { + type: 'ExpressionStatement', + expression: { + type: 'UnaryOperation', + operator: '++', + subExpression: { + type: 'Identifier', + name: 'i', + }, + isPrefix: false, + }, + }, + body: { + type: 'Block', + statements: [], }, - "body": { - "type": "Block", - "statements": [] - } }) - stmt = parseStatement("for (;; i++) {}") + stmt = parseStatement('for (;; i++) {}') assert.deepEqual(stmt, { - "type": "ForStatement", - "initExpression": null, - "conditionExpression": null, - "loopExpression": { - "type": "ExpressionStatement", - "expression": { - "type": "UnaryOperation", - "operator": "++", - "subExpression": { - "type": "Identifier", - "name": "i" + type: 'ForStatement', + initExpression: null, + conditionExpression: null, + loopExpression: { + type: 'ExpressionStatement', + expression: { + type: 'UnaryOperation', + operator: '++', + subExpression: { + type: 'Identifier', + name: 'i', }, - "isPrefix": false - } + isPrefix: false, + }, + }, + body: { + type: 'Block', + statements: [], }, - "body": { - "type": "Block", - "statements": [] - } }) }) - it("IdentifierList", function() { - var expr = parseExpression("(a,) = (1,2)") + it('IdentifierList', function () { + var expr = parseExpression('(a,) = (1,2)') assert.deepEqual(expr.left, { - "components": [ + components: [ { - "name": "a", - "type": "Identifier", + name: 'a', + type: 'Identifier', }, null, ], - "isArray": false, - "type": "TupleExpression", + isArray: false, + type: 'TupleExpression', }) - expr = parseExpression("(a) = (1,)") + expr = parseExpression('(a) = (1,)') assert.deepEqual(expr.left, { - "components": [ + components: [ { - "name": "a", - "type": "Identifier", + name: 'a', + type: 'Identifier', }, ], - "isArray": false, - "type": "TupleExpression", + isArray: false, + type: 'TupleExpression', }) - expr = parseExpression("(a,,b,) = (1,2,1)") + expr = parseExpression('(a,,b,) = (1,2,1)') assert.deepEqual(expr.left, { - "components": [ + components: [ { - "name": "a", - "type": "Identifier", + name: 'a', + type: 'Identifier', }, null, { - "name": "b", - "type": "Identifier", + name: 'b', + type: 'Identifier', }, null, ], - "isArray": false, - "type": "TupleExpression", + isArray: false, + type: 'TupleExpression', }) }) - it("Identifier", function() { - var expr = parseExpression("a") + it('Identifier', function () { + var expr = parseExpression('a') assert.deepEqual(expr, { - "type": "Identifier", - "name": "a", + type: 'Identifier', + name: 'a', }) - expr = parseExpression("calldata") + expr = parseExpression('calldata') assert.deepEqual(expr, { - "type": "Identifier", - "name": "calldata", + type: 'Identifier', + name: 'calldata', }) }) - it("TupleExpression", function() { + it('TupleExpression', function () { // tuple - var ast = parseExpression("(,a,, b,,)") + var ast = parseExpression('(,a,, b,,)') assert.deepEqual(ast, { - "type": "TupleExpression", - "components": [ + type: 'TupleExpression', + components: [ null, { - "type": "Identifier", - "name": "a" + type: 'Identifier', + name: 'a', }, null, { - "type": "Identifier", - "name": "b" + type: 'Identifier', + name: 'b', }, null, - null + null, ], - "isArray": false + isArray: false, }) // array - ast = parseExpression("[a, b]") + ast = parseExpression('[a, b]') assert.deepEqual(ast, { - "type": "TupleExpression", - "components": [ + type: 'TupleExpression', + components: [ { - "type": "Identifier", - "name": "a" + type: 'Identifier', + name: 'a', }, { - "type": "Identifier", - "name": "b" - } + type: 'Identifier', + name: 'b', + }, ], - "isArray": true + isArray: true, }) }) - it("VariableDeclarationStatement", function() { - var stmt = parseStatement("uint a;") + it('VariableDeclarationStatement', function () { + var stmt = parseStatement('uint a;') assert.deepEqual(stmt, { - "type": "VariableDeclarationStatement", - "variables": [ + type: 'VariableDeclarationStatement', + variables: [ { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "a", - "storageLocation": null, - "isStateVar": false, - "isIndexed": false - } + name: 'a', + storageLocation: null, + isStateVar: false, + isIndexed: false, + }, ], - "initialValue": null + initialValue: null, }) - stmt = parseStatement("var (a,,b) = 0;") + stmt = parseStatement('var (a,,b) = 0;') assert.deepEqual(stmt, { - "type": "VariableDeclarationStatement", - "initialValue": { - "number": "0", - "subdenomination": null, - "type": "NumberLiteral" + type: 'VariableDeclarationStatement', + initialValue: { + number: '0', + subdenomination: null, + type: 'NumberLiteral', }, - "variables": [ + variables: [ { - "isIndexed": false, - "isStateVar": false, - "name": "a", - "storageLocation": null, - "type": "VariableDeclaration", - "typeName": null + isIndexed: false, + isStateVar: false, + name: 'a', + storageLocation: null, + type: 'VariableDeclaration', + typeName: null, }, null, { - "isIndexed": false, - "isStateVar": false, - "name": "b", - "storageLocation": null, - "type": "VariableDeclaration", - "typeName": null - } - ] + isIndexed: false, + isStateVar: false, + name: 'b', + storageLocation: null, + type: 'VariableDeclaration', + typeName: null, + }, + ], }) - stmt = parseStatement("(uint a,, uint b) = 0;") + stmt = parseStatement('(uint a,, uint b) = 0;') assert.deepEqual(stmt, { - "type": "VariableDeclarationStatement", - "initialValue": { - "number": "0", - "subdenomination": null, - "type": "NumberLiteral" - }, - "variables": [ - { - "isIndexed": false, - "isStateVar": false, - "name": "a", - "storageLocation": null, - "type": "VariableDeclaration", - "typeName": { - "name": "uint", - "type": "ElementaryTypeName" - } + type: 'VariableDeclarationStatement', + initialValue: { + number: '0', + subdenomination: null, + type: 'NumberLiteral', + }, + variables: [ + { + isIndexed: false, + isStateVar: false, + name: 'a', + storageLocation: null, + type: 'VariableDeclaration', + typeName: { + name: 'uint', + type: 'ElementaryTypeName', + }, }, null, { - "isIndexed": false, - "isStateVar": false, - "name": "b", - "storageLocation": null, - "type": "VariableDeclaration", - "typeName": { - "name": "uint", - "type": "ElementaryTypeName" - } - } - ] + isIndexed: false, + isStateVar: false, + name: 'b', + storageLocation: null, + type: 'VariableDeclaration', + typeName: { + name: 'uint', + type: 'ElementaryTypeName', + }, + }, + ], }) }) - it("ImportDirective", function() { - var ast = parser.parse("import \"./abc.sol\";") + it('ImportDirective', function () { + var ast = parser.parse('import "./abc.sol";') assert.deepEqual(ast.children[0], { - "type": "ImportDirective", - "path": "./abc.sol", - "unitAlias": null, - "symbolAliases": null + type: 'ImportDirective', + path: './abc.sol', + unitAlias: null, + symbolAliases: null, }) - ast = parser.parse("import \"./abc.sol\" as x;") + ast = parser.parse('import "./abc.sol" as x;') assert.deepEqual(ast.children[0], { - "type": "ImportDirective", - "path": "./abc.sol", - "unitAlias": "x", - "symbolAliases": null + type: 'ImportDirective', + path: './abc.sol', + unitAlias: 'x', + symbolAliases: null, }) - ast = parser.parse("import * as x from \"./abc.sol\";") + ast = parser.parse('import * as x from "./abc.sol";') assert.deepEqual(ast.children[0], { - "type": "ImportDirective", - "path": "./abc.sol", - "unitAlias": "x", - "symbolAliases": null + type: 'ImportDirective', + path: './abc.sol', + unitAlias: 'x', + symbolAliases: null, }) - ast = parser.parse("import { a as b, c as d, f } from \"./abc.sol\";") + ast = parser.parse('import { a as b, c as d, f } from "./abc.sol";') assert.deepEqual(ast.children[0], { - "type": "ImportDirective", - "path": "./abc.sol", - "unitAlias": null, - "symbolAliases": [ - ["a", "b"], - ["c", "d"], - ["f", null], - ] + type: 'ImportDirective', + path: './abc.sol', + unitAlias: null, + symbolAliases: [ + ['a', 'b'], + ['c', 'd'], + ['f', null], + ], }) }) - it("EventDefinition", function() { - var ast = parseNode("event Foo(address indexed a, uint b);") + it('EventDefinition', function () { + var ast = parseNode('event Foo(address indexed a, uint b);') assert.deepEqual(ast, { - "type": "EventDefinition", - "name": "Foo", - "parameters": [ - { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "address" + type: 'EventDefinition', + name: 'Foo', + parameters: [ + { + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'address', }, - "name": "a", - "isStateVar": false, - "isIndexed": true + name: 'a', + isStateVar: false, + isIndexed: true, }, { - "type": "VariableDeclaration", - "typeName": { - "type": "ElementaryTypeName", - "name": "uint" + type: 'VariableDeclaration', + typeName: { + type: 'ElementaryTypeName', + name: 'uint', }, - "name": "b", - "isStateVar": false, - "isIndexed": false - } + name: 'b', + isStateVar: false, + isIndexed: false, + }, ], - "isAnonymous": false + isAnonymous: false, }) }) - it("InlineAssemblyStatement", function() { - var ast = parseStatement("assembly {}") + it('InlineAssemblyStatement', function () { + var ast = parseStatement('assembly {}') assert.deepEqual(ast, { - "type": "InlineAssemblyStatement", - "language": null, - "body": { - "type": "AssemblyBlock", - "operations": [] - } + type: 'InlineAssemblyStatement', + language: null, + body: { + type: 'AssemblyBlock', + operations: [], + }, }) - ast = parseStatement("assembly \"evmasm\" {}") + ast = parseStatement('assembly "evmasm" {}') assert.deepEqual(ast, { - "type": "InlineAssemblyStatement", - "language": "evmasm", - "body": { - "type": "AssemblyBlock", - "operations": [] - } + type: 'InlineAssemblyStatement', + language: 'evmasm', + body: { + type: 'AssemblyBlock', + operations: [], + }, }) }) - it("AssemblyCall", function() { - var ast = parseAssembly("mload(0x04)") + it('AssemblyCall', function () { + var ast = parseAssembly('mload(0x04)') assert.deepEqual(ast, { - "type": "AssemblyCall", - "functionName": "mload", - "arguments": [ + type: 'AssemblyCall', + functionName: 'mload', + arguments: [ { - "type": "HexNumber", - "value": "0x04" - } - ] + type: 'HexNumber', + value: '0x04', + }, + ], }) }) - it("AssemblyLiteral", function() { - var ast = parseAssembly("0x04") + it('AssemblyLiteral', function () { + var ast = parseAssembly('0x04') assert.deepEqual(ast, { - "type": "HexNumber", - "value": "0x04", + type: 'HexNumber', + value: '0x04', }) - ast = parseAssembly("\"hello\"") + ast = parseAssembly('"hello"') assert.deepEqual(ast, { - "type": "StringLiteral", - "value": "hello", - "parts": ["hello"], + type: 'StringLiteral', + value: 'hello', + parts: ['hello'], }) }) - it("AssemblySwitch / AssemblyCase", function() { - var ast = parseAssembly("switch x case 0 { y := mul(x, 2) } default { y := 0 }") + it('AssemblySwitch / AssemblyCase', function () { + var ast = parseAssembly( + 'switch x case 0 { y := mul(x, 2) } default { y := 0 }' + ) assert.deepEqual(ast, { - "type": "AssemblySwitch", - "expression": { - "type": "AssemblyCall", - "functionName": "x", - "arguments": [] - }, - "cases": [ - { - "type": "AssemblyCase", - "block": { - "type": "AssemblyBlock", - "operations": [ + type: 'AssemblySwitch', + expression: { + type: 'AssemblyCall', + functionName: 'x', + arguments: [], + }, + cases: [ + { + type: 'AssemblyCase', + block: { + type: 'AssemblyBlock', + operations: [ { - "type": "AssemblyAssignment", - "names": [ + type: 'AssemblyAssignment', + names: [ { - "type": "Identifier", - "name": "y" - } + type: 'Identifier', + name: 'y', + }, ], - "expression": { - "type": "AssemblyCall", - "functionName": "mul", - "arguments": [ + expression: { + type: 'AssemblyCall', + functionName: 'mul', + arguments: [ { - "type": "AssemblyCall", - "functionName": "x", - "arguments": [] + type: 'AssemblyCall', + functionName: 'x', + arguments: [], }, { - "type": "DecimalNumber", - "value": "2" - } - ] - } - } - ] + type: 'DecimalNumber', + value: '2', + }, + ], + }, + }, + ], + }, + value: { + type: 'DecimalNumber', + value: '0', }, - "value": { - "type": "DecimalNumber", - "value": "0" - } }, { - "type": "AssemblyCase", - "block": { - "type": "AssemblyBlock", - "operations": [ + type: 'AssemblyCase', + block: { + type: 'AssemblyBlock', + operations: [ { - "type": "AssemblyAssignment", - "names": [ + type: 'AssemblyAssignment', + names: [ { - "type": "Identifier", - "name": "y" - } + type: 'Identifier', + name: 'y', + }, ], - "expression": { - "type": "DecimalNumber", - "value": "0" - } - } - ] + expression: { + type: 'DecimalNumber', + value: '0', + }, + }, + ], }, - "default": true - } - ] + default: true, + }, + ], }) }) - it("AssemblyLocalDefinition", function() { - var ast = parseAssembly("let x := 0x04") + it('AssemblyLocalDefinition', function () { + var ast = parseAssembly('let x := 0x04') assert.deepEqual(ast, { - "type": "AssemblyLocalDefinition", - "names": [ + type: 'AssemblyLocalDefinition', + names: [ { - "type": "Identifier", - "name": "x" - } + type: 'Identifier', + name: 'x', + }, ], - "expression": { - "type": "HexNumber", - "value": "0x04" - } + expression: { + type: 'HexNumber', + value: '0x04', + }, }) - }) - it("AssemblyFunctionDefinition", function() { - var ast = parseAssembly("function power(base, exponent) -> result {}") + it('AssemblyFunctionDefinition', function () { + var ast = parseAssembly('function power(base, exponent) -> result {}') assert.deepEqual(ast, { - "type": "AssemblyFunctionDefinition", - "name": "power", - "arguments": [ + type: 'AssemblyFunctionDefinition', + name: 'power', + arguments: [ { - "type": "Identifier", - "name": "base" + type: 'Identifier', + name: 'base', }, { - "type": "Identifier", - "name": "exponent" - } + type: 'Identifier', + name: 'exponent', + }, ], - "returnArguments": [ + returnArguments: [ { - "type": "Identifier", - "name": "result" - } + type: 'Identifier', + name: 'result', + }, ], - "body": { - "type": "AssemblyBlock", - "operations": [] - } + body: { + type: 'AssemblyBlock', + operations: [], + }, }) - var ast = parseAssembly("function foo() -> result {}") + var ast = parseAssembly('function foo() -> result {}') assert.deepEqual(ast, { - "type": "AssemblyFunctionDefinition", - "name": "foo", - "arguments": [], - "returnArguments": [ - { - "type": "Identifier", - "name": "result" - } + type: 'AssemblyFunctionDefinition', + name: 'foo', + arguments: [], + returnArguments: [ + { + type: 'Identifier', + name: 'result', + }, ], - "body": { - "type": "AssemblyBlock", - "operations": [] - } + body: { + type: 'AssemblyBlock', + operations: [], + }, }) - var ast = parseAssembly("function foo(x) {}") + var ast = parseAssembly('function foo(x) {}') assert.deepEqual(ast, { - "type": "AssemblyFunctionDefinition", - "name": "foo", - "arguments": [ + type: 'AssemblyFunctionDefinition', + name: 'foo', + arguments: [ { - "type": "Identifier", - "name": "x" + type: 'Identifier', + name: 'x', }, ], - "returnArguments": [], - "body": { - "type": "AssemblyBlock", - "operations": [] - } + returnArguments: [], + body: { + type: 'AssemblyBlock', + operations: [], + }, }) }) - it("AssemblyAssignment", function() { - var ast = parseAssembly("a := 10") + it('AssemblyAssignment', function () { + var ast = parseAssembly('a := 10') assert.deepEqual(ast, { - "type": "AssemblyAssignment", - "names": [ + type: 'AssemblyAssignment', + names: [ { - "type": "Identifier", - "name": "a" - } + type: 'Identifier', + name: 'a', + }, ], - "expression": { - "type": "DecimalNumber", - "value": "10" - } + expression: { + type: 'DecimalNumber', + value: '10', + }, }) }) - it("AssemblyAssignment, left member access", function() { - var ast = parseAssembly("a.slot := 10") + it('AssemblyAssignment, left member access', function () { + var ast = parseAssembly('a.slot := 10') assert.deepEqual(ast, { - "type": "AssemblyAssignment", - "names": [ + type: 'AssemblyAssignment', + names: [ { - "type": "AssemblyMemberAccess", - "expression": { - "name": "a", - "type": "Identifier" + type: 'AssemblyMemberAccess', + expression: { + name: 'a', + type: 'Identifier', + }, + memberName: { + name: 'slot', + type: 'Identifier', }, - "memberName": { - "name": "slot", - "type": "Identifier" - } - } + }, ], - "expression": { - "type": "DecimalNumber", - "value": "10" - } + expression: { + type: 'DecimalNumber', + value: '10', + }, }) }) - it("AssemblyAssignment, right member access", function() { - var ast = parseAssembly("o := x.offset") + it('AssemblyAssignment, right member access', function () { + var ast = parseAssembly('o := x.offset') assert.deepEqual(ast, { - "type": "AssemblyAssignment", - "names": [ + type: 'AssemblyAssignment', + names: [ { - "type": "Identifier", - "name": "o" - } + type: 'Identifier', + name: 'o', + }, ], - "expression": { - "type": "AssemblyMemberAccess", - "expression": { - "name": "x", - "type": "Identifier" - }, - "memberName": { - "name": "offset", - "type": "Identifier" - } - } + expression: { + type: 'AssemblyMemberAccess', + expression: { + name: 'x', + type: 'Identifier', + }, + memberName: { + name: 'offset', + type: 'Identifier', + }, + }, }) }) - it("LabelDefinition", function() { - var ast = parseAssembly("loop:") + it('LabelDefinition', function () { + var ast = parseAssembly('loop:') assert.deepEqual(ast, { - "type": "LabelDefinition", - "name": "loop" + type: 'LabelDefinition', + name: 'loop', }) }) - it("AssemblyStackAssignment", function() { - var ast = parseAssembly("=: a") + it('AssemblyStackAssignment', function () { + var ast = parseAssembly('=: a') assert.deepEqual(ast, { - "type": "AssemblyStackAssignment", - "name": "a" + type: 'AssemblyStackAssignment', + name: 'a', }) }) - it("AssemblyFor", function() { - var ast = parseAssembly("for { let i := 0 } lt(i, x) { i := add(i, 1) } { y := mul(2, y) }") + it('AssemblyFor', function () { + var ast = parseAssembly( + 'for { let i := 0 } lt(i, x) { i := add(i, 1) } { y := mul(2, y) }' + ) assert.deepEqual(ast, { - "type": "AssemblyFor", - "pre": { - "type": "AssemblyBlock", - "operations": [ + type: 'AssemblyFor', + pre: { + type: 'AssemblyBlock', + operations: [ { - "type": "AssemblyLocalDefinition", - "names": [ + type: 'AssemblyLocalDefinition', + names: [ { - "type": "Identifier", - "name": "i" - } + type: 'Identifier', + name: 'i', + }, ], - "expression": { - "type": "DecimalNumber", - "value": "0" - } - } - ] - }, - "condition": { - "type": "AssemblyCall", - "functionName": "lt", - "arguments": [ + expression: { + type: 'DecimalNumber', + value: '0', + }, + }, + ], + }, + condition: { + type: 'AssemblyCall', + functionName: 'lt', + arguments: [ { - "type": "AssemblyCall", - "functionName": "i", - "arguments": [] + type: 'AssemblyCall', + functionName: 'i', + arguments: [], }, { - "type": "AssemblyCall", - "functionName": "x", - "arguments": [] - } - ] - }, - "post": { - "type": "AssemblyBlock", - "operations": [ + type: 'AssemblyCall', + functionName: 'x', + arguments: [], + }, + ], + }, + post: { + type: 'AssemblyBlock', + operations: [ { - "type": "AssemblyAssignment", - "names": [ + type: 'AssemblyAssignment', + names: [ { - "type": "Identifier", - "name": "i" - } + type: 'Identifier', + name: 'i', + }, ], - "expression": { - "type": "AssemblyCall", - "functionName": "add", - "arguments": [ + expression: { + type: 'AssemblyCall', + functionName: 'add', + arguments: [ { - "type": "AssemblyCall", - "functionName": "i", - "arguments": [] + type: 'AssemblyCall', + functionName: 'i', + arguments: [], }, { - "type": "DecimalNumber", - "value": "1" - } - ] - } - } - ] - }, - "body": { - "type": "AssemblyBlock", - "operations": [ + type: 'DecimalNumber', + value: '1', + }, + ], + }, + }, + ], + }, + body: { + type: 'AssemblyBlock', + operations: [ { - "type": "AssemblyAssignment", - "names": [ + type: 'AssemblyAssignment', + names: [ { - "type": "Identifier", - "name": "y" - } + type: 'Identifier', + name: 'y', + }, ], - "expression": { - "type": "AssemblyCall", - "functionName": "mul", - "arguments": [ + expression: { + type: 'AssemblyCall', + functionName: 'mul', + arguments: [ { - "type": "DecimalNumber", - "value": "2" + type: 'DecimalNumber', + value: '2', }, { - "type": "AssemblyCall", - "functionName": "y", - "arguments": [] - } - ] - } - } - ] - } + type: 'AssemblyCall', + functionName: 'y', + arguments: [], + }, + ], + }, + }, + ], + }, }) }) - it("AssemblyIf", function() { - var ast = parseAssembly("if lt(i, x) { revert(0, 0) }") + it('AssemblyIf', function () { + var ast = parseAssembly('if lt(i, x) { revert(0, 0) }') assert.deepEqual(ast, { - "body": { - "operations": [ + body: { + operations: [ { - "arguments": [ + arguments: [ { - "type": "DecimalNumber", - "value": "0" + type: 'DecimalNumber', + value: '0', }, { - "type": "DecimalNumber", - "value": "0" - } + type: 'DecimalNumber', + value: '0', + }, ], - "functionName": "revert", - "type": "AssemblyCall" - } + functionName: 'revert', + type: 'AssemblyCall', + }, ], - "type": "AssemblyBlock" + type: 'AssemblyBlock', }, - "condition": { - "arguments": [ + condition: { + arguments: [ { - "arguments": [], - "functionName": "i", - "type": "AssemblyCall" + arguments: [], + functionName: 'i', + type: 'AssemblyCall', }, { - "arguments": [], - "functionName": "x", - "type": "AssemblyCall" - } + arguments: [], + functionName: 'x', + type: 'AssemblyCall', + }, ], - "functionName": "lt", - "type": "AssemblyCall" + functionName: 'lt', + type: 'AssemblyCall', }, - "type": "AssemblyIf" + type: 'AssemblyIf', }) }) - it("Function call with name/value list", function() { - let expr = parseExpression("recipient.call{value: 1}()") + it('Function call with name/value list', function () { + let expr = parseExpression('recipient.call{value: 1}()') assert.deepEqual(expr, { - "type": "FunctionCall", - "expression": { - "arguments": { - "type": "NameValueList", - "names": ["value"], - "arguments": [{ - "number": "1", - "subdenomination": null, - "type": "NumberLiteral" - }], - }, - "expression": { - "expression": { - "name": "recipient", - "type": "Identifier" + type: 'FunctionCall', + expression: { + arguments: { + type: 'NameValueList', + names: ['value'], + arguments: [ + { + number: '1', + subdenomination: null, + type: 'NumberLiteral', + }, + ], + }, + expression: { + expression: { + name: 'recipient', + type: 'Identifier', }, - "memberName": "call", - "type": "MemberAccess" + memberName: 'call', + type: 'MemberAccess', }, - "type": "NameValueExpression" + type: 'NameValueExpression', }, - "arguments": [], - "names": [] + arguments: [], + names: [], }) - expr = parseExpression("recipient.call{value: 1, gas: 21000}()") + expr = parseExpression('recipient.call{value: 1, gas: 21000}()') assert.deepEqual(expr, { - "type": "FunctionCall", - "expression": { - "arguments": { - "type": "NameValueList", - "names": ["value", "gas"], - "arguments": [ - { - "number": "1", - "subdenomination": null, - "type": "NumberLiteral" + type: 'FunctionCall', + expression: { + arguments: { + type: 'NameValueList', + names: ['value', 'gas'], + arguments: [ + { + number: '1', + subdenomination: null, + type: 'NumberLiteral', }, { - "number": "21000", - "subdenomination": null, - "type": "NumberLiteral" - }] - }, - "expression": { - "expression": { - "name": "recipient", - "type": "Identifier" + number: '21000', + subdenomination: null, + type: 'NumberLiteral', + }, + ], + }, + expression: { + expression: { + name: 'recipient', + type: 'Identifier', }, - "memberName": "call", - "type": "MemberAccess" + memberName: 'call', + type: 'MemberAccess', }, - "type": "NameValueExpression" + type: 'NameValueExpression', }, - "arguments": [], - "names": [] + arguments: [], + names: [], }) }) - it("should allow using payable as a function", function () { - let expr = parseExpression("payable(recipient)") + it('should allow using payable as a function', function () { + let expr = parseExpression('payable(recipient)') assert.deepEqual(expr, { - "type": "FunctionCall", - "expression": { - "name": "payable", - "type": "Identifier" + type: 'FunctionCall', + expression: { + name: 'payable', + type: 'Identifier', }, - "arguments": [ + arguments: [ { - "name": "recipient", - "type": "Identifier" - } + name: 'recipient', + type: 'Identifier', + }, ], - "names": [], + names: [], }) }) - it("should allow using virtual in a modifier", function () { - let ast = parseNode("modifier foo() virtual {}") + it('should allow using virtual in a modifier', function () { + let ast = parseNode('modifier foo() virtual {}') assert.deepEqual(ast, { - "type": "ModifierDefinition", - "name": "foo", - "parameters": [], - "body": { - "type": "Block", - "statements": [] + type: 'ModifierDefinition', + name: 'foo', + parameters: [], + body: { + type: 'Block', + statements: [], }, - "isVirtual": true, - "override": null, + isVirtual: true, + override: null, }) }) - it("should allow using override in a modifier", function () { - let ast = parseNode("modifier foo() override {}") + it('should allow using override in a modifier', function () { + let ast = parseNode('modifier foo() override {}') assert.deepEqual(ast, { - "type": "ModifierDefinition", - "name": "foo", - "parameters": [], - "body": { - "type": "Block", - "statements": [] + type: 'ModifierDefinition', + name: 'foo', + parameters: [], + body: { + type: 'Block', + statements: [], }, - "isVirtual": false, - "override": [], + isVirtual: false, + override: [], }) }) - it("should allow using one explit override in a modifier", function () { - let ast = parseNode("modifier foo() override(Base) {}") + it('should allow using one explit override in a modifier', function () { + let ast = parseNode('modifier foo() override(Base) {}') assert.deepEqual(ast, { - "type": "ModifierDefinition", - "name": "foo", - "parameters": [], - "body": { - "type": "Block", - "statements": [] + type: 'ModifierDefinition', + name: 'foo', + parameters: [], + body: { + type: 'Block', + statements: [], }, - "isVirtual": false, - "override": [{ - "type": "UserDefinedTypeName", - "namePath": "Base" - }], + isVirtual: false, + override: [ + { + type: 'UserDefinedTypeName', + namePath: 'Base', + }, + ], }) }) - it("should allow using two explit overrides in a modifier", function () { - let ast = parseNode("modifier foo() override(Base1, Base2) {}") + it('should allow using two explit overrides in a modifier', function () { + let ast = parseNode('modifier foo() override(Base1, Base2) {}') assert.deepEqual(ast, { - "type": "ModifierDefinition", - "name": "foo", - "parameters": [], - "body": { - "type": "Block", - "statements": [] - }, - "isVirtual": false, - "override": [{ - "type": "UserDefinedTypeName", - "namePath": "Base1" - }, { - "type": "UserDefinedTypeName", - "namePath": "Base2" - }], + type: 'ModifierDefinition', + name: 'foo', + parameters: [], + body: { + type: 'Block', + statements: [], + }, + isVirtual: false, + override: [ + { + type: 'UserDefinedTypeName', + namePath: 'Base1', + }, + { + type: 'UserDefinedTypeName', + namePath: 'Base2', + }, + ], }) }) }) diff --git a/test/index.js b/test/index.js index b45b764..19ff09a 100644 --- a/test/index.js +++ b/test/index.js @@ -1,36 +1,35 @@ -var fs = require("fs") -var { assert } = require('chai') -var parser = require("../src/index") -var { parseNode, parseStatement } = require('./utils') - -describe("#parse", function() { - - it("parses test file correctly", function() { - var content = fs.readFileSync(__dirname + "/test.sol") +const fs = require('fs') +const { assert } = require('chai') +const parser = require('..') +const { parseNode, parseStatement } = require('./utils') + +describe('#parse', function () { + it('parses test file correctly', function () { + var content = fs.readFileSync(__dirname + '/test.sol') parser.parse(content.toString()) }) - it("throws ParserError on syntax error", function() { - var source = "not good" + it('throws ParserError on syntax error', function () { + var source = 'not good' assert.throws(() => { parser.parse(source) - }, parser.ParseError) + }, parser.ParserError) }) - it("supports tolerant mode", function() { - var source = "not good" + it('supports tolerant mode', function () { + var source = 'not good' var root = parser.parse(source, { tolerant: true }) assert.isAbove(root.errors.length, 0) }) - it("supports loc", function() { - var source = "contract test { uint a; }" + it('supports loc', function () { + var source = 'contract test { uint a; }' var root = parser.parse(source, { loc: true }) assert.isOk(root.hasOwnProperty('loc')) }) - it("supports range", function() { - var source = "contract test { uint a; }" + it('supports range', function () { + var source = 'contract test { uint a; }' var root = parser.parse(source, { range: true }) assert.isOk(root.hasOwnProperty('range')) }) @@ -41,7 +40,7 @@ describe("#parse", function() { 'contract { function a() return bool {} }', 'contract test { function () { 2 + + 2; } }', 'contract test { uint ; }', - 'contract test { modifier { } }' + 'contract test { modifier { } }', ] for (var c of cases) { @@ -49,32 +48,29 @@ describe("#parse", function() { } }) - - describe("node meta", function() { - - it("adds meta to VariableDeclaration inside StateVariableDeclaration", function() { - var ast = parseNode("uint public a;", { loc: true }) + describe('node meta', function () { + it('adds meta to VariableDeclaration inside StateVariableDeclaration', function () { + var ast = parseNode('uint public a;', { loc: true }) assert.isOk(ast.variables[0].loc) }) - it("adds meta to VariableDeclaration inside VariableDeclarationStatement", function() { - var ast = parseStatement("uint a;", { loc: true }) + it('adds meta to VariableDeclaration inside VariableDeclarationStatement', function () { + var ast = parseStatement('uint a;', { loc: true }) assert.isOk(ast.variables[0].loc) }) - it("adds meta to VariableDeclaration inside EventDefinition", function() { - var ast = parseNode("event Foo(address bar);", { loc: true }) + it('adds meta to VariableDeclaration inside EventDefinition', function () { + var ast = parseNode('event Foo(address bar);', { loc: true }) assert.isOk(ast.parameters[0].loc) }) - }) - it("parses empty files", function() { + it('parses empty files', function () { const ast = parser.parse('') assert.deepEqual(ast, { type: 'SourceUnit', children: [] }) }) - it("parses empty files with loc enabled", function() { + it('parses empty files with loc enabled', function () { const ast = parser.parse('', { loc: true }) assert.deepEqual(ast, { type: 'SourceUnit', @@ -87,16 +83,15 @@ describe("#parse", function() { end: { line: 1, column: 0, - } - } + }, + }, }) }) }) -describe("#visit", function() { - - it("walks visitor through AST", function() { - var source = "contract test { uint a; }" +describe('#visit', function () { + it('walks visitor through AST', function () { + var source = 'contract test { uint a; }' var ast = parser.parse(source) parser.visit(ast, { ContractDefinition: (node) => { @@ -105,12 +100,12 @@ describe("#visit", function() { 'ContractDefinition:exit': (node) => { assert.equal(node.type, 'ContractDefinition') - } + }, }) }) - it("can stop visiting inner nodes by returning false", function() { - var source = "contract test { uint a; }" + it('can stop visiting inner nodes by returning false', function () { + var source = 'contract test { uint a; }' var ast = parser.parse(source) parser.visit(ast, { ContractDefinition: (node) => { @@ -119,20 +114,19 @@ describe("#visit", function() { 'ContractDefinition:exit': (node) => { assert.fail('should not reach here') - } + }, }) }) - it("shouldn't print anything if the lexer fails", function() { + it("shouldn't print anything if the lexer fails", function () { const originalConsoleError = console.error let called = false - console.error = () => called = true + console.error = () => (called = true) - var ast = parser.parse('"', {tolerant: true}) + var ast = parser.parse('"', { tolerant: true }) console.error = originalConsoleError - assert.isFalse(called, "Should not call console.error on lexer errors") - }); - + assert.isFalse(called, 'Should not call console.error on lexer errors') + }) }) diff --git a/test/utils.js b/test/utils.js index 6b1b228..771d81c 100644 --- a/test/utils.js +++ b/test/utils.js @@ -1,5 +1,5 @@ const { assert } = require('chai') -const parser = require('../src/index') +const parser = require('..') function print(obj) { console.log(JSON.stringify(obj, null, 2)) @@ -12,34 +12,34 @@ function parseContract(source, options = {}) { } function parseNode(source, options = {}) { - var contract = parseContract("contract test { " + source + " }", options) + var contract = parseContract('contract test { ' + source + ' }', options) assert.isOk(contract.subNodes[0]) return contract.subNodes[0] } function parseStatement(source, options = {}) { - var ast = parseNode("function () { " + source + " }", options) + var ast = parseNode('function () { ' + source + ' }', options) assert.isOk(ast.body.statements[0]) return ast.body.statements[0] } function parseExpression(source, options = {}) { - var ast = parseNode("function () { " + source + "; }", options) + var ast = parseNode('function () { ' + source + '; }', options) assert.isOk(ast.body.statements[0].expression) return ast.body.statements[0].expression } function parseAssembly(source, options = {}) { - var ast = parseNode("function () { assembly { " + source + " } }", options) + var ast = parseNode('function () { assembly { ' + source + ' } }', options) assert.isOk(ast.body.statements[0].body.operations[0]) return ast.body.statements[0].body.operations[0] } module.exports = { - parseAssembly, + print, parseContract, - parseExpression, parseNode, parseStatement, - print + parseExpression, + parseAssembly, } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..3e2b76f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "include": ["src/**/*.ts"], + "compilerOptions": { + "outDir": "dist", + "allowJs": true, + "declaration": true, + "emitDeclarationOnly": true, + "esModuleInterop": true, + "target": "es6", + "module": "ES2015", + "moduleResolution": "node", + "strict": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/tslint.json b/tslint.json deleted file mode 100644 index e926a1c..0000000 --- a/tslint.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "defaultSeverity": "error", - "extends": [ - "tslint:recommended", - "tslint-config-prettier" - ], - "jsRules": {}, - "rules": { - "interface-name": [true, "never-prefix"] - }, - "rulesDirectory": [] -} diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index a6bc5f1..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,35 +0,0 @@ -const path = require('path'); - -module.exports = { - mode: 'production', - entry: './src/index.js', - module: { - rules: [ - { - test: /\.m?js$/, - exclude: /(node_modules|bower_components)/, - use: { - loader: 'babel-loader' - } - }, - { - test: /\.(tokens|interp)$/i, - use: 'raw-loader' - }, - ], - }, - node: { - fs: 'empty' - }, - output: { - library: 'SolidityParser', - libraryTarget: 'umd', - path: path.resolve(__dirname, 'dist'), - filename: 'solidity-parser.js', - globalObject: 'this' - }, - optimization: { - minimize: false - }, - devtool: 'source-map' -}; diff --git a/yarn.lock b/yarn.lock index b6a406e..2f27568 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,9 +3,9 @@ "@babel/cli@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.12.1.tgz#e08a0b1cb6fcd4b9eb6a606ba5602c5c0fe24a0c" - integrity sha512-eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g== + version "7.12.8" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.12.8.tgz#3b24ed2fd5da353ee6f19e8935ff8c93b5fe8430" + integrity sha512-/6nQj11oaGhLmZiuRUfxsujiPDc9BBReemiXgIbxc+M5W+MIiFKYwvNDJvBfnGKNsJTKbUfEheKc9cwoPHAVQA== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" @@ -16,58 +16,44 @@ slash "^2.0.0" source-map "^0.5.0" optionalDependencies: - "@nicolo-ribaudo/chokidar-2" "^2.1.8" + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.10.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.5.tgz#f56db0c4bb1bbbf221b4e81345aab4141e7cb0e9" - integrity sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg== +"@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" + integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== "@babel/core@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" json5 "^2.1.2" - lodash "^4.17.13" + lodash "^4.17.19" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.12.5": +"@babel/generator@^7.12.5", "@babel/generator@^7.4.0": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== @@ -76,27 +62,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" - integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== - dependencies: - "@babel/types" "^7.4.4" - jsesc "^2.5.1" - lodash "^4.17.11" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" - integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== - dependencies: - "@babel/types" "^7.9.0" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -104,13 +69,6 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" @@ -119,7 +77,7 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.12.1": +"@babel/helper-compilation-targets@^7.12.5": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== @@ -141,23 +99,13 @@ "@babel/helper-split-export-declaration" "^7.10.4" "@babel/helper-create-regexp-features-plugin@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz#18b1302d4677f9dc4740fe8c9ed96680e29d37e8" - integrity sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" + integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" regexpu-core "^4.7.1" -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - "@babel/helper-define-map@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" @@ -174,15 +122,6 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - "@babel/helper-function-name@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" @@ -192,22 +131,6 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== - dependencies: - "@babel/types" "^7.0.0" - "@babel/helper-get-function-arity@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" @@ -215,13 +138,6 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-hoist-variables@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" @@ -230,33 +146,19 @@ "@babel/types" "^7.10.4" "@babel/helper-member-expression-to-functions@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c" - integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.12.7" -"@babel/helper-module-imports@^7.12.1": +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== dependencies: "@babel/types" "^7.12.5" -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-module-transforms@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" @@ -272,57 +174,18 @@ "@babel/types" "^7.12.1" lodash "^4.17.19" -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - "@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz#7f94ae5e08721a49467346aa04fd22f750033b9c" + integrity sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw== dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + "@babel/types" "^7.12.7" -"@babel/helper-plugin-utils@^7.10.4": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== - dependencies: - lodash "^4.17.19" - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - "@babel/helper-remap-async-to-generator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" @@ -342,16 +205,6 @@ "@babel/traverse" "^7.12.5" "@babel/types" "^7.12.5" -"@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" - "@babel/helper-simple-access@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" @@ -359,14 +212,6 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" @@ -381,30 +226,11 @@ dependencies: "@babel/types" "^7.11.0" -"@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== - "@babel/helper-validator-option@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" @@ -420,23 +246,14 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== +"@babel/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" "@babel/highlight@^7.10.4": version "7.10.4" @@ -447,29 +264,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.4", "@babel/parser@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.5.tgz#b4af32ddd473c0bfa643bd7ff0728b8e71b81ea0" - integrity sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ== - -"@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" - integrity sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew== - -"@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== +"@babel/parser@^7.12.7", "@babel/parser@^7.4.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056" + integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg== "@babel/plugin-proposal-async-generator-functions@^7.12.1": version "7.12.1" @@ -528,10 +326,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.12.1": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz#b1ce757156d40ed79d59d467cb2b154a5c4149ba" - integrity sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g== +"@babel/plugin-proposal-numeric-separator@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" + integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" @@ -553,10 +351,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" - integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== +"@babel/plugin-proposal-optional-chaining@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" + integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" @@ -570,7 +368,7 @@ "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.12.1": +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== @@ -578,14 +376,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-async-generators@^7.8.0": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -670,6 +460,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-syntax-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz#460ba9d77077653803c3dd2e673f76d66b4029e5" + integrity sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-arrow-functions@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" @@ -728,7 +525,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.12.1": +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== @@ -736,14 +533,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-duplicate-keys@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" @@ -891,13 +680,12 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz#5c24cf50de396d30e99afc8d1c700e8bce0f5caf" - integrity sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ== +"@babel/plugin-transform-sticky-regex@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" + integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" "@babel/plugin-transform-template-literals@^7.12.1": version "7.12.1" @@ -913,6 +701,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-transform-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4" + integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-typescript" "^7.12.1" + "@babel/plugin-transform-unicode-escapes@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" @@ -929,13 +726,13 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/preset-env@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" - integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.7.tgz#54ea21dbe92caf6f10cb1a0a576adc4ebf094b55" + integrity sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew== dependencies: - "@babel/compat-data" "^7.12.1" - "@babel/helper-compilation-targets" "^7.12.1" - "@babel/helper-module-imports" "^7.12.1" + "@babel/compat-data" "^7.12.7" + "@babel/helper-compilation-targets" "^7.12.5" + "@babel/helper-module-imports" "^7.12.5" "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-validator-option" "^7.12.1" "@babel/plugin-proposal-async-generator-functions" "^7.12.1" @@ -945,10 +742,10 @@ "@babel/plugin-proposal-json-strings" "^7.12.1" "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.7" "@babel/plugin-proposal-object-rest-spread" "^7.12.1" "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" "@babel/plugin-proposal-private-methods" "^7.12.1" "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" @@ -990,20 +787,20 @@ "@babel/plugin-transform-reserved-words" "^7.12.1" "@babel/plugin-transform-shorthand-properties" "^7.12.1" "@babel/plugin-transform-spread" "^7.12.1" - "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.7" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/plugin-transform-typeof-symbol" "^7.12.1" "@babel/plugin-transform-unicode-escapes" "^7.12.1" "@babel/plugin-transform-unicode-regex" "^7.12.1" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.1" - core-js-compat "^3.6.2" + "@babel/types" "^7.12.7" + core-js-compat "^3.7.0" semver "^5.5.0" "@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -1011,6 +808,15 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" +"@babel/preset-typescript@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.7.tgz#fc7df8199d6aae747896f1e6c61fc872056632a3" + integrity sha512-nOoIqIqBmHBSEgBXWR4Dv/XBehtIFcw9PqZw6rFYuKrzsZmOQm3PR5siLBnKZFEsDb03IegG8nSjU/iXXXYRmw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-transform-typescript" "^7.12.1" + "@babel/register@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.12.1.tgz#cdb087bdfc4f7241c03231f22e15d211acf21438" @@ -1023,338 +829,282 @@ source-map-support "^0.5.16" "@babel/runtime@^7.8.4": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.1.0", "@babel/template@^7.4.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/template@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== +"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.4.0": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" -"@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz#78a0c68c8e8a35e4cacfd31db8bb303d5606f095" - integrity sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA== +"@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.4.3": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f" + integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw== dependencies: "@babel/code-frame" "^7.10.4" "@babel/generator" "^7.12.5" "@babel/helper-function-name" "^7.10.4" "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.12.5" - "@babel/types" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/traverse@^7.4.3": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" - integrity sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.4.5" - "@babel/types" "^7.4.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" - -"@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.0.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" - integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== - dependencies: - esutils "^2.0.2" - lodash "^4.17.11" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5": - version "7.12.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.6.tgz#ae0e55ef1cce1fbc881cd26f8234eb3e657edc96" - integrity sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA== +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13" + integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@nicolo-ribaudo/chokidar-2@^2.1.8": - version "2.1.8" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz#eef8d9b47e8dc589499f14d656e8d2dd978c3d14" - integrity sha512-FohwULwAebCUKi/akMFyGi7jfc7JXTeMHzKxuP3umRd9mK/2Y7/SMBSI2jX+YLopPXi+PF9l307NmpfxTdCegA== - dependencies: - chokidar "2.1.8" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== +"@eslint/eslintrc@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" + integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents": + version "2.1.8-no-fsevents" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b" + integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== dependencies: - "@webassemblyjs/ast" "1.9.0" + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== +"@rollup/plugin-babel@^5.2.2": + version "5.2.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.2.2.tgz#e5623a01dd8e37e004ba87f2de218c611727d9b2" + integrity sha512-MjmH7GvFT4TW8xFdIeFS3wqIX646y5tACdxkTO+khbHvS3ZcVJL6vkAHLw2wqPmkhwCfWHoNsp15VYNwW6JEJA== dependencies: - "@xtuc/ieee754" "^1.2.0" + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== +"@rollup/plugin-commonjs@^17.0.0": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.0.0.tgz#2ae2228354cf0fbba6cf9f06f30b2c66a974324c" + integrity sha512-/omBIJG1nHQc+bgkYDuLpb/V08QyutP9amOrJRUSlYJZP+b/68gM//D8sxJe3Yry2QnYIr3QjR3x4AlxJEN3GA== dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-node-resolve@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.0.tgz#770458fb26691a686c5f29f37dded94832ffce59" + integrity sha512-8Hrmwjn1pLYjUxcv7U7IPP0qfnzEJWHyHE6CaZ8jbLM+8axaarJRB1jB6JgKTDp5gNga+TpsgX6F8iuvgOerKQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@types/estree@*": + version "0.0.45" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" + integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/node@*": + version "14.14.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785" + integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ== + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.9.0.tgz#8fde15743413661fdc086c9f1f5d74a80b856113" + integrity sha512-WrVzGMzzCrgrpnQMQm4Tnf+dk+wdl/YbgIgd5hKGa2P+lnJ2MON+nQnbwgbxtN9QDLi8HO+JAq0/krMnjQK6Cw== + dependencies: + "@typescript-eslint/experimental-utils" "4.9.0" + "@typescript-eslint/scope-manager" "4.9.0" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.9.0.tgz#23a296b85d243afba24e75a43fd55aceda5141f0" + integrity sha512-0p8GnDWB3R2oGhmRXlEnCvYOtaBCijtA5uBfH5GxQKsukdSQyI4opC4NGTUb88CagsoNQ4rb/hId2JuMbzWKFQ== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.9.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/typescript-estree" "4.9.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== +"@typescript-eslint/parser@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.9.0.tgz#bb65f1214b5e221604996db53ef77c9d62b09249" + integrity sha512-QRSDAV8tGZoQye/ogp28ypb8qpsZPV6FOLD+tbN4ohKUWHD2n/u0Q2tIBnCsGwQCiD94RdtLkcqpdK4vKcLCCw== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@typescript-eslint/scope-manager" "4.9.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/typescript-estree" "4.9.0" + debug "^4.1.1" -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== +"@typescript-eslint/scope-manager@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.9.0.tgz#5eefe305d6b71d1c85af6587b048426bfd4d3708" + integrity sha512-q/81jtmcDtMRE+nfFt5pWqO0R41k46gpVLnuefqVOXl4QV1GdQoBWfk5REcipoJNQH9+F5l+dwa9Li5fbALjzg== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/visitor-keys" "4.9.0" -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" +"@typescript-eslint/types@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.9.0.tgz#3fe8c3632abd07095c7458f7451bd14c85d0033c" + integrity sha512-luzLKmowfiM/IoJL/rus1K9iZpSJK6GlOS/1ezKplb7MkORt2dDcfi8g9B0bsF6JoRGhqn0D3Va55b+vredFHA== -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== +"@typescript-eslint/typescript-estree@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.9.0.tgz#38a98df6ee281cfd6164d6f9d91795b37d9e508c" + integrity sha512-rmDR++PGrIyQzAtt3pPcmKWLr7MA+u/Cmq9b/rON3//t5WofNR4m/Ybft2vOLj0WtUzjn018ekHjTsnIyBsQug== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/visitor-keys" "4.9.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== +"@typescript-eslint/visitor-keys@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.9.0.tgz#f284e9fac43f2d6d35094ce137473ee321f266c8" + integrity sha512-sV45zfdRqQo1A97pOSx3fsjR+3blmwtdCt8LDrXgCX36v4Vmz4KHrhpV6Fo2cRdXmyumxx11AHw0pNJqCNpDyg== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + "@typescript-eslint/types" "4.9.0" + eslint-visitor-keys "^2.0.0" -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== - -acorn@^6.2.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.9.1: - version "6.10.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" - integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^4.1.0: version "4.1.0" @@ -1374,17 +1124,16 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" -antlr4@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.8.0.tgz#f938ec171be7fc2855cd3a533e87647185b32b6a" - integrity sha512-en/MxQ4OkPgGJQ3wD/muzj1uDnFSzdFIhc2+c6bHZokWkuBb6RRvFjpWhPxWLbgQvaEzldJZ0GSQpfSAaE3hqg== +antlr4@^4.9.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.9.0.tgz#ee779d69acc702f5d836d5d02a51c7798f44e523" + integrity sha512-TAS2RfNblx/wlfy/h0YNaBSC1sg5rQ4Twm0h/ksCoWRAsLo9Freh367zXtRZdKVYSOLkOJbPDJL6TFclCr0Xvw== anymatch@^2.0.0: version "2.0.0" @@ -1409,17 +1158,15 @@ append-transform@^1.0.0: dependencies: default-require-extensions "^2.0.0" -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" @@ -1438,43 +1185,35 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= +array-includes@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8" + integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + get-intrinsic "^1.0.1" + is-string "^1.0.5" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== +array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" + es-abstract "^1.18.0-next.1" assertion-error@^1.1.0: version "1.1.0" @@ -1502,14 +1241,13 @@ atob@^2.1.2: integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== babel-loader@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.1.0" + find-cache-dir "^3.3.1" loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" + make-dir "^3.1.0" schema-utils "^2.6.5" babel-plugin-dynamic-import-node@^2.3.3: @@ -1529,11 +1267,7 @@ babel-plugin-inline-import@^3.0.0: balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base@^0.11.1: version "0.11.2" @@ -1554,34 +1288,19 @@ big.js@^5.2.2: integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -1602,151 +1321,38 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== +browserslist@^4.14.5, browserslist@^4.15.0: + version "4.15.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.15.0.tgz#3d48bbca6a3f378e86102ffd017d9a03f122bdb0" + integrity sha512-IJ1iysdMkGmjjYeRlDU8PQejVwxvVO5QOfXH7ylW31GO6LwNRSmm/SgRXtNsEXqMLl2e+2H5eEJ7sfynF8TCaQ== dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.14.5: - version "4.14.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6" - integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ== - dependencies: - caniuse-lite "^1.0.30001157" - colorette "^1.2.1" - electron-to-chromium "^1.3.591" - escalade "^3.1.1" - node-releases "^1.1.66" - -browserslist@^4.8.3: - version "4.11.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" - integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== - dependencies: - caniuse-lite "^1.0.30001038" - electron-to-chromium "^1.3.390" - node-releases "^1.1.53" - pkg-up "^2.0.0" + caniuse-lite "^1.0.30001164" + colorette "^1.2.1" + electron-to-chromium "^1.3.612" + escalade "^3.1.1" + node-releases "^1.1.67" buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" +builtin-modules@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" + integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== cache-base@^1.0.1: version "1.0.1" @@ -1773,6 +1379,14 @@ caching-transform@^3.0.2: package-hash "^3.0.0" write-file-atomic "^2.4.2" +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1783,15 +1397,10 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001038: - version "1.0.30001039" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz#b3814a1c38ffeb23567f8323500c09526a577bbe" - integrity sha512-SezbWCTT34eyFoWHgx8UWso7YtvtM7oosmFoXbCkdC6qJzRfBTeTgE9REtKtiuKXuMwWTZEvdnFNGAyVMorv8Q== - -caniuse-lite@^1.0.30001157: - version "1.0.30001159" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz#bebde28f893fa9594dadcaa7d6b8e2aa0299df20" - integrity sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA== +caniuse-lite@^1.0.30001164: + version "1.0.30001165" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001165.tgz#32955490d2f60290bb186bb754f2981917fa744f" + integrity sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA== chai@^4.2.0: version "4.2.0" @@ -1805,7 +1414,7 @@ chai@^4.2.0: pathval "^1.1.0" type-detect "^4.0.5" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: +chalk@^2.0.0, chalk@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1814,43 +1423,19 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= -chokidar@2.1.8, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - chokidar@^3.4.0: version "3.4.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" @@ -1866,26 +1451,6 @@ chokidar@^3.4.0: optionalDependencies: fsevents "~2.1.2" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1896,17 +1461,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -1953,16 +1507,6 @@ colorette@^1.2.1: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== -commander@^2.12.1: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -1971,6 +1515,7 @@ commander@^4.0.1: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.3.0" @@ -1980,73 +1525,37 @@ component-emitter@^1.2.1: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= -convert-source-map@^1.1.0, convert-source-map@^1.7.0: +convert-source-map@^1.1.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" -convert-source-map@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.6.2: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" - integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== +core-js-compat@^3.7.0: + version "3.8.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.1.tgz#8d1ddd341d660ba6194cbe0ce60f4c794c87a36e" + integrity sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ== dependencies: - browserslist "^4.8.3" + browserslist "^4.15.0" semver "7.0.0" core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cp-file@^6.2.0: version "6.2.0" @@ -2059,76 +1568,22 @@ cp-file@^6.2.0: pify "^4.0.1" safe-buffer "^5.0.1" -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^4: version "4.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= dependencies: lru-cache "^4.0.1" which "^1.2.9" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" debug@3.2.6: version "3.2.6" @@ -2140,15 +1595,16 @@ debug@3.2.6: debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - ms "^2.1.1" + ms "2.1.2" decamelize@^1.2.0: version "1.2.0" @@ -2167,9 +1623,15 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== default-require-extensions@^2.0.0: version "2.0.0" @@ -2207,36 +1669,22 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -diff@3.5.0, diff@^3.2.0: +diff@3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" + path-type "^4.0.0" doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= dependencies: esutils "^2.0.2" isarray "^1.0.0" @@ -2248,153 +1696,52 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -electron-to-chromium@^1.3.390: - version "1.3.397" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.397.tgz#db640c2e67b08d590a504c20b56904537aa2bafa" - integrity sha512-zcUd1p/7yzTSdWkCTrqGvbnEOASy96d0RJL/lc5BDJoO23Z3G/VHd0yIPbguDU9n8QNUTCigLO7oEdtOb7fp2A== - -electron-to-chromium@^1.3.591: - version "1.3.599" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.599.tgz#3fbb004733f3c0dcf59934c8644ddf800b94443a" - integrity sha512-u6VGpFsIzSCNrWJb1I72SUypz3EGoBaiEgygoMkd0IOcGR3WF3je5VTx9OIRI9Qd8UOMHinLImyJFkYHTq6nsg== - -elliptic@^6.0.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" +electron-to-chromium@^1.3.612: + version "1.3.616" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.616.tgz#de63d1c79bb8eb61168774df0c11c9e1af69f9e8" + integrity sha512-CI8L38UN2BEnqXw3/oRIQTmde0LiSeqWSRlPA42ZTYgJQ8fYenzAM2Z3ni+jtILTcrs5aiXZCGJ96Pm+3/yGyQ== emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -end-of-stream@^1.0.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: - is-arrayish "^0.2.1" + ansi-colors "^4.1.1" -error-ex@^1.3.1: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== +es-abstract@^1.18.0-next.1: + version "1.18.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" + is-callable "^1.2.2" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -2418,16 +1765,17 @@ escalade@^3.1.1: escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-import-resolver-node@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== dependencies: debug "^2.6.9" - resolve "^1.5.0" + resolve "^1.13.1" -eslint-module-utils@^2.4.1: +eslint-module-utils@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== @@ -2444,22 +1792,23 @@ eslint-plugin-es@^1.4.1: regexpp "^2.0.1" eslint-plugin-import@^2.18.2: - version "2.20.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" - integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== dependencies: - array-includes "^3.0.3" - array.prototype.flat "^1.2.1" + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" - eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.1" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" has "^1.0.3" minimatch "^3.0.4" - object.values "^1.1.0" + object.values "^1.1.1" read-pkg-up "^2.0.0" - resolve "^1.12.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" eslint-plugin-node@^9.2.0: version "9.2.0" @@ -2479,146 +1828,142 @@ eslint-plugin-promise@^4.2.1: integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== eslint-plugin-standard@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" - integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== -eslint-scope@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" - integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - esrecurse "^4.1.0" + esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^1.4.2, eslint-utils@^1.4.3: +eslint-utils@^1.4.2: version "1.4.3" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^6.2.2: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@^7.15.0: + version "7.15.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.15.0.tgz#eb155fb8ed0865fcf5d903f76be2e5b6cd7e0bc7" + integrity sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA== dependencies: "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.2.2" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.2.0" esutils "^2.0.2" - file-entry-cache "^5.0.1" + file-entry-cache "^6.0.0" functional-red-black-tree "^1.0.1" glob-parent "^5.0.0" globals "^12.1.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" + levn "^0.4.1" + lodash "^4.17.19" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== dependencies: - estraverse "^4.0.0" + estraverse "^5.1.0" -esrecurse@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "~4.1.0" - object-assign "^4.0.1" + estraverse "^5.2.0" -estraverse@^4.0.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== -events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" +estree-walker@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.1.tgz#f8e030fb21cefa183b44b7ad516b747434e7a3e0" + integrity sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg== -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== expand-brackets@^2.1.4: version "2.1.4" @@ -2633,13 +1978,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -2655,15 +1993,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -external-editor@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -2678,49 +2007,46 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== +fastq@^1.6.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947" + integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w== dependencies: - escape-string-regexp "^1.0.5" + reusify "^1.0.4" -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== +file-entry-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" + integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== dependencies: - flat-cache "^2.0.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + flat-cache "^3.0.4" fill-range@^4.0.0: version "4.0.0" @@ -2748,6 +2074,15 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-up@3.0.0, find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -2758,55 +2093,47 @@ find-up@3.0.0, find-up@^3.0.0: find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= dependencies: locate-path "^2.0.0" -findup-sync@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" + locate-path "^5.0.0" + path-exists "^4.0.0" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + flatted "^3.1.0" + rimraf "^3.0.2" flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== dependencies: is-buffer "~2.0.3" -flatted@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" - integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" +flatted@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" + integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= foreground-child@^1.5.6: version "1.5.6" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + integrity sha1-T9ca0t/elnibmApcCilZN8svXOk= dependencies: cross-spawn "^4" signal-exit "^3.0.0" @@ -2818,50 +2145,21 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - fs-readdir-recursive@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@~2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== -function-bind@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -2873,9 +2171,9 @@ functional-red-black-tree@^1.0.1: integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1: version "2.0.5" @@ -2885,13 +2183,16 @@ get-caller-file@^2.0.1: get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== +get-intrinsic@^1.0.0, get-intrinsic@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== dependencies: - pump "^3.0.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" @@ -2906,7 +2207,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -2925,7 +2226,7 @@ glob@7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.1.4: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -2937,54 +2238,6 @@ glob@^7.0.0, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.1, glob@^7.1.3: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -2997,14 +2250,22 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" -graceful-fs@^4.1.15: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== growl@1.10.5: version "1.10.5" @@ -3021,12 +2282,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-symbols@^1.0.1: +has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== @@ -3062,12 +2318,6 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3075,22 +2325,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - hasha@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-3.0.0.tgz#52a32fab8569d41ca69a61ff1a214f8eb7c8bd39" @@ -3103,142 +2337,52 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hosted-git-info@^2.1.4: - version "2.4.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" - integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== +ignore@^5.1.1, ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" - integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" + integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@^2.0.3, inherits@~2.0.1: +inherits@2, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.4, ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -inquirer@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" - integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -3256,10 +2400,12 @@ is-accessor-descriptor@^1.0.0: is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" @@ -3271,29 +2417,26 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" - integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== -is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" @@ -3310,9 +2453,9 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-descriptor@^0.1.0: version "0.1.6" @@ -3335,6 +2478,7 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" @@ -3351,11 +2495,7 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-glob@^3.1.0: version "3.1.0" @@ -3371,9 +2511,20 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-negative-zero@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" @@ -3389,56 +2540,56 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: - has "^1.0.1" + "@types/estree" "*" -is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== +is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: - has "^1.0.3" + has-symbols "^1.0.1" -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: - has-symbols "^1.0.0" + has-symbols "^1.0.1" -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" @@ -3504,7 +2655,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@3.13.1, js-yaml@^3.13.1: +js-yaml@3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -3512,6 +2663,14 @@ js-yaml@3.13.1, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -3520,8 +2679,9 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -3544,21 +2704,23 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" - integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: minimist "^1.2.5" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" @@ -3572,23 +2734,18 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + prelude-ls "^1.2.1" + type-check "~0.4.0" load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -3605,21 +2762,7 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -3628,9 +2771,19 @@ loader-utils@^1.2.3, loader-utils@^1.4.0: emojis-list "^3.0.0" json5 "^1.0.1" +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -3643,22 +2796,19 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash.flattendeep@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= -lodash@^4.17.11: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== - -lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.19: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -3671,18 +2821,26 @@ log-symbols@2.2.0: chalk "^2.0.1" lru-cache@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.3, magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== dependencies: - yallist "^3.0.2" + sourcemap-codec "^1.4.4" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" @@ -3692,12 +2850,12 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: - p-defer "^1.0.0" + semver "^6.0.0" map-cache@^0.2.2: version "0.2.2" @@ -3711,40 +2869,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - merge-source-map@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" @@ -3752,7 +2876,12 @@ merge-source-map@^1.1.0: dependencies: source-map "^0.6.1" -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -3771,64 +2900,26 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mimic-fn@^2.0.0, mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + braces "^3.0.1" + picomatch "^2.0.5" minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -3844,13 +2935,7 @@ mkdirp@0.5.4: dependencies: minimist "^1.2.5" -mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mkdirp@^0.5.3: +mkdirp@^0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -3886,42 +2971,21 @@ mocha@^6.2.0: yargs-parser "13.1.2" yargs-unparser "1.6.0" -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.1.1: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -3942,22 +3006,13 @@ nanomatch@^1.2.9: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= nested-error-stacks@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - node-environment-flags@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" @@ -3966,62 +3021,30 @@ node-environment-flags@1.0.5: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== - -node-releases@^1.1.66: +node-releases@^1.1.67: version "1.1.67" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== normalize-package-data@^2.3.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" + resolve "^1.10.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" @@ -4030,12 +3053,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - nyc@^14.1.1: version "14.1.1" resolved "https://registry.yarnpkg.com/nyc/-/nyc-14.1.1.tgz#151d64a6a9f9f5908a1b73233931e4a0a3075eeb" @@ -4067,10 +3084,6 @@ nyc@^14.1.1: yargs "^13.2.2" yargs-parser "^13.0.0" -object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -4080,10 +3093,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== +object-inspect@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -4097,7 +3110,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@4.1.0, object.assign@^4.1.0: +object.assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== @@ -4107,13 +3120,24 @@ object.assign@4.1.0, object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" +object.assign@^4.1.0, object.assign@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + version "2.1.1" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" + integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" object.pick@^1.3.0: version "1.3.0" @@ -4122,91 +3146,58 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== +object.values@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" has "^1.0.3" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= p-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" -p-limit@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" @@ -4217,6 +3208,18 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -4232,20 +3235,6 @@ package-hash@^3.0.0: lodash.flattendeep "^4.4.0" release-zalgo "^1.0.0" -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -4253,21 +3242,10 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" @@ -4279,21 +3257,11 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -4302,6 +3270,12 @@ path-dirname@^1.0.0: path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-extra@^1.0.2: version "1.0.3" @@ -4311,11 +3285,12 @@ path-extra@^1.0.2: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: version "1.0.6" @@ -4325,6 +3300,7 @@ path-parse@^1.0.6: path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= dependencies: pify "^2.0.0" @@ -4335,23 +3311,17 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pathval@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -picomatch@^2.0.4, picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -4359,6 +3329,7 @@ picomatch@^2.0.4, picomatch@^2.2.1: pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" @@ -4391,146 +3362,60 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: - find-up "^2.1.0" + find-up "^4.0.0" posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prettier@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - raw-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.0.tgz#d639c40fb9d72b5c7f8abc1fb2ddb25b29d3d540" - integrity sha512-iINUOYvl1cGEmfoaLjnZXt4bKfT2LJnZZib5N/LLyAphC+Dd11vNP9CNVb38j+SAJpFI1uo8j9frmih53ASy7Q== + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= dependencies: find-up "^2.0.0" read-pkg "^2.0.0" @@ -4546,6 +3431,7 @@ read-pkg-up@^4.0.0: read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= dependencies: load-json-file "^2.0.0" normalize-package-data "^2.3.2" @@ -4560,7 +3446,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -4573,18 +3459,6 @@ read-pkg@^3.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^2.0.2: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -4609,21 +3483,21 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" - private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -4638,17 +3512,10 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== regexpu-core@^4.7.1: version "4.7.1" @@ -4663,9 +3530,9 @@ regexpu-core@^4.7.1: unicode-match-property-value-ecmascript "^1.2.0" regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: version "0.6.4" @@ -4682,20 +3549,24 @@ release-zalgo@^1.0.0: es6-error "^4.0.1" remove-trailing-separator@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^2.0.0: version "2.0.0" @@ -4709,26 +3580,6 @@ require-resolve@0.0.2: dependencies: x-path "^0.0.2" -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -4739,84 +3590,82 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.1, resolve@^1.12.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.3.2: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: + is-core-module "^2.1.0" path-parse "^1.0.6" -resolve@^1.3.2, resolve@^1.5.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" - integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== - dependencies: - path-parse "^1.0.6" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@2.6.3, rimraf@^2.6.2, rimraf@^2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.5.4: +rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" + glob "^7.1.3" -run-async@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== +rollup-plugin-inject@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" + integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== dependencies: - is-promise "^2.1.0" + estree-walker "^0.6.1" + magic-string "^0.25.3" + rollup-pluginutils "^2.8.1" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= +rollup-plugin-node-polyfills@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" + integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== dependencies: - aproba "^1.1.1" + rollup-plugin-inject "^3.0.0" -rxjs@^6.5.3: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== +rollup-pluginutils@^2.8.1: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== dependencies: - tslib "^1.9.0" + estree-walker "^0.6.1" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +rollup@^2.34.2: + version "2.34.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.34.2.tgz#fa73e05c64df587e9ed4dc80d7d4e7d4a43f8908" + integrity sha512-mvtQLqu3cNeoctS+kZ09iOPxrc1P1/Bt1z15enuQ5feyKOdM3MJAVFjjsygurDpSWn530xB4AlA83TWIzRstXA== + optionalDependencies: + fsevents "~2.1.2" + +run-parallel@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== -safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex@^1.1.0: version "1.1.0" @@ -4825,64 +3674,50 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" -schema-utils@^2.5.0, schema-utils@^2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" - integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" -"semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.4.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" - integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== - -semver@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" - integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ== - -semver@^6.1.0, semver@^6.1.2: +semver@^6.0.0, semver@^6.1.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +semver@^7.2.1, semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" @@ -4894,40 +3729,33 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: - shebang-regex "^1.0.0" + shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -4967,11 +3795,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -4991,36 +3814,30 @@ source-map-support@^0.5.16: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@~0.5.12: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.0: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + spawn-wrap@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" - integrity sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg== + version "1.4.3" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848" + integrity sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw== dependencies: foreground-child "^1.5.6" mkdirp "^0.5.0" @@ -5029,19 +3846,31 @@ spawn-wrap@^1.4.2: signal-exit "^3.0.2" which "^1.3.0" -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: - spdx-license-ids "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -5053,13 +3882,7 @@ split-string@^3.0.1, split-string@^3.0.2: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= static-extend@^0.1.1: version "0.1.2" @@ -5069,41 +3892,10 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - "string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" @@ -5117,65 +3909,33 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz#ee497fd29768646d84be2c9b819e292439614373" - integrity sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== +string.prototype.trimend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" -string.prototype.trimstart@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz#afe596a7ce9de905496919406c9734845f01a2f2" - integrity sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w== +string.prototype.trimstart@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" @@ -5196,19 +3956,17 @@ strip-ansi@^6.0.0: strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= strip-json-comments@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-json-comments@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@6.0.0: version "6.0.0" @@ -5217,13 +3975,6 @@ supports-color@6.0.0: dependencies: has-flag "^3.0.0" -supports-color@6.1.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -5231,52 +3982,30 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" table@^5.2.3: - version "5.4.1" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz#0691ae2ebe8259858efb63e550b6d5f9300171e8" - integrity sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w== + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: - ajv "^6.9.1" - lodash "^4.17.11" + ajv "^6.10.2" + lodash "^4.17.14" slice-ansi "^2.1.0" string-width "^3.0.0" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.6.10" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.10.tgz#90f5bd069ff456ddbc9503b18e52f9c493d3b7c2" - integrity sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - test-exclude@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" @@ -5292,37 +4021,6 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -5360,85 +4058,49 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslint-config-prettier@^1.18.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" - integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== - -tslint@5.19.0: - version "5.19.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.19.0.tgz#a2cbd4a7699386da823f6b499b8394d6c47bb968" - integrity sha512-1LwwtBxfRJZnUvoS9c0uj8XQtAnyhWr9KlNvDIdB+oXyT+VpsOAaEhEgKi1HrZ8rq0ki/AAnbGSv4KM6/AfVZw== +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== dependencies: - "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" -type-detect@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea" - -type-detect@^4.0.5: +type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54" - integrity sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw== +typescript@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -5473,20 +4135,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -5501,9 +4149,9 @@ upath@^1.1.1: integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" @@ -5512,14 +4160,6 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -5528,146 +4168,57 @@ use@^3.1.0: util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -v8-compile-cache@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -watchpack@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" - integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== - dependencies: - chokidar "^2.1.8" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -webpack-cli@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" - integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.42.1: - version "4.42.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" - integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.2.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" - webpack-sources "^1.4.1" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1.3.1, which@^1.2.14, which@^1.3.0, which@^1.3.1: +which@1.3.1, which@^1.2.9, which@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -which@^1.2.9: - version "1.2.14" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wide-align@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -5680,6 +4231,7 @@ wrap-ansi@^5.1.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^2.4.2: version "2.4.3" @@ -5690,13 +4242,6 @@ write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - x-path@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/x-path/-/x-path-0.0.2.tgz#294d076bb97a7706cc070bbb2a6fd8c54df67b12" @@ -5704,25 +4249,22 @@ x-path@^0.0.2: dependencies: path-extra "^1.0.2" -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@13.1.2, yargs-parser@^13.1.0, yargs-parser@^13.1.2: +yargs-parser@13.1.2, yargs-parser@^13.0.0, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -5730,14 +4272,6 @@ yargs-parser@13.1.2, yargs-parser@^13.1.0, yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.0.0: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-unparser@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" @@ -5747,23 +4281,6 @@ yargs-unparser@1.6.0: lodash "^4.17.15" yargs "^13.3.0" -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - yargs@13.3.2, yargs@^13.2.2, yargs@^13.3.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -5781,6 +4298,6 @@ yargs@13.3.2, yargs@^13.2.2, yargs@^13.3.0: yargs-parser "^13.1.2" yarn@^1.17.3: - version "1.22.4" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.4.tgz#01c1197ca5b27f21edc8bc472cd4c8ce0e5a470e" - integrity sha512-oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA== + version "1.22.10" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.10.tgz#c99daa06257c80f8fa2c3f1490724e394c26b18c" + integrity sha512-IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA==