From 4f13bcb34cfed9b09c32a6a6521e96919e87f808 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Wed, 31 Jul 2024 16:34:12 +0000 Subject: [PATCH] makes grammar --- .../ANTLR/{GQL_2024.g4 => GQL_20240412.g4} | 4 +- developer/javac/ANTLR/GQL_20240412.interp | 1367 + developer/javac/ANTLR/GQL_20240412.tokens | 755 + .../javac/ANTLR/GQL_20240412BaseListener.java | 7359 +++ .../javac/ANTLR/GQL_20240412Lexer.interp | 1239 + developer/javac/ANTLR/GQL_20240412Lexer.java | 3212 ++ .../javac/ANTLR/GQL_20240412Lexer.tokens | 755 + .../javac/ANTLR/GQL_20240412Listener.java | 6197 +++ developer/javac/ANTLR/GQL_20240412Parser.java | 41037 ++++++++++++++++ .../javac/ANTLR/GQL_20240424Lexer.interp | 1239 + developer/javac/ANTLR/GQL_20240424Lexer.java | 3212 ++ .../javac/ANTLR/GQL_20240424Lexer.tokens | 755 + developer/javac/ANTLR/GQL_test.interp | 32 + developer/javac/ANTLR/GQL_test.tokens | 11 + .../javac/ANTLR/GQL_testBaseListener.java | 99 + developer/javac/ANTLR/GQL_testLexer.interp | 41 + developer/javac/ANTLR/GQL_testLexer.java | 155 + developer/javac/ANTLR/GQL_testLexer.tokens | 11 + developer/javac/ANTLR/GQL_testListener.java | 59 + developer/javac/ANTLR/GQL_testParser.java | 393 + developer/makefile | 51 +- 21 files changed, 67968 insertions(+), 15 deletions(-) rename developer/ANTLR/{GQL_2024.g4 => GQL_20240412.g4} (99%) create mode 100644 developer/javac/ANTLR/GQL_20240412.interp create mode 100644 developer/javac/ANTLR/GQL_20240412.tokens create mode 100644 developer/javac/ANTLR/GQL_20240412BaseListener.java create mode 100644 developer/javac/ANTLR/GQL_20240412Lexer.interp create mode 100644 developer/javac/ANTLR/GQL_20240412Lexer.java create mode 100644 developer/javac/ANTLR/GQL_20240412Lexer.tokens create mode 100644 developer/javac/ANTLR/GQL_20240412Listener.java create mode 100644 developer/javac/ANTLR/GQL_20240412Parser.java create mode 100644 developer/javac/ANTLR/GQL_20240424Lexer.interp create mode 100644 developer/javac/ANTLR/GQL_20240424Lexer.java create mode 100644 developer/javac/ANTLR/GQL_20240424Lexer.tokens create mode 100644 developer/javac/ANTLR/GQL_test.interp create mode 100644 developer/javac/ANTLR/GQL_test.tokens create mode 100644 developer/javac/ANTLR/GQL_testBaseListener.java create mode 100644 developer/javac/ANTLR/GQL_testLexer.interp create mode 100644 developer/javac/ANTLR/GQL_testLexer.java create mode 100644 developer/javac/ANTLR/GQL_testLexer.tokens create mode 100644 developer/javac/ANTLR/GQL_testListener.java create mode 100644 developer/javac/ANTLR/GQL_testParser.java diff --git a/developer/ANTLR/GQL_2024.g4 b/developer/ANTLR/GQL_20240412.g4 similarity index 99% rename from developer/ANTLR/GQL_2024.g4 rename to developer/ANTLR/GQL_20240412.g4 index 4a2f4e6..ea8517c 100644 --- a/developer/ANTLR/GQL_2024.g4 +++ b/developer/ANTLR/GQL_20240412.g4 @@ -1,5 +1,5 @@ -grammar GQL_2024; - +grammar GQL_20240412; + options { caseInsensitive = true; } // 6 diff --git a/developer/javac/ANTLR/GQL_20240412.interp b/developer/javac/ANTLR/GQL_20240412.interp new file mode 100644 index 0000000..1706edb --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240412.interp @@ -0,0 +1,1367 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'ABS' +'ACOS' +'ALL' +'ALL_DIFFERENT' +'AND' +'ANY' +'ARRAY' +'AS' +'ASC' +'ASCENDING' +'ASIN' +'AT' +'ATAN' +'AVG' +'BIG' +'BIGINT' +'BINARY' +'BOOL' +'BOOLEAN' +'BOTH' +'BTRIM' +'BY' +'BYTE_LENGTH' +'BYTES' +'CALL' +'CARDINALITY' +'CASE' +'CAST' +'CEIL' +'CEILING' +'CHAR' +'CHAR_LENGTH' +'CHARACTER_LENGTH' +'CHARACTERISTICS' +'CLOSE' +'COALESCE' +'COLLECT_LIST' +'COMMIT' +'COPY' +'COS' +'COSH' +'COT' +'COUNT' +'CREATE' +'CURRENT_DATE' +'CURRENT_GRAPH' +'CURRENT_PROPERTY_GRAPH' +'CURRENT_SCHEMA' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'DATE' +'DATETIME' +'DAY' +'DEC' +'DECIMAL' +'DEGREES' +'DELETE' +'DESC' +'DESCENDING' +'DETACH' +'DISTINCT' +'DOUBLE' +'DROP' +'DURATION' +'DURATION_BETWEEN' +'ELEMENT_ID' +'ELSE' +'END' +'EXCEPT' +'EXISTS' +'EXP' +'FILTER' +'FINISH' +'FLOAT' +'FLOAT16' +'FLOAT32' +'FLOAT64' +'FLOAT128' +'FLOAT256' +'FLOOR' +'FOR' +'FROM' +'GROUP' +'HAVING' +'HOME_GRAPH' +'HOME_PROPERTY_GRAPH' +'HOME_SCHEMA' +'HOUR' +'IF' +'IN' +'INSERT' +'INT' +'INTEGER' +'INT8' +'INTEGER8' +'INT16' +'INTEGER16' +'INT32' +'INTEGER32' +'INT64' +'INTEGER64' +'INT128' +'INTEGER128' +'INT256' +'INTEGER256' +'INTERSECT' +'INTERVAL' +'IS' +'LEADING' +'LEFT' +'LET' +'LIKE' +'LIMIT' +'LIST' +'LN' +'LOCAL' +'LOCAL_DATETIME' +'LOCAL_TIME' +'LOCAL_TIMESTAMP' +'LOG' +'LOG10' +'LOWER' +'LTRIM' +'MATCH' +'MAX' +'MIN' +'MINUTE' +'MOD' +'MONTH' +'NEXT' +'NODETACH' +'NORMALIZE' +'NOT' +'NOTHING' +'NULL' +'NULLS' +'NULLIF' +'OCTET_LENGTH' +'OF' +'OFFSET' +'OPTIONAL' +'OR' +'ORDER' +'OTHERWISE' +'PARAMETER' +'PARAMETERS' +'PATH' +'PATH_LENGTH' +'PATHS' +'PERCENTILE_CONT' +'PERCENTILE_DISC' +'POWER' +'PRECISION' +'PROPERTY_EXISTS' +'RADIANS' +'REAL' +'RECORD' +'REMOVE' +'REPLACE' +'RESET' +'RETURN' +'RIGHT' +'ROLLBACK' +'RTRIM' +'SAME' +'SCHEMA' +'SECOND' +'SELECT' +'SESSION' +'SESSION_USER' +'SET' +'SIGNED' +'SIN' +'SINH' +'SIZE' +'SKIP' +'SMALL' +'SMALLINT' +'SQRT' +'START' +'STDDEV_POP' +'STDDEV_SAMP' +'STRING' +'SUM' +'TAN' +'TANH' +'THEN' +'TIME' +'TIMESTAMP' +'TRAILING' +'TRIM' +'TYPED' +'UBIGINT' +'UINT' +'UINT8' +'UINT16' +'UINT32' +'UINT64' +'UINT128' +'UINT256' +'UNION' +'UNSIGNED' +'UPPER' +'USE' +'USMALLINT' +'VALUE' +'VARBINARY' +'VARCHAR' +'VARIABLE' +'WHEN' +'WHERE' +'WITH' +'XOR' +'YEAR' +'YIELD' +'ZONED' +'ZONED_DATETIME' +'ZONED_TIME' +'ABSTRACT' +'AGGREGATE' +'AGGREGATES' +'ALTER' +'CATALOG' +'CLEAR' +'CLONE' +'CONSTRAINT' +'CURRENT_ROLE' +'CURRENT_USER' +'DATA' +'DIRECTORY' +'DRYRUN' +'EXACT' +'EXISTING' +'FUNCTION' +'GQLSTATUS' +'GRANT' +'INSTANT' +'INFINITY' +'NUMBER' +'NUMERIC' +'ON' +'OPEN' +'PARTITION' +'PROCEDURE' +'PRODUCT' +'PROJECT' +'QUERY' +'RECORDS' +'REFERENCE' +'RENAME' +'REVOKE' +'SUBSTRING' +'SYSTEM_USER' +'TEMPORAL' +'UNIQUE' +'UNIT' +'VALUES' +'ACYCLIC' +'BINDING' +'BINDINGS' +'CONNECTING' +'DESTINATION' +'DIFFERENT' +'DIRECTED' +'EDGE' +'EDGES' +'ELEMENT' +'ELEMENTS' +'FIRST' +'GRAPH' +'GROUPS' +'KEEP' +'LABEL' +'LABELED' +'LABELS' +'LAST' +'NFC' +'NFD' +'NFKC' +'NFKD' +'NO' +'NODE' +'NORMALIZED' +'ONLY' +'ORDINALITY' +'PROPERTY' +'READ' +'RELATIONSHIP' +'RELATIONSHIPS' +'REPEATABLE' +'SHORTEST' +'SIMPLE' +'SOURCE' +'TABLE' +'TEMP' +'TO' +'TRAIL' +'TRANSACTION' +'TYPE' +'UNDIRECTED' +'VERTEX' +'WALK' +'WITHOUT' +'WRITE' +'ZONE' +null +null +null +'|+|' +']->' +']~>' +'||' +'::' +'$$' +'..' +'>=' +'<-' +'<~' +'<-[' +'<~[' +'<->' +'<-/' +'<~/' +'<=' +'-[' +'-/' +'<>' +'->' +']-' +']~' +'=>' +'/-' +'/->' +'/~' +'/~>' +'~[' +'~>' +'~/' +'&' +'*' +':' +',' +'@' +'$' +'"' +'=' +'!' +'>' +'`' +'{' +'[' +'(' +'<' +'-' +'%' +'.' +'+' +'?' +'\'' +'\\' +'}' +']' +')' +'/' +'~' +'_' +'|' +null +null +null +null +null + +token symbolic names: +null +IMPLIES +BOOLEAN_LITERAL +SINGLE_QUOTED_CHARACTER_SEQUENCE +DOUBLE_QUOTED_CHARACTER_SEQUENCE +ACCENT_QUOTED_CHARACTER_SEQUENCE +NO_ESCAPE +BYTE_STRING_LITERAL +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER +UNSIGNED_HEXADECIMAL_INTEGER +UNSIGNED_OCTAL_INTEGER +UNSIGNED_BINARY_INTEGER +ABS +ACOS +ALL +ALL_DIFFERENT +AND +ANY +ARRAY +AS +ASC +ASCENDING +ASIN +AT +ATAN +AVG +BIG +BIGINT +BINARY +BOOL +BOOLEAN +BOTH +BTRIM +BY +BYTE_LENGTH +BYTES +CALL +CARDINALITY +CASE +CAST +CEIL +CEILING +CHAR +CHAR_LENGTH +CHARACTER_LENGTH +CHARACTERISTICS +CLOSE +COALESCE +COLLECT_LIST +COMMIT +COPY +COS +COSH +COT +COUNT +CREATE +CURRENT_DATE +CURRENT_GRAPH +CURRENT_PROPERTY_GRAPH +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +DATE +DATETIME +DAY +DEC +DECIMAL +DEGREES +DELETE +DESC +DESCENDING +DETACH +DISTINCT +DOUBLE +DROP +DURATION +DURATION_BETWEEN +ELEMENT_ID +ELSE +END +EXCEPT +EXISTS +EXP +FILTER +FINISH +FLOAT +FLOAT16 +FLOAT32 +FLOAT64 +FLOAT128 +FLOAT256 +FLOOR +FOR +FROM +GROUP +HAVING +HOME_GRAPH +HOME_PROPERTY_GRAPH +HOME_SCHEMA +HOUR +IF +IN +INSERT +INT +INTEGER +INT8 +INTEGER8 +INT16 +INTEGER16 +INT32 +INTEGER32 +INT64 +INTEGER64 +INT128 +INTEGER128 +INT256 +INTEGER256 +INTERSECT +INTERVAL +IS +LEADING +LEFT +LET +LIKE +LIMIT +LIST +LN +LOCAL +LOCAL_DATETIME +LOCAL_TIME +LOCAL_TIMESTAMP +LOG +LOG10 +LOWER +LTRIM +MATCH +MAX +MIN +MINUTE +MOD +MONTH +NEXT +NODETACH +NORMALIZE +NOT +NOTHING +NULL +NULLS +NULLIF +OCTET_LENGTH +OF +OFFSET +OPTIONAL +OR +ORDER +OTHERWISE +PARAMETER +PARAMETERS +PATH +PATH_LENGTH +PATHS +PERCENTILE_CONT +PERCENTILE_DISC +POWER +PRECISION +PROPERTY_EXISTS +RADIANS +REAL +RECORD +REMOVE +REPLACE +RESET +RETURN +RIGHT +ROLLBACK +RTRIM +SAME +SCHEMA +SECOND +SELECT +SESSION +SESSION_USER +SET +SIGNED +SIN +SINH +SIZE +SKIP_RESERVED_WORD +SMALL +SMALLINT +SQRT +START +STDDEV_POP +STDDEV_SAMP +STRING +SUM +TAN +TANH +THEN +TIME +TIMESTAMP +TRAILING +TRIM +TYPED +UBIGINT +UINT +UINT8 +UINT16 +UINT32 +UINT64 +UINT128 +UINT256 +UNION +UNSIGNED +UPPER +USE +USMALLINT +VALUE +VARBINARY +VARCHAR +VARIABLE +WHEN +WHERE +WITH +XOR +YEAR +YIELD +ZONED +ZONED_DATETIME +ZONED_TIME +ABSTRACT +AGGREGATE +AGGREGATES +ALTER +CATALOG +CLEAR +CLONE +CONSTRAINT +CURRENT_ROLE +CURRENT_USER +DATA +DIRECTORY +DRYRUN +EXACT +EXISTING +FUNCTION +GQLSTATUS +GRANT +INSTANT +INFINITY +NUMBER +NUMERIC +ON +OPEN +PARTITION +PROCEDURE +PRODUCT +PROJECT +QUERY +RECORDS +REFERENCE +RENAME +REVOKE +SUBSTRING +SYSTEM_USER +TEMPORAL +UNIQUE +UNIT +VALUES +ACYCLIC +BINDING +BINDINGS +CONNECTING +DESTINATION +DIFFERENT +DIRECTED +EDGE +EDGES +ELEMENT +ELEMENTS +FIRST +GRAPH +GROUPS +KEEP +LABEL +LABELED +LABELS +LAST +NFC +NFD +NFKC +NFKD +NO +NODE +NORMALIZED +ONLY +ORDINALITY +PROPERTY +READ +RELATIONSHIP +RELATIONSHIPS +REPEATABLE +SHORTEST +SIMPLE +SOURCE +TABLE +TEMP +TO +TRAIL +TRANSACTION +TYPE +UNDIRECTED +VERTEX +WALK +WITHOUT +WRITE +ZONE +REGULAR_IDENTIFIER +SUBSTITUTED_PARAMETER_REFERENCE +GENERAL_PARAMETER_REFERENCE +MULTISET_ALTERNATION_OPERATOR +BRACKET_RIGHT_ARROW +BRACKET_TILDE_RIGHT_ARROW +CONCATENATION_OPERATOR +DOUBLE_COLON +DOUBLE_DOLLAR_SIGN +DOUBLE_PERIOD +GREATER_THAN_OR_EQUALS_OPERATOR +LEFT_ARROW +LEFT_ARROW_TILDE +LEFT_ARROW_BRACKET +LEFT_ARROW_TILDE_BRACKET +LEFT_MINUS_RIGHT +LEFT_MINUS_SLASH +LEFT_TILDE_SLASH +LESS_THAN_OR_EQUALS_OPERATOR +MINUS_LEFT_BRACKET +MINUS_SLASH +NOT_EQUALS_OPERATOR +RIGHT_ARROW +RIGHT_BRACKET_MINUS +RIGHT_BRACKET_TILDE +RIGHT_DOUBLE_ARROW +SLASH_MINUS +SLASH_MINUS_RIGHT +SLASH_TILDE +SLASH_TILDE_RIGHT +TILDE_LEFT_BRACKET +TILDE_RIGHT_ARROW +TILDE_SLASH +AMPERSAND +ASTERISK +COLON +COMMA +COMMERCIAL_AT +DOLLAR_SIGN +DOUBLE_QUOTE +EQUALS_OPERATOR +EXCLAMATION_MARK +RIGHT_ANGLE_BRACKET +GRAVE_ACCENT +LEFT_BRACE +LEFT_BRACKET +LEFT_PAREN +LEFT_ANGLE_BRACKET +MINUS_SIGN +PERCENT +PERIOD +PLUS_SIGN +QUESTION_MARK +QUOTE +REVERSE_SOLIDUS +RIGHT_BRACE +RIGHT_BRACKET +RIGHT_PAREN +SOLIDUS +TILDE +UNDERSCORE +VERTICAL_BAR +SP +WHITESPACE +BRACKETED_COMMENT +SIMPLE_COMMENT_SOLIDUS +SIMPLE_COMMENT_MINUS + +rule names: +gqlProgram +programActivity +sessionActivity +transactionActivity +endTransactionCommand +sessionSetCommand +sessionSetSchemaClause +sessionSetGraphClause +sessionSetTimeZoneClause +setTimeZoneValue +sessionSetParameterClause +sessionSetGraphParameterClause +sessionSetBindingTableParameterClause +sessionSetValueParameterClause +sessionSetParameterName +sessionResetCommand +sessionResetArguments +sessionCloseCommand +sessionParameterSpecification +startTransactionCommand +transactionCharacteristics +transactionMode +transactionAccessMode +rollbackCommand +commitCommand +nestedProcedureSpecification +procedureSpecification +nestedDataModifyingProcedureSpecification +nestedQuerySpecification +procedureBody +bindingVariableDefinitionBlock +bindingVariableDefinition +statementBlock +statement +nextStatement +graphVariableDefinition +optTypedGraphInitializer +graphInitializer +bindingTableVariableDefinition +optTypedBindingTableInitializer +bindingTableInitializer +valueVariableDefinition +optTypedValueInitializer +valueInitializer +graphExpression +currentGraph +bindingTableExpression +nestedBindingTableQuerySpecification +objectExpressionPrimary +linearCatalogModifyingStatement +simpleCatalogModifyingStatement +primitiveCatalogModifyingStatement +createSchemaStatement +dropSchemaStatement +createGraphStatement +openGraphType +ofGraphType +graphTypeLikeGraph +graphSource +dropGraphStatement +createGraphTypeStatement +graphTypeSource +copyOfGraphType +dropGraphTypeStatement +callCatalogModifyingProcedureStatement +linearDataModifyingStatement +focusedLinearDataModifyingStatement +focusedLinearDataModifyingStatementBody +focusedNestedDataModifyingProcedureSpecification +ambientLinearDataModifyingStatement +ambientLinearDataModifyingStatementBody +simpleLinearDataAccessingStatement +simpleDataModifyingStatement +primitiveDataModifyingStatement +insertStatement +setStatement +setItemList +setItem +setPropertyItem +setAllPropertiesItem +setLabelItem +removeStatement +removeItemList +removeItem +removePropertyItem +removeLabelItem +deleteStatement +deleteItemList +deleteItem +callDataModifyingProcedureStatement +compositeQueryStatement +compositeQueryExpression +queryConjunction +setOperator +compositeQueryPrimary +linearQueryStatement +focusedLinearQueryStatement +focusedLinearQueryStatementPart +focusedLinearQueryAndPrimitiveResultStatementPart +focusedPrimitiveResultStatement +focusedNestedQuerySpecification +ambientLinearQueryStatement +simpleLinearQueryStatement +simpleQueryStatement +primitiveQueryStatement +matchStatement +simpleMatchStatement +optionalMatchStatement +optionalOperand +matchStatementBlock +callQueryStatement +filterStatement +letStatement +letVariableDefinitionList +letVariableDefinition +forStatement +forItem +forItemAlias +forItemSource +forOrdinalityOrOffset +orderByAndPageStatement +primitiveResultStatement +returnStatement +returnStatementBody +returnItemList +returnItem +returnItemAlias +selectStatement +selectItemList +selectItem +selectItemAlias +havingClause +selectStatementBody +selectGraphMatchList +selectGraphMatch +selectQuerySpecification +callProcedureStatement +procedureCall +inlineProcedureCall +variableScopeClause +bindingVariableReferenceList +namedProcedureCall +procedureArgumentList +procedureArgument +atSchemaClause +useGraphClause +graphPatternBindingTable +graphPatternYieldClause +graphPatternYieldItemList +graphPatternYieldItem +graphPattern +matchMode +repeatableElementsMatchMode +differentEdgesMatchMode +elementBindingsOrElements +edgeBindingsOrEdges +pathPatternList +pathPattern +pathVariableDeclaration +keepClause +graphPatternWhereClause +insertGraphPattern +insertPathPatternList +insertPathPattern +insertNodePattern +insertEdgePattern +insertEdgePointingLeft +insertEdgePointingRight +insertEdgeUndirected +insertElementPatternFiller +labelAndPropertySetSpecification +pathPatternPrefix +pathModePrefix +pathMode +pathSearchPrefix +allPathSearch +pathOrPaths +anyPathSearch +numberOfPaths +shortestPathSearch +allShortestPathSearch +anyShortestPathSearch +countedShortestPathSearch +countedShortestGroupSearch +numberOfGroups +pathPatternExpression +pathTerm +pathFactor +pathPrimary +elementPattern +nodePattern +elementPatternFiller +elementVariableDeclaration +isLabelExpression +isOrColon +elementPatternPredicate +elementPatternWhereClause +elementPropertySpecification +propertyKeyValuePairList +propertyKeyValuePair +edgePattern +fullEdgePattern +fullEdgePointingLeft +fullEdgeUndirected +fullEdgePointingRight +fullEdgeLeftOrUndirected +fullEdgeUndirectedOrRight +fullEdgeLeftOrRight +fullEdgeAnyDirection +abbreviatedEdgePattern +parenthesizedPathPatternExpression +subpathVariableDeclaration +parenthesizedPathPatternWhereClause +labelExpression +pathVariableReference +elementVariableReference +graphPatternQuantifier +fixedQuantifier +generalQuantifier +lowerBound +upperBound +simplifiedPathPatternExpression +simplifiedDefaultingLeft +simplifiedDefaultingUndirected +simplifiedDefaultingRight +simplifiedDefaultingLeftOrUndirected +simplifiedDefaultingUndirectedOrRight +simplifiedDefaultingLeftOrRight +simplifiedDefaultingAnyDirection +simplifiedContents +simplifiedPathUnion +simplifiedMultisetAlternation +simplifiedTerm +simplifiedFactorLow +simplifiedFactorHigh +simplifiedQuantified +simplifiedQuestioned +simplifiedTertiary +simplifiedDirectionOverride +simplifiedOverrideLeft +simplifiedOverrideUndirected +simplifiedOverrideRight +simplifiedOverrideLeftOrUndirected +simplifiedOverrideUndirectedOrRight +simplifiedOverrideLeftOrRight +simplifiedOverrideAnyDirection +simplifiedSecondary +simplifiedNegation +simplifiedPrimary +whereClause +yieldClause +yieldItemList +yieldItem +yieldItemName +yieldItemAlias +groupByClause +groupingElementList +groupingElement +emptyGroupingSet +orderByClause +sortSpecificationList +sortSpecification +sortKey +orderingSpecification +nullOrdering +limitClause +offsetClause +offsetSynonym +schemaReference +absoluteCatalogSchemaReference +catalogSchemaParentAndName +relativeCatalogSchemaReference +predefinedSchemaReference +absoluteDirectoryPath +relativeDirectoryPath +simpleDirectoryPath +graphReference +catalogGraphParentAndName +homeGraph +graphTypeReference +catalogGraphTypeParentAndName +bindingTableReference +procedureReference +catalogProcedureParentAndName +catalogObjectParentReference +referenceParameterSpecification +nestedGraphTypeSpecification +graphTypeSpecificationBody +elementTypeList +elementTypeSpecification +nodeTypeSpecification +nodeTypePattern +nodeTypePhrase +nodeTypePhraseFiller +nodeTypeFiller +localNodeTypeAlias +nodeTypeImpliedContent +nodeTypeKeyLabelSet +nodeTypeLabelSet +nodeTypePropertyTypes +edgeTypeSpecification +edgeTypePattern +edgeTypePhrase +edgeTypePhraseFiller +edgeTypeFiller +edgeTypeImpliedContent +edgeTypeKeyLabelSet +edgeTypeLabelSet +edgeTypePropertyTypes +edgeTypePatternDirected +edgeTypePatternPointingRight +edgeTypePatternPointingLeft +edgeTypePatternUndirected +arcTypePointingRight +arcTypePointingLeft +arcTypeUndirected +sourceNodeTypeReference +destinationNodeTypeReference +edgeKind +endpointPairPhrase +endpointPair +endpointPairDirected +endpointPairPointingRight +endpointPairPointingLeft +endpointPairUndirected +connectorPointingRight +connectorUndirected +sourceNodeTypeAlias +destinationNodeTypeAlias +labelSetPhrase +labelSetSpecification +propertyTypesSpecification +propertyTypeList +propertyType +propertyValueType +bindingTableType +valueType +typed +predefinedType +booleanType +characterStringType +byteStringType +minLength +maxLength +fixedLength +numericType +exactNumericType +binaryExactNumericType +signedBinaryExactNumericType +unsignedBinaryExactNumericType +verboseBinaryExactNumericType +decimalExactNumericType +precision +scale +approximateNumericType +temporalType +temporalInstantType +datetimeType +localdatetimeType +dateType +timeType +localtimeType +temporalDurationType +temporalDurationQualifier +referenceValueType +immaterialValueType +nullType +emptyType +graphReferenceValueType +closedGraphReferenceValueType +openGraphReferenceValueType +bindingTableReferenceValueType +nodeReferenceValueType +closedNodeReferenceValueType +openNodeReferenceValueType +edgeReferenceValueType +closedEdgeReferenceValueType +openEdgeReferenceValueType +pathValueType +listValueTypeName +listValueTypeNameSynonym +recordType +fieldTypesSpecification +fieldTypeList +notNull +fieldType +searchCondition +predicate +comparisonPredicatePart2 +compOp +existsPredicate +nullPredicate +nullPredicatePart2 +valueTypePredicate +valueTypePredicatePart2 +normalizedPredicatePart2 +directedPredicate +directedPredicatePart2 +labeledPredicate +labeledPredicatePart2 +isLabeledOrColon +sourceDestinationPredicate +nodeReference +sourcePredicatePart2 +destinationPredicatePart2 +edgeReference +all_differentPredicate +samePredicate +property_existsPredicate +valueExpression +valueFunction +booleanValueExpression +characterOrByteStringFunction +subCharacterOrByteString +trimSingleCharacterOrByteString +foldCharacterString +trimMultiCharacterCharacterString +normalizeCharacterString +nodeReferenceValueExpression +edgeReferenceValueExpression +aggregatingValueExpression +valueExpressionPrimary +parenthesizedValueExpression +nonParenthesizedValueExpressionPrimary +nonParenthesizedValueExpressionPrimarySpecialCase +unsignedValueSpecification +nonNegativeIntegerSpecification +generalValueSpecification +dynamicParameterSpecification +letValueExpression +valueQueryExpression +caseExpression +caseAbbreviation +caseSpecification +simpleCase +searchedCase +simpleWhenClause +searchedWhenClause +elseClause +caseOperand +whenOperandList +whenOperand +result +resultExpression +castSpecification +castOperand +castTarget +aggregateFunction +generalSetFunction +binarySetFunction +generalSetFunctionType +setQuantifier +binarySetFunctionType +dependentValueExpression +independentValueExpression +element_idFunction +bindingVariableReference +pathValueExpression +pathValueConstructor +pathValueConstructorByEnumeration +pathElementList +pathElementListStart +pathElementListStep +listValueExpression +listValueFunction +trimListFunction +elementsFunction +listValueConstructor +listValueConstructorByEnumeration +listElementList +listElement +recordConstructor +fieldsSpecification +fieldList +field +truthValue +numericValueExpression +numericValueFunction +lengthExpression +cardinalityExpression +cardinalityExpressionArgument +charLengthExpression +byteLengthExpression +pathLengthExpression +absoluteValueExpression +modulusExpression +numericValueExpressionDividend +numericValueExpressionDivisor +trigonometricFunction +trigonometricFunctionName +generalLogarithmFunction +generalLogarithmBase +generalLogarithmArgument +commonLogarithm +naturalLogarithm +exponentialFunction +powerFunction +numericValueExpressionBase +numericValueExpressionExponent +squareRoot +floorFunction +ceilingFunction +characterStringValueExpression +byteStringValueExpression +trimOperands +trimCharacterOrByteStringSource +trimSpecification +trimCharacterOrByteString +normalForm +stringLength +datetimeValueExpression +datetimeValueFunction +dateFunction +timeFunction +localtimeFunction +datetimeFunction +localdatetimeFunction +dateFunctionParameters +timeFunctionParameters +datetimeFunctionParameters +durationValueExpression +datetimeSubtraction +datetimeSubtractionParameters +datetimeValueExpression1 +datetimeValueExpression2 +durationValueFunction +durationFunction +durationFunctionParameters +objectName +objectNameOrBindingVariable +directoryName +schemaName +graphName +delimitedGraphName +graphTypeName +nodeTypeName +edgeTypeName +bindingTableName +delimitedBindingTableName +procedureName +labelName +propertyName +fieldName +elementVariable +pathVariable +subpathVariable +bindingVariable +unsignedLiteral +generalLiteral +temporalLiteral +dateLiteral +timeLiteral +datetimeLiteral +listLiteral +recordLiteral +identifier +regularIdentifier +timeZoneString +characterStringLiteral +unsignedNumericLiteral +exactNumericLiteral +approximateNumericLiteral +unsignedInteger +unsignedDecimalInteger +nullLiteral +dateString +timeString +datetimeString +durationLiteral +durationString +nodeSynonym +edgesSynonym +edgeSynonym +nonReservedWords + + +atn: +[4, 1, 391, 4618, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 2, 521, 7, 521, 2, 522, 7, 522, 2, 523, 7, 523, 2, 524, 7, 524, 2, 525, 7, 525, 2, 526, 7, 526, 2, 527, 7, 527, 2, 528, 7, 528, 2, 529, 7, 529, 2, 530, 7, 530, 2, 531, 7, 531, 2, 532, 7, 532, 2, 533, 7, 533, 2, 534, 7, 534, 2, 535, 7, 535, 2, 536, 7, 536, 2, 537, 7, 537, 2, 538, 7, 538, 2, 539, 7, 539, 2, 540, 7, 540, 2, 541, 7, 541, 2, 542, 7, 542, 2, 543, 7, 543, 2, 544, 7, 544, 2, 545, 7, 545, 2, 546, 7, 546, 2, 547, 7, 547, 2, 548, 7, 548, 2, 549, 7, 549, 2, 550, 7, 550, 2, 551, 7, 551, 2, 552, 7, 552, 2, 553, 7, 553, 2, 554, 7, 554, 2, 555, 7, 555, 2, 556, 7, 556, 2, 557, 7, 557, 2, 558, 7, 558, 2, 559, 7, 559, 2, 560, 7, 560, 2, 561, 7, 561, 2, 562, 7, 562, 2, 563, 7, 563, 2, 564, 7, 564, 2, 565, 7, 565, 2, 566, 7, 566, 2, 567, 7, 567, 2, 568, 7, 568, 2, 569, 7, 569, 2, 570, 7, 570, 2, 571, 7, 571, 2, 572, 7, 572, 2, 573, 7, 573, 1, 0, 1, 0, 3, 0, 1151, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 1158, 8, 0, 1, 1, 1, 1, 3, 1, 1162, 8, 1, 1, 2, 4, 2, 1165, 8, 2, 11, 2, 12, 2, 1166, 1, 2, 4, 2, 1170, 8, 2, 11, 2, 12, 2, 1171, 1, 2, 5, 2, 1175, 8, 2, 10, 2, 12, 2, 1178, 9, 2, 3, 2, 1180, 8, 2, 1, 3, 1, 3, 1, 3, 3, 3, 1185, 8, 3, 3, 3, 1187, 8, 3, 1, 3, 1, 3, 3, 3, 1191, 8, 3, 1, 3, 3, 3, 1194, 8, 3, 1, 4, 1, 4, 3, 4, 1198, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 1206, 8, 5, 1, 6, 1, 6, 1, 6, 1, 7, 3, 7, 1212, 8, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 3, 10, 1226, 8, 10, 1, 11, 3, 11, 1229, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 3, 12, 1236, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 3, 14, 1249, 8, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 3, 15, 1256, 8, 15, 1, 16, 3, 16, 1259, 8, 16, 1, 16, 1, 16, 1, 16, 3, 16, 1264, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 1270, 8, 16, 1, 16, 3, 16, 1273, 8, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 3, 19, 1283, 8, 19, 1, 20, 1, 20, 1, 20, 5, 20, 1288, 8, 20, 10, 20, 12, 20, 1291, 9, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 1299, 8, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 3, 29, 1320, 8, 29, 1, 29, 3, 29, 1323, 8, 29, 1, 29, 1, 29, 1, 30, 4, 30, 1328, 8, 30, 11, 30, 12, 30, 1329, 1, 31, 1, 31, 1, 31, 3, 31, 1335, 8, 31, 1, 32, 1, 32, 5, 32, 1339, 8, 32, 10, 32, 12, 32, 1342, 9, 32, 1, 33, 1, 33, 1, 33, 3, 33, 1347, 8, 33, 1, 34, 1, 34, 3, 34, 1351, 8, 34, 1, 34, 1, 34, 1, 35, 3, 35, 1356, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 3, 36, 1363, 8, 36, 1, 36, 3, 36, 1366, 8, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 38, 3, 38, 1374, 8, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 3, 39, 1381, 8, 39, 1, 39, 3, 39, 1384, 8, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 3, 42, 1396, 8, 42, 1, 42, 3, 42, 1399, 8, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 1410, 8, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 1418, 8, 46, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 1426, 8, 48, 1, 49, 4, 49, 1429, 8, 49, 11, 49, 12, 49, 1430, 1, 50, 1, 50, 3, 50, 1435, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1443, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 1450, 8, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 1458, 8, 53, 1, 53, 1, 53, 1, 54, 1, 54, 3, 54, 1464, 8, 54, 1, 54, 1, 54, 1, 54, 1, 54, 3, 54, 1470, 8, 54, 1, 54, 1, 54, 1, 54, 3, 54, 1475, 8, 54, 1, 54, 3, 54, 1478, 8, 54, 1, 54, 1, 54, 1, 54, 3, 54, 1483, 8, 54, 1, 54, 3, 54, 1486, 8, 54, 1, 55, 3, 55, 1489, 8, 55, 1, 55, 1, 55, 3, 55, 1493, 8, 55, 1, 55, 3, 55, 1496, 8, 55, 1, 56, 1, 56, 3, 56, 1500, 8, 56, 1, 56, 1, 56, 3, 56, 1504, 8, 56, 1, 56, 3, 56, 1507, 8, 56, 1, 56, 3, 56, 1510, 8, 56, 1, 56, 3, 56, 1513, 8, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 3, 59, 1525, 8, 59, 1, 59, 1, 59, 1, 59, 3, 59, 1530, 8, 59, 1, 59, 1, 59, 1, 60, 1, 60, 3, 60, 1536, 8, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 3, 60, 1543, 8, 60, 1, 60, 1, 60, 1, 60, 3, 60, 1548, 8, 60, 1, 60, 1, 60, 3, 60, 1552, 8, 60, 1, 60, 1, 60, 1, 60, 1, 61, 3, 61, 1558, 8, 61, 1, 61, 1, 61, 1, 61, 3, 61, 1563, 8, 61, 1, 61, 3, 61, 1566, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 3, 63, 1574, 8, 63, 1, 63, 1, 63, 1, 63, 1, 63, 3, 63, 1580, 8, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 65, 1, 65, 3, 65, 1588, 8, 65, 1, 66, 1, 66, 3, 66, 1592, 8, 66, 1, 67, 1, 67, 1, 67, 3, 67, 1597, 8, 67, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 3, 69, 1604, 8, 69, 1, 70, 1, 70, 3, 70, 1608, 8, 70, 1, 71, 5, 71, 1611, 8, 71, 10, 71, 12, 71, 1614, 9, 71, 1, 71, 4, 71, 1617, 8, 71, 11, 71, 12, 71, 1618, 1, 72, 1, 72, 3, 72, 1623, 8, 72, 1, 73, 1, 73, 1, 73, 1, 73, 3, 73, 1629, 8, 73, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 5, 76, 1640, 8, 76, 10, 76, 12, 76, 1643, 9, 76, 1, 77, 1, 77, 1, 77, 3, 77, 1648, 8, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 3, 79, 1660, 8, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 5, 82, 1674, 8, 82, 10, 82, 12, 82, 1677, 9, 82, 1, 83, 1, 83, 3, 83, 1681, 8, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 3, 86, 1692, 8, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 5, 87, 1700, 8, 87, 10, 87, 12, 87, 1703, 9, 87, 1, 88, 1, 88, 1, 89, 1, 89, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 5, 91, 1718, 8, 91, 10, 91, 12, 91, 1721, 9, 91, 1, 92, 1, 92, 3, 92, 1725, 8, 92, 1, 93, 1, 93, 3, 93, 1729, 8, 93, 1, 93, 1, 93, 3, 93, 1733, 8, 93, 1, 93, 1, 93, 3, 93, 1737, 8, 93, 3, 93, 1739, 8, 93, 1, 94, 1, 94, 1, 95, 1, 95, 3, 95, 1745, 8, 95, 1, 96, 5, 96, 1748, 8, 96, 10, 96, 12, 96, 1751, 9, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 1757, 8, 96, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 101, 3, 101, 1773, 8, 101, 1, 101, 1, 101, 3, 101, 1777, 8, 101, 1, 102, 4, 102, 1780, 8, 102, 11, 102, 12, 102, 1781, 1, 103, 1, 103, 3, 103, 1786, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 1793, 8, 104, 1, 105, 1, 105, 3, 105, 1797, 8, 105, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 3, 108, 1814, 8, 108, 1, 109, 4, 109, 1817, 8, 109, 11, 109, 12, 109, 1818, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 3, 111, 1826, 8, 111, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 5, 113, 1834, 8, 113, 10, 113, 12, 113, 1837, 9, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 3, 114, 1844, 8, 114, 1, 115, 1, 115, 1, 115, 3, 115, 1849, 8, 115, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 3, 120, 1865, 8, 120, 1, 120, 3, 120, 1868, 8, 120, 1, 120, 1, 120, 3, 120, 1872, 8, 120, 1, 120, 3, 120, 1875, 8, 120, 1, 121, 1, 121, 3, 121, 1879, 8, 121, 1, 121, 3, 121, 1882, 8, 121, 1, 122, 1, 122, 1, 122, 1, 123, 3, 123, 1888, 8, 123, 1, 123, 1, 123, 3, 123, 1892, 8, 123, 1, 123, 3, 123, 1895, 8, 123, 1, 123, 1, 123, 3, 123, 1899, 8, 123, 1, 124, 1, 124, 1, 124, 5, 124, 1904, 8, 124, 10, 124, 12, 124, 1907, 9, 124, 1, 125, 1, 125, 3, 125, 1911, 8, 125, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 3, 127, 1918, 8, 127, 1, 127, 1, 127, 3, 127, 1922, 8, 127, 1, 127, 1, 127, 3, 127, 1926, 8, 127, 1, 127, 3, 127, 1929, 8, 127, 1, 127, 3, 127, 1932, 8, 127, 1, 127, 3, 127, 1935, 8, 127, 1, 127, 3, 127, 1938, 8, 127, 1, 127, 3, 127, 1941, 8, 127, 3, 127, 1943, 8, 127, 1, 128, 1, 128, 1, 128, 5, 128, 1948, 8, 128, 10, 128, 12, 128, 1951, 9, 128, 1, 129, 1, 129, 3, 129, 1955, 8, 129, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 3, 132, 1966, 8, 132, 1, 133, 1, 133, 1, 133, 5, 133, 1971, 8, 133, 10, 133, 12, 133, 1974, 9, 133, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 3, 135, 1983, 8, 135, 1, 136, 3, 136, 1986, 8, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 3, 137, 1993, 8, 137, 1, 138, 3, 138, 1996, 8, 138, 1, 138, 1, 138, 1, 139, 1, 139, 3, 139, 2002, 8, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 5, 140, 2009, 8, 140, 10, 140, 12, 140, 2012, 9, 140, 1, 141, 1, 141, 1, 141, 3, 141, 2017, 8, 141, 1, 141, 1, 141, 3, 141, 2021, 8, 141, 1, 142, 1, 142, 1, 142, 5, 142, 2026, 8, 142, 10, 142, 12, 142, 2029, 9, 142, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 3, 146, 2041, 8, 146, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 5, 148, 2049, 8, 148, 10, 148, 12, 148, 2052, 9, 148, 1, 148, 1, 148, 3, 148, 2056, 8, 148, 1, 149, 1, 149, 1, 150, 3, 150, 2061, 8, 150, 1, 150, 1, 150, 3, 150, 2065, 8, 150, 1, 150, 3, 150, 2068, 8, 150, 1, 151, 1, 151, 3, 151, 2072, 8, 151, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 3, 154, 2082, 8, 154, 1, 154, 3, 154, 2085, 8, 154, 1, 155, 1, 155, 3, 155, 2089, 8, 155, 1, 155, 3, 155, 2092, 8, 155, 1, 156, 1, 156, 1, 156, 5, 156, 2097, 8, 156, 10, 156, 12, 156, 2100, 9, 156, 1, 157, 3, 157, 2103, 8, 157, 1, 157, 3, 157, 2106, 8, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 5, 162, 2124, 8, 162, 10, 162, 12, 162, 2127, 9, 162, 1, 163, 1, 163, 1, 163, 1, 163, 5, 163, 2133, 8, 163, 10, 163, 12, 163, 2136, 9, 163, 1, 164, 1, 164, 3, 164, 2140, 8, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 3, 165, 2147, 8, 165, 1, 166, 1, 166, 3, 166, 2151, 8, 166, 1, 166, 1, 166, 1, 167, 1, 167, 3, 167, 2157, 8, 167, 1, 167, 1, 167, 1, 168, 1, 168, 3, 168, 2163, 8, 168, 1, 168, 1, 168, 1, 169, 1, 169, 3, 169, 2169, 8, 169, 1, 169, 3, 169, 2172, 8, 169, 1, 169, 3, 169, 2175, 8, 169, 1, 170, 1, 170, 1, 170, 3, 170, 2180, 8, 170, 1, 170, 1, 170, 1, 170, 3, 170, 2185, 8, 170, 1, 170, 3, 170, 2188, 8, 170, 1, 171, 1, 171, 3, 171, 2192, 8, 171, 1, 172, 1, 172, 3, 172, 2196, 8, 172, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 3, 174, 2203, 8, 174, 1, 175, 1, 175, 3, 175, 2207, 8, 175, 1, 175, 3, 175, 2210, 8, 175, 1, 176, 1, 176, 1, 177, 1, 177, 3, 177, 2216, 8, 177, 1, 177, 3, 177, 2219, 8, 177, 1, 177, 3, 177, 2222, 8, 177, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 3, 179, 2230, 8, 179, 1, 180, 1, 180, 1, 180, 3, 180, 2235, 8, 180, 1, 180, 3, 180, 2238, 8, 180, 1, 181, 1, 181, 1, 181, 3, 181, 2243, 8, 181, 1, 181, 3, 181, 2246, 8, 181, 1, 182, 1, 182, 1, 182, 3, 182, 2251, 8, 182, 1, 182, 3, 182, 2254, 8, 182, 1, 183, 1, 183, 3, 183, 2258, 8, 183, 1, 183, 3, 183, 2261, 8, 183, 1, 183, 3, 183, 2264, 8, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 4, 185, 2274, 8, 185, 11, 185, 12, 185, 2275, 1, 185, 1, 185, 1, 185, 4, 185, 2281, 8, 185, 11, 185, 12, 185, 2282, 3, 185, 2285, 8, 185, 1, 186, 4, 186, 2288, 8, 186, 11, 186, 12, 186, 2289, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 3, 187, 2299, 8, 187, 1, 188, 1, 188, 1, 188, 3, 188, 2304, 8, 188, 1, 189, 1, 189, 3, 189, 2308, 8, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 3, 191, 2315, 8, 191, 1, 191, 3, 191, 2318, 8, 191, 1, 191, 3, 191, 2321, 8, 191, 1, 192, 3, 192, 2324, 8, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 195, 1, 195, 3, 195, 2335, 8, 195, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 5, 198, 2347, 8, 198, 10, 198, 12, 198, 2350, 9, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 3, 200, 2358, 8, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 3, 201, 2367, 8, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 210, 1, 210, 3, 210, 2401, 8, 210, 1, 210, 3, 210, 2404, 8, 210, 1, 210, 1, 210, 3, 210, 2408, 8, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 2427, 8, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 5, 213, 2435, 8, 213, 10, 213, 12, 213, 2438, 9, 213, 1, 214, 1, 214, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 3, 216, 2448, 8, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 3, 218, 2456, 8, 218, 1, 218, 1, 218, 3, 218, 2460, 8, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 3, 221, 2475, 8, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 3, 229, 2508, 8, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 5, 230, 2515, 8, 230, 10, 230, 12, 230, 2518, 9, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 5, 231, 2525, 8, 231, 10, 231, 12, 231, 2528, 9, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 5, 232, 2535, 8, 232, 10, 232, 12, 232, 2538, 9, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 5, 233, 2546, 8, 233, 10, 233, 12, 233, 2549, 9, 233, 1, 234, 1, 234, 1, 234, 3, 234, 2554, 8, 234, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 3, 237, 2564, 8, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 3, 238, 2573, 8, 238, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 3, 246, 2600, 8, 246, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 3, 248, 2610, 8, 248, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 5, 251, 2621, 8, 251, 10, 251, 12, 251, 2624, 9, 251, 1, 252, 1, 252, 3, 252, 2628, 8, 252, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 5, 256, 2642, 8, 256, 10, 256, 12, 256, 2645, 9, 256, 1, 256, 3, 256, 2648, 8, 256, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 5, 260, 2662, 8, 260, 10, 260, 12, 260, 2665, 9, 260, 1, 261, 1, 261, 3, 261, 2669, 8, 261, 1, 261, 3, 261, 2672, 8, 261, 1, 262, 1, 262, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 3, 264, 2682, 8, 264, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 3, 268, 2695, 8, 268, 1, 269, 1, 269, 1, 269, 1, 269, 3, 269, 2701, 8, 269, 1, 270, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 3, 271, 2710, 8, 271, 1, 272, 1, 272, 1, 273, 1, 273, 3, 273, 2716, 8, 273, 1, 274, 1, 274, 1, 274, 5, 274, 2721, 8, 274, 10, 274, 12, 274, 2724, 9, 274, 1, 274, 1, 274, 3, 274, 2728, 8, 274, 1, 275, 1, 275, 1, 275, 4, 275, 2733, 8, 275, 11, 275, 12, 275, 2734, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 3, 276, 2743, 8, 276, 1, 277, 3, 277, 2746, 8, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 279, 1, 279, 3, 279, 2754, 8, 279, 1, 280, 3, 280, 2757, 8, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 3, 281, 2766, 8, 281, 1, 282, 1, 282, 3, 282, 2770, 8, 282, 1, 283, 3, 283, 2773, 8, 283, 1, 283, 1, 283, 1, 284, 1, 284, 3, 284, 2779, 8, 284, 1, 284, 1, 284, 1, 284, 5, 284, 2784, 8, 284, 10, 284, 12, 284, 2787, 9, 284, 1, 284, 1, 284, 1, 284, 4, 284, 2792, 8, 284, 11, 284, 12, 284, 2793, 3, 284, 2796, 8, 284, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 5, 288, 2809, 8, 288, 10, 288, 12, 288, 2812, 9, 288, 1, 289, 1, 289, 3, 289, 2816, 8, 289, 1, 290, 1, 290, 3, 290, 2820, 8, 290, 1, 291, 1, 291, 3, 291, 2824, 8, 291, 1, 291, 1, 291, 3, 291, 2828, 8, 291, 1, 291, 1, 291, 3, 291, 2832, 8, 291, 1, 291, 3, 291, 2835, 8, 291, 1, 291, 1, 291, 1, 292, 1, 292, 3, 292, 2841, 8, 292, 1, 292, 1, 292, 1, 292, 3, 292, 2846, 8, 292, 1, 293, 1, 293, 3, 293, 2850, 8, 293, 1, 293, 3, 293, 2853, 8, 293, 1, 294, 1, 294, 3, 294, 2857, 8, 294, 1, 294, 3, 294, 2860, 8, 294, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 3, 296, 2869, 8, 296, 1, 297, 3, 297, 2872, 8, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 299, 1, 299, 1, 300, 1, 300, 3, 300, 2882, 8, 300, 1, 301, 3, 301, 2885, 8, 301, 1, 301, 1, 301, 3, 301, 2889, 8, 301, 1, 301, 1, 301, 3, 301, 2893, 8, 301, 1, 301, 1, 301, 3, 301, 2897, 8, 301, 1, 302, 1, 302, 1, 302, 3, 302, 2902, 8, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 3, 303, 2909, 8, 303, 1, 303, 3, 303, 2912, 8, 303, 1, 304, 1, 304, 3, 304, 2916, 8, 304, 1, 304, 3, 304, 2919, 8, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 3, 305, 2926, 8, 305, 1, 306, 3, 306, 2929, 8, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 308, 1, 308, 1, 309, 1, 309, 3, 309, 2939, 8, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 3, 316, 2971, 8, 316, 1, 316, 3, 316, 2974, 8, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 3, 317, 2982, 8, 317, 1, 317, 3, 317, 2985, 8, 317, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 3, 320, 2994, 8, 320, 1, 321, 1, 321, 3, 321, 2998, 8, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 326, 1, 326, 1, 327, 1, 327, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 3, 329, 3033, 8, 329, 1, 330, 1, 330, 1, 330, 5, 330, 3038, 8, 330, 10, 330, 12, 330, 3041, 9, 330, 1, 331, 1, 331, 3, 331, 3045, 8, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 5, 332, 3052, 8, 332, 10, 332, 12, 332, 3055, 9, 332, 1, 333, 1, 333, 3, 333, 3059, 8, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 335, 3, 335, 3066, 8, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 3, 336, 3082, 8, 336, 1, 336, 3, 336, 3085, 8, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 3, 336, 3092, 8, 336, 1, 336, 3, 336, 3095, 8, 336, 1, 336, 1, 336, 1, 336, 3, 336, 3100, 8, 336, 1, 336, 3, 336, 3103, 8, 336, 1, 336, 3, 336, 3106, 8, 336, 1, 336, 1, 336, 1, 336, 3, 336, 3111, 8, 336, 1, 336, 1, 336, 3, 336, 3115, 8, 336, 1, 336, 1, 336, 1, 336, 1, 336, 5, 336, 3121, 8, 336, 10, 336, 12, 336, 3124, 9, 336, 1, 336, 1, 336, 3, 336, 3128, 8, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 3, 336, 3139, 8, 336, 1, 336, 3, 336, 3142, 8, 336, 5, 336, 3144, 8, 336, 10, 336, 12, 336, 3147, 9, 336, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 3, 338, 3158, 8, 338, 1, 339, 1, 339, 3, 339, 3162, 8, 339, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 3169, 8, 340, 1, 340, 1, 340, 1, 340, 3, 340, 3174, 8, 340, 1, 340, 3, 340, 3177, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 3184, 8, 340, 1, 340, 3, 340, 3187, 8, 340, 1, 340, 1, 340, 1, 340, 1, 340, 1, 340, 3, 340, 3194, 8, 340, 1, 340, 3, 340, 3197, 8, 340, 3, 340, 3199, 8, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 3, 341, 3206, 8, 341, 1, 341, 1, 341, 1, 341, 3, 341, 3211, 8, 341, 1, 341, 3, 341, 3214, 8, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 3, 341, 3221, 8, 341, 1, 341, 3, 341, 3224, 8, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 3, 341, 3231, 8, 341, 1, 341, 3, 341, 3234, 8, 341, 3, 341, 3236, 8, 341, 1, 342, 1, 342, 1, 343, 1, 343, 1, 344, 1, 344, 1, 345, 1, 345, 3, 345, 3246, 8, 345, 1, 346, 1, 346, 3, 346, 3250, 8, 346, 1, 347, 1, 347, 3, 347, 3254, 8, 347, 1, 348, 1, 348, 3, 348, 3258, 8, 348, 1, 348, 1, 348, 3, 348, 3262, 8, 348, 1, 348, 1, 348, 3, 348, 3266, 8, 348, 1, 348, 1, 348, 3, 348, 3270, 8, 348, 1, 348, 1, 348, 3, 348, 3274, 8, 348, 1, 348, 1, 348, 3, 348, 3278, 8, 348, 1, 348, 1, 348, 3, 348, 3282, 8, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 3, 348, 3289, 8, 348, 1, 348, 3, 348, 3292, 8, 348, 1, 348, 1, 348, 3, 348, 3296, 8, 348, 1, 348, 3, 348, 3299, 8, 348, 1, 348, 3, 348, 3302, 8, 348, 1, 349, 1, 349, 3, 349, 3306, 8, 349, 1, 349, 1, 349, 3, 349, 3310, 8, 349, 1, 349, 1, 349, 3, 349, 3314, 8, 349, 1, 349, 1, 349, 3, 349, 3318, 8, 349, 1, 349, 1, 349, 3, 349, 3322, 8, 349, 1, 349, 1, 349, 3, 349, 3326, 8, 349, 1, 349, 1, 349, 3, 349, 3330, 8, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 3, 349, 3337, 8, 349, 1, 349, 3, 349, 3340, 8, 349, 1, 349, 1, 349, 3, 349, 3344, 8, 349, 1, 349, 1, 349, 3, 349, 3348, 8, 349, 1, 350, 1, 350, 3, 350, 3352, 8, 350, 1, 350, 1, 350, 3, 350, 3356, 8, 350, 1, 350, 1, 350, 3, 350, 3360, 8, 350, 1, 350, 1, 350, 3, 350, 3364, 8, 350, 1, 350, 1, 350, 3, 350, 3368, 8, 350, 1, 350, 1, 350, 3, 350, 3372, 8, 350, 1, 350, 1, 350, 1, 350, 3, 350, 3377, 8, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 3, 350, 3384, 8, 350, 1, 350, 3, 350, 3387, 8, 350, 1, 350, 1, 350, 1, 350, 3, 350, 3392, 8, 350, 3, 350, 3394, 8, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 3, 351, 3401, 8, 351, 1, 351, 1, 351, 3, 351, 3405, 8, 351, 3, 351, 3407, 8, 351, 1, 352, 1, 352, 1, 353, 1, 353, 1, 354, 1, 354, 3, 354, 3415, 8, 354, 1, 354, 1, 354, 3, 354, 3419, 8, 354, 1, 354, 1, 354, 3, 354, 3423, 8, 354, 1, 354, 1, 354, 3, 354, 3427, 8, 354, 1, 354, 1, 354, 3, 354, 3431, 8, 354, 1, 354, 1, 354, 1, 354, 1, 354, 1, 354, 3, 354, 3438, 8, 354, 1, 354, 1, 354, 3, 354, 3442, 8, 354, 1, 354, 3, 354, 3445, 8, 354, 1, 354, 1, 354, 3, 354, 3449, 8, 354, 1, 354, 1, 354, 3, 354, 3453, 8, 354, 1, 354, 3, 354, 3456, 8, 354, 3, 354, 3458, 8, 354, 1, 355, 1, 355, 3, 355, 3462, 8, 355, 1, 356, 1, 356, 1, 356, 1, 356, 1, 356, 3, 356, 3469, 8, 356, 1, 357, 1, 357, 1, 357, 3, 357, 3474, 8, 357, 1, 357, 1, 357, 1, 357, 1, 357, 1, 357, 3, 357, 3481, 8, 357, 3, 357, 3483, 8, 357, 1, 358, 1, 358, 1, 358, 3, 358, 3488, 8, 358, 1, 358, 1, 358, 1, 358, 1, 358, 3, 358, 3494, 8, 358, 1, 358, 3, 358, 3497, 8, 358, 3, 358, 3499, 8, 358, 1, 359, 1, 359, 3, 359, 3503, 8, 359, 1, 360, 1, 360, 1, 360, 3, 360, 3508, 8, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 3, 360, 3515, 8, 360, 3, 360, 3517, 8, 360, 1, 361, 1, 361, 1, 361, 3, 361, 3522, 8, 361, 1, 361, 1, 361, 1, 361, 1, 361, 1, 361, 3, 361, 3529, 8, 361, 3, 361, 3531, 8, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 362, 3, 362, 3538, 8, 362, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 1, 363, 3, 363, 3546, 8, 363, 1, 364, 1, 364, 1, 364, 1, 364, 3, 364, 3552, 8, 364, 1, 365, 1, 365, 3, 365, 3556, 8, 365, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 3, 367, 3563, 8, 367, 1, 368, 1, 368, 3, 368, 3567, 8, 368, 1, 369, 3, 369, 3570, 8, 369, 1, 369, 1, 369, 1, 369, 3, 369, 3575, 8, 369, 1, 370, 1, 370, 3, 370, 3579, 8, 370, 1, 370, 1, 370, 3, 370, 3583, 8, 370, 1, 371, 1, 371, 3, 371, 3587, 8, 371, 1, 372, 1, 372, 3, 372, 3591, 8, 372, 1, 373, 1, 373, 3, 373, 3595, 8, 373, 1, 374, 3, 374, 3598, 8, 374, 1, 374, 1, 374, 3, 374, 3602, 8, 374, 1, 375, 1, 375, 3, 375, 3606, 8, 375, 1, 376, 1, 376, 3, 376, 3610, 8, 376, 1, 377, 3, 377, 3613, 8, 377, 1, 377, 1, 377, 3, 377, 3617, 8, 377, 1, 378, 1, 378, 3, 378, 3621, 8, 378, 1, 379, 3, 379, 3624, 8, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 381, 3, 381, 3631, 8, 381, 1, 381, 1, 381, 3, 381, 3635, 8, 381, 1, 381, 3, 381, 3638, 8, 381, 1, 381, 1, 381, 3, 381, 3642, 8, 381, 3, 381, 3644, 8, 381, 1, 382, 1, 382, 3, 382, 3648, 8, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 5, 383, 3655, 8, 383, 10, 383, 12, 383, 3658, 9, 383, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 3, 385, 3665, 8, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 3, 387, 3680, 8, 387, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 1, 390, 3, 390, 3705, 8, 390, 1, 391, 1, 391, 1, 391, 1, 392, 1, 392, 3, 392, 3712, 8, 392, 1, 392, 1, 392, 1, 393, 1, 393, 1, 393, 1, 394, 1, 394, 3, 394, 3721, 8, 394, 1, 394, 1, 394, 1, 394, 1, 395, 1, 395, 3, 395, 3728, 8, 395, 1, 395, 3, 395, 3731, 8, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 397, 1, 397, 3, 397, 3740, 8, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 400, 1, 400, 3, 400, 3752, 8, 400, 1, 400, 1, 400, 3, 400, 3756, 8, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 3, 401, 3764, 8, 401, 1, 402, 1, 402, 1, 403, 1, 403, 3, 403, 3770, 8, 403, 1, 403, 1, 403, 1, 403, 1, 403, 1, 404, 1, 404, 3, 404, 3778, 8, 404, 1, 404, 1, 404, 1, 404, 1, 404, 1, 405, 1, 405, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 1, 406, 5, 406, 3793, 8, 406, 10, 406, 12, 406, 3796, 9, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 1, 407, 5, 407, 3807, 8, 407, 10, 407, 12, 407, 3810, 9, 407, 1, 407, 1, 407, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 408, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 3, 409, 3828, 8, 409, 1, 409, 1, 409, 1, 409, 3, 409, 3833, 8, 409, 1, 409, 1, 409, 1, 409, 1, 409, 3, 409, 3839, 8, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 3, 409, 3859, 8, 409, 1, 409, 1, 409, 1, 409, 1, 409, 1, 409, 5, 409, 3866, 8, 409, 10, 409, 12, 409, 3869, 9, 409, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 1, 410, 3, 410, 3877, 8, 410, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 3, 412, 3886, 8, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 414, 1, 414, 1, 414, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 3, 416, 3910, 8, 416, 1, 416, 1, 416, 1, 417, 1, 417, 1, 417, 1, 417, 1, 417, 3, 417, 3919, 8, 417, 1, 417, 1, 417, 1, 418, 1, 418, 1, 419, 1, 419, 1, 420, 1, 420, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 1, 421, 3, 421, 3940, 8, 421, 1, 421, 1, 421, 1, 421, 5, 421, 3945, 8, 421, 10, 421, 12, 421, 3948, 9, 421, 1, 422, 1, 422, 1, 422, 1, 422, 1, 423, 1, 423, 3, 423, 3956, 8, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 3, 424, 3970, 8, 424, 1, 425, 1, 425, 3, 425, 3974, 8, 425, 1, 426, 1, 426, 3, 426, 3978, 8, 426, 1, 427, 1, 427, 3, 427, 3982, 8, 427, 1, 428, 1, 428, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 431, 1, 431, 3, 431, 3997, 8, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 4, 432, 4011, 8, 432, 11, 432, 12, 432, 4012, 1, 432, 1, 432, 3, 432, 4017, 8, 432, 1, 433, 1, 433, 3, 433, 4021, 8, 433, 1, 434, 1, 434, 1, 434, 4, 434, 4026, 8, 434, 11, 434, 12, 434, 4027, 1, 434, 3, 434, 4031, 8, 434, 1, 434, 1, 434, 1, 435, 1, 435, 4, 435, 4037, 8, 435, 11, 435, 12, 435, 4038, 1, 435, 3, 435, 4042, 8, 435, 1, 435, 1, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 3, 439, 4061, 8, 439, 1, 440, 1, 440, 1, 440, 5, 440, 4066, 8, 440, 10, 440, 12, 440, 4069, 9, 440, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 1, 441, 3, 441, 4080, 8, 441, 1, 442, 1, 442, 3, 442, 4084, 8, 442, 1, 443, 1, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 445, 1, 445, 3, 445, 4097, 8, 445, 1, 446, 1, 446, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 1, 447, 3, 447, 4107, 8, 447, 1, 448, 1, 448, 1, 448, 3, 448, 4112, 8, 448, 1, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 449, 1, 450, 1, 450, 1, 451, 1, 451, 1, 452, 1, 452, 1, 453, 3, 453, 4131, 8, 453, 1, 453, 1, 453, 1, 454, 1, 454, 1, 455, 1, 455, 1, 455, 1, 455, 1, 455, 1, 456, 1, 456, 1, 457, 1, 457, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 5, 460, 4155, 8, 460, 10, 460, 12, 460, 4158, 9, 460, 1, 461, 1, 461, 1, 462, 1, 462, 1, 462, 1, 462, 1, 462, 1, 463, 1, 463, 1, 464, 1, 464, 3, 464, 4171, 8, 464, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 465, 1, 466, 1, 466, 1, 466, 1, 466, 1, 466, 1, 467, 1, 467, 1, 468, 3, 468, 4188, 8, 468, 1, 468, 1, 468, 3, 468, 4192, 8, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 5, 469, 4199, 8, 469, 10, 469, 12, 469, 4202, 9, 469, 1, 470, 1, 470, 1, 471, 3, 471, 4207, 8, 471, 1, 471, 1, 471, 1, 472, 1, 472, 3, 472, 4213, 8, 472, 1, 472, 1, 472, 1, 473, 1, 473, 1, 473, 5, 473, 4220, 8, 473, 10, 473, 12, 473, 4223, 9, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 3, 476, 4236, 8, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 1, 476, 5, 476, 4244, 8, 476, 10, 476, 12, 476, 4247, 9, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 3, 477, 4262, 8, 477, 1, 478, 1, 478, 1, 478, 3, 478, 4267, 8, 478, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 1, 479, 3, 479, 4279, 8, 479, 1, 480, 1, 480, 1, 481, 1, 481, 1, 481, 1, 481, 1, 481, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 483, 1, 483, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 1, 484, 1, 484, 1, 484, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 485, 1, 486, 1, 486, 1, 487, 1, 487, 1, 488, 1, 488, 1, 488, 1, 488, 1, 488, 1, 489, 1, 489, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 490, 1, 491, 1, 491, 1, 492, 1, 492, 1, 493, 1, 493, 1, 493, 1, 493, 1, 493, 1, 494, 1, 494, 1, 494, 1, 494, 1, 494, 1, 495, 1, 495, 1, 495, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 497, 1, 497, 1, 498, 1, 498, 1, 499, 1, 499, 1, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 1, 500, 1, 500, 1, 501, 1, 501, 1, 501, 1, 501, 1, 501, 1, 502, 1, 502, 1, 503, 1, 503, 1, 504, 3, 504, 4378, 8, 504, 1, 504, 3, 504, 4381, 8, 504, 1, 504, 3, 504, 4384, 8, 504, 1, 504, 1, 504, 1, 505, 1, 505, 1, 506, 1, 506, 1, 507, 1, 507, 1, 508, 1, 508, 1, 509, 1, 509, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 3, 511, 4405, 8, 511, 1, 512, 1, 512, 1, 512, 1, 512, 3, 512, 4411, 8, 512, 1, 512, 3, 512, 4414, 8, 512, 1, 513, 1, 513, 1, 513, 1, 513, 3, 513, 4420, 8, 513, 1, 513, 3, 513, 4423, 8, 513, 1, 514, 1, 514, 1, 514, 3, 514, 4428, 8, 514, 1, 514, 3, 514, 4431, 8, 514, 1, 515, 1, 515, 1, 515, 1, 515, 3, 515, 4437, 8, 515, 1, 515, 3, 515, 4440, 8, 515, 1, 516, 1, 516, 1, 516, 1, 516, 3, 516, 4446, 8, 516, 1, 516, 3, 516, 4449, 8, 516, 1, 517, 1, 517, 3, 517, 4453, 8, 517, 1, 518, 1, 518, 3, 518, 4457, 8, 518, 1, 519, 1, 519, 3, 519, 4461, 8, 519, 1, 520, 1, 520, 1, 521, 1, 521, 1, 521, 1, 521, 1, 521, 3, 521, 4470, 8, 521, 1, 522, 1, 522, 1, 522, 1, 522, 1, 523, 1, 523, 1, 524, 1, 524, 1, 525, 1, 525, 3, 525, 4482, 8, 525, 1, 526, 1, 526, 1, 526, 1, 526, 1, 526, 1, 527, 1, 527, 3, 527, 4491, 8, 527, 1, 528, 1, 528, 1, 529, 1, 529, 1, 530, 1, 530, 1, 531, 1, 531, 1, 532, 1, 532, 3, 532, 4503, 8, 532, 1, 533, 1, 533, 1, 534, 1, 534, 1, 535, 1, 535, 1, 536, 1, 536, 1, 537, 1, 537, 3, 537, 4515, 8, 537, 1, 538, 1, 538, 1, 539, 1, 539, 1, 540, 1, 540, 1, 541, 1, 541, 1, 542, 1, 542, 1, 543, 1, 543, 1, 544, 1, 544, 1, 545, 1, 545, 1, 546, 1, 546, 1, 547, 1, 547, 3, 547, 4537, 8, 547, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 1, 548, 3, 548, 4547, 8, 548, 1, 549, 1, 549, 1, 549, 3, 549, 4552, 8, 549, 1, 550, 1, 550, 1, 550, 1, 551, 1, 551, 1, 551, 1, 552, 1, 552, 1, 552, 1, 553, 1, 553, 1, 554, 1, 554, 1, 555, 1, 555, 1, 555, 3, 555, 4570, 8, 555, 1, 556, 1, 556, 3, 556, 4574, 8, 556, 1, 557, 1, 557, 1, 558, 1, 558, 1, 559, 1, 559, 3, 559, 4582, 8, 559, 1, 560, 1, 560, 1, 560, 1, 560, 1, 560, 3, 560, 4589, 8, 560, 1, 561, 1, 561, 1, 562, 1, 562, 1, 563, 1, 563, 1, 564, 1, 564, 1, 565, 1, 565, 1, 566, 1, 566, 1, 567, 1, 567, 1, 568, 1, 568, 1, 568, 1, 569, 1, 569, 1, 570, 1, 570, 1, 571, 1, 571, 1, 572, 1, 572, 1, 573, 1, 573, 1, 573, 0, 8, 182, 426, 464, 466, 672, 818, 842, 952, 574, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 934, 936, 938, 940, 942, 944, 946, 948, 950, 952, 954, 956, 958, 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, 0, 45, 2, 0, 53, 53, 165, 165, 1, 0, 65, 66, 2, 0, 79, 79, 150, 150, 2, 0, 159, 159, 304, 304, 4, 0, 277, 277, 311, 311, 316, 316, 321, 321, 2, 0, 166, 166, 168, 168, 2, 0, 102, 102, 290, 290, 2, 0, 127, 127, 360, 360, 6, 0, 336, 337, 340, 340, 347, 347, 356, 356, 373, 373, 384, 384, 2, 0, 28, 29, 77, 78, 2, 0, 159, 159, 195, 195, 3, 0, 67, 67, 106, 106, 375, 375, 1, 0, 104, 105, 2, 0, 283, 283, 319, 319, 2, 0, 315, 315, 347, 347, 2, 0, 315, 315, 384, 384, 2, 0, 211, 211, 332, 332, 1, 0, 37, 38, 1, 0, 73, 74, 2, 0, 26, 26, 133, 133, 6, 0, 335, 335, 343, 343, 346, 346, 365, 365, 367, 367, 372, 372, 2, 0, 373, 373, 376, 376, 2, 0, 359, 359, 383, 383, 2, 0, 161, 161, 232, 232, 2, 0, 129, 129, 181, 181, 2, 0, 141, 141, 222, 222, 3, 0, 40, 40, 142, 142, 183, 183, 6, 0, 33, 33, 56, 56, 62, 62, 144, 145, 200, 201, 203, 203, 2, 0, 22, 22, 80, 80, 1, 0, 169, 170, 1, 0, 51, 52, 2, 0, 42, 42, 157, 157, 8, 0, 21, 21, 30, 30, 32, 32, 59, 61, 75, 75, 174, 174, 192, 193, 204, 205, 1, 0, 48, 49, 3, 0, 39, 39, 128, 128, 209, 209, 1, 0, 296, 299, 1, 0, 4, 5, 2, 0, 71, 71, 208, 208, 1, 0, 3, 4, 3, 0, 9, 10, 13, 13, 15, 15, 1, 0, 16, 19, 2, 0, 301, 301, 320, 320, 2, 0, 285, 285, 308, 308, 2, 0, 284, 284, 307, 307, 1, 0, 277, 324, 4745, 0, 1157, 1, 0, 0, 0, 2, 1161, 1, 0, 0, 0, 4, 1179, 1, 0, 0, 0, 6, 1193, 1, 0, 0, 0, 8, 1197, 1, 0, 0, 0, 10, 1199, 1, 0, 0, 0, 12, 1207, 1, 0, 0, 0, 14, 1211, 1, 0, 0, 0, 16, 1216, 1, 0, 0, 0, 18, 1220, 1, 0, 0, 0, 20, 1225, 1, 0, 0, 0, 22, 1228, 1, 0, 0, 0, 24, 1235, 1, 0, 0, 0, 26, 1241, 1, 0, 0, 0, 28, 1248, 1, 0, 0, 0, 30, 1252, 1, 0, 0, 0, 32, 1272, 1, 0, 0, 0, 34, 1274, 1, 0, 0, 0, 36, 1277, 1, 0, 0, 0, 38, 1279, 1, 0, 0, 0, 40, 1284, 1, 0, 0, 0, 42, 1292, 1, 0, 0, 0, 44, 1298, 1, 0, 0, 0, 46, 1300, 1, 0, 0, 0, 48, 1302, 1, 0, 0, 0, 50, 1304, 1, 0, 0, 0, 52, 1308, 1, 0, 0, 0, 54, 1310, 1, 0, 0, 0, 56, 1314, 1, 0, 0, 0, 58, 1319, 1, 0, 0, 0, 60, 1327, 1, 0, 0, 0, 62, 1334, 1, 0, 0, 0, 64, 1336, 1, 0, 0, 0, 66, 1346, 1, 0, 0, 0, 68, 1348, 1, 0, 0, 0, 70, 1355, 1, 0, 0, 0, 72, 1365, 1, 0, 0, 0, 74, 1369, 1, 0, 0, 0, 76, 1373, 1, 0, 0, 0, 78, 1383, 1, 0, 0, 0, 80, 1387, 1, 0, 0, 0, 82, 1390, 1, 0, 0, 0, 84, 1398, 1, 0, 0, 0, 86, 1402, 1, 0, 0, 0, 88, 1409, 1, 0, 0, 0, 90, 1411, 1, 0, 0, 0, 92, 1417, 1, 0, 0, 0, 94, 1419, 1, 0, 0, 0, 96, 1425, 1, 0, 0, 0, 98, 1428, 1, 0, 0, 0, 100, 1434, 1, 0, 0, 0, 102, 1442, 1, 0, 0, 0, 104, 1444, 1, 0, 0, 0, 106, 1453, 1, 0, 0, 0, 108, 1461, 1, 0, 0, 0, 110, 1488, 1, 0, 0, 0, 112, 1512, 1, 0, 0, 0, 114, 1514, 1, 0, 0, 0, 116, 1517, 1, 0, 0, 0, 118, 1522, 1, 0, 0, 0, 120, 1533, 1, 0, 0, 0, 122, 1565, 1, 0, 0, 0, 124, 1567, 1, 0, 0, 0, 126, 1571, 1, 0, 0, 0, 128, 1583, 1, 0, 0, 0, 130, 1587, 1, 0, 0, 0, 132, 1591, 1, 0, 0, 0, 134, 1593, 1, 0, 0, 0, 136, 1598, 1, 0, 0, 0, 138, 1603, 1, 0, 0, 0, 140, 1605, 1, 0, 0, 0, 142, 1612, 1, 0, 0, 0, 144, 1622, 1, 0, 0, 0, 146, 1628, 1, 0, 0, 0, 148, 1630, 1, 0, 0, 0, 150, 1633, 1, 0, 0, 0, 152, 1636, 1, 0, 0, 0, 154, 1647, 1, 0, 0, 0, 156, 1649, 1, 0, 0, 0, 158, 1655, 1, 0, 0, 0, 160, 1663, 1, 0, 0, 0, 162, 1667, 1, 0, 0, 0, 164, 1670, 1, 0, 0, 0, 166, 1680, 1, 0, 0, 0, 168, 1682, 1, 0, 0, 0, 170, 1686, 1, 0, 0, 0, 172, 1691, 1, 0, 0, 0, 174, 1696, 1, 0, 0, 0, 176, 1704, 1, 0, 0, 0, 178, 1706, 1, 0, 0, 0, 180, 1708, 1, 0, 0, 0, 182, 1710, 1, 0, 0, 0, 184, 1724, 1, 0, 0, 0, 186, 1738, 1, 0, 0, 0, 188, 1740, 1, 0, 0, 0, 190, 1744, 1, 0, 0, 0, 192, 1756, 1, 0, 0, 0, 194, 1758, 1, 0, 0, 0, 196, 1761, 1, 0, 0, 0, 198, 1765, 1, 0, 0, 0, 200, 1768, 1, 0, 0, 0, 202, 1776, 1, 0, 0, 0, 204, 1779, 1, 0, 0, 0, 206, 1785, 1, 0, 0, 0, 208, 1792, 1, 0, 0, 0, 210, 1796, 1, 0, 0, 0, 212, 1798, 1, 0, 0, 0, 214, 1801, 1, 0, 0, 0, 216, 1813, 1, 0, 0, 0, 218, 1816, 1, 0, 0, 0, 220, 1820, 1, 0, 0, 0, 222, 1822, 1, 0, 0, 0, 224, 1827, 1, 0, 0, 0, 226, 1830, 1, 0, 0, 0, 228, 1843, 1, 0, 0, 0, 230, 1845, 1, 0, 0, 0, 232, 1850, 1, 0, 0, 0, 234, 1853, 1, 0, 0, 0, 236, 1856, 1, 0, 0, 0, 238, 1858, 1, 0, 0, 0, 240, 1874, 1, 0, 0, 0, 242, 1881, 1, 0, 0, 0, 244, 1883, 1, 0, 0, 0, 246, 1898, 1, 0, 0, 0, 248, 1900, 1, 0, 0, 0, 250, 1908, 1, 0, 0, 0, 252, 1912, 1, 0, 0, 0, 254, 1915, 1, 0, 0, 0, 256, 1944, 1, 0, 0, 0, 258, 1952, 1, 0, 0, 0, 260, 1956, 1, 0, 0, 0, 262, 1959, 1, 0, 0, 0, 264, 1962, 1, 0, 0, 0, 266, 1967, 1, 0, 0, 0, 268, 1975, 1, 0, 0, 0, 270, 1982, 1, 0, 0, 0, 272, 1985, 1, 0, 0, 0, 274, 1992, 1, 0, 0, 0, 276, 1995, 1, 0, 0, 0, 278, 1999, 1, 0, 0, 0, 280, 2005, 1, 0, 0, 0, 282, 2013, 1, 0, 0, 0, 284, 2022, 1, 0, 0, 0, 286, 2030, 1, 0, 0, 0, 288, 2032, 1, 0, 0, 0, 290, 2035, 1, 0, 0, 0, 292, 2038, 1, 0, 0, 0, 294, 2042, 1, 0, 0, 0, 296, 2055, 1, 0, 0, 0, 298, 2057, 1, 0, 0, 0, 300, 2060, 1, 0, 0, 0, 302, 2071, 1, 0, 0, 0, 304, 2073, 1, 0, 0, 0, 306, 2076, 1, 0, 0, 0, 308, 2084, 1, 0, 0, 0, 310, 2091, 1, 0, 0, 0, 312, 2093, 1, 0, 0, 0, 314, 2102, 1, 0, 0, 0, 316, 2109, 1, 0, 0, 0, 318, 2112, 1, 0, 0, 0, 320, 2115, 1, 0, 0, 0, 322, 2118, 1, 0, 0, 0, 324, 2120, 1, 0, 0, 0, 326, 2128, 1, 0, 0, 0, 328, 2137, 1, 0, 0, 0, 330, 2146, 1, 0, 0, 0, 332, 2148, 1, 0, 0, 0, 334, 2154, 1, 0, 0, 0, 336, 2160, 1, 0, 0, 0, 338, 2174, 1, 0, 0, 0, 340, 2187, 1, 0, 0, 0, 342, 2191, 1, 0, 0, 0, 344, 2193, 1, 0, 0, 0, 346, 2197, 1, 0, 0, 0, 348, 2202, 1, 0, 0, 0, 350, 2204, 1, 0, 0, 0, 352, 2211, 1, 0, 0, 0, 354, 2213, 1, 0, 0, 0, 356, 2223, 1, 0, 0, 0, 358, 2229, 1, 0, 0, 0, 360, 2231, 1, 0, 0, 0, 362, 2239, 1, 0, 0, 0, 364, 2247, 1, 0, 0, 0, 366, 2255, 1, 0, 0, 0, 368, 2267, 1, 0, 0, 0, 370, 2284, 1, 0, 0, 0, 372, 2287, 1, 0, 0, 0, 374, 2298, 1, 0, 0, 0, 376, 2303, 1, 0, 0, 0, 378, 2307, 1, 0, 0, 0, 380, 2309, 1, 0, 0, 0, 382, 2314, 1, 0, 0, 0, 384, 2323, 1, 0, 0, 0, 386, 2327, 1, 0, 0, 0, 388, 2330, 1, 0, 0, 0, 390, 2334, 1, 0, 0, 0, 392, 2336, 1, 0, 0, 0, 394, 2339, 1, 0, 0, 0, 396, 2343, 1, 0, 0, 0, 398, 2351, 1, 0, 0, 0, 400, 2357, 1, 0, 0, 0, 402, 2366, 1, 0, 0, 0, 404, 2368, 1, 0, 0, 0, 406, 2372, 1, 0, 0, 0, 408, 2376, 1, 0, 0, 0, 410, 2380, 1, 0, 0, 0, 412, 2384, 1, 0, 0, 0, 414, 2388, 1, 0, 0, 0, 416, 2392, 1, 0, 0, 0, 418, 2396, 1, 0, 0, 0, 420, 2398, 1, 0, 0, 0, 422, 2411, 1, 0, 0, 0, 424, 2414, 1, 0, 0, 0, 426, 2426, 1, 0, 0, 0, 428, 2439, 1, 0, 0, 0, 430, 2441, 1, 0, 0, 0, 432, 2447, 1, 0, 0, 0, 434, 2449, 1, 0, 0, 0, 436, 2453, 1, 0, 0, 0, 438, 2463, 1, 0, 0, 0, 440, 2465, 1, 0, 0, 0, 442, 2474, 1, 0, 0, 0, 444, 2476, 1, 0, 0, 0, 446, 2480, 1, 0, 0, 0, 448, 2484, 1, 0, 0, 0, 450, 2488, 1, 0, 0, 0, 452, 2492, 1, 0, 0, 0, 454, 2496, 1, 0, 0, 0, 456, 2500, 1, 0, 0, 0, 458, 2507, 1, 0, 0, 0, 460, 2509, 1, 0, 0, 0, 462, 2519, 1, 0, 0, 0, 464, 2529, 1, 0, 0, 0, 466, 2539, 1, 0, 0, 0, 468, 2553, 1, 0, 0, 0, 470, 2555, 1, 0, 0, 0, 472, 2558, 1, 0, 0, 0, 474, 2563, 1, 0, 0, 0, 476, 2572, 1, 0, 0, 0, 478, 2574, 1, 0, 0, 0, 480, 2577, 1, 0, 0, 0, 482, 2580, 1, 0, 0, 0, 484, 2583, 1, 0, 0, 0, 486, 2586, 1, 0, 0, 0, 488, 2590, 1, 0, 0, 0, 490, 2594, 1, 0, 0, 0, 492, 2599, 1, 0, 0, 0, 494, 2601, 1, 0, 0, 0, 496, 2609, 1, 0, 0, 0, 498, 2611, 1, 0, 0, 0, 500, 2614, 1, 0, 0, 0, 502, 2617, 1, 0, 0, 0, 504, 2625, 1, 0, 0, 0, 506, 2629, 1, 0, 0, 0, 508, 2631, 1, 0, 0, 0, 510, 2634, 1, 0, 0, 0, 512, 2647, 1, 0, 0, 0, 514, 2649, 1, 0, 0, 0, 516, 2651, 1, 0, 0, 0, 518, 2654, 1, 0, 0, 0, 520, 2658, 1, 0, 0, 0, 522, 2666, 1, 0, 0, 0, 524, 2673, 1, 0, 0, 0, 526, 2675, 1, 0, 0, 0, 528, 2681, 1, 0, 0, 0, 530, 2683, 1, 0, 0, 0, 532, 2686, 1, 0, 0, 0, 534, 2689, 1, 0, 0, 0, 536, 2694, 1, 0, 0, 0, 538, 2700, 1, 0, 0, 0, 540, 2702, 1, 0, 0, 0, 542, 2709, 1, 0, 0, 0, 544, 2711, 1, 0, 0, 0, 546, 2713, 1, 0, 0, 0, 548, 2717, 1, 0, 0, 0, 550, 2732, 1, 0, 0, 0, 552, 2742, 1, 0, 0, 0, 554, 2745, 1, 0, 0, 0, 556, 2749, 1, 0, 0, 0, 558, 2753, 1, 0, 0, 0, 560, 2756, 1, 0, 0, 0, 562, 2765, 1, 0, 0, 0, 564, 2769, 1, 0, 0, 0, 566, 2772, 1, 0, 0, 0, 568, 2795, 1, 0, 0, 0, 570, 2797, 1, 0, 0, 0, 572, 2799, 1, 0, 0, 0, 574, 2803, 1, 0, 0, 0, 576, 2805, 1, 0, 0, 0, 578, 2815, 1, 0, 0, 0, 580, 2819, 1, 0, 0, 0, 582, 2827, 1, 0, 0, 0, 584, 2838, 1, 0, 0, 0, 586, 2852, 1, 0, 0, 0, 588, 2859, 1, 0, 0, 0, 590, 2861, 1, 0, 0, 0, 592, 2868, 1, 0, 0, 0, 594, 2871, 1, 0, 0, 0, 596, 2875, 1, 0, 0, 0, 598, 2877, 1, 0, 0, 0, 600, 2881, 1, 0, 0, 0, 602, 2892, 1, 0, 0, 0, 604, 2898, 1, 0, 0, 0, 606, 2911, 1, 0, 0, 0, 608, 2918, 1, 0, 0, 0, 610, 2925, 1, 0, 0, 0, 612, 2928, 1, 0, 0, 0, 614, 2932, 1, 0, 0, 0, 616, 2934, 1, 0, 0, 0, 618, 2938, 1, 0, 0, 0, 620, 2940, 1, 0, 0, 0, 622, 2944, 1, 0, 0, 0, 624, 2948, 1, 0, 0, 0, 626, 2952, 1, 0, 0, 0, 628, 2956, 1, 0, 0, 0, 630, 2960, 1, 0, 0, 0, 632, 2973, 1, 0, 0, 0, 634, 2984, 1, 0, 0, 0, 636, 2986, 1, 0, 0, 0, 638, 2988, 1, 0, 0, 0, 640, 2993, 1, 0, 0, 0, 642, 2997, 1, 0, 0, 0, 644, 2999, 1, 0, 0, 0, 646, 3005, 1, 0, 0, 0, 648, 3011, 1, 0, 0, 0, 650, 3017, 1, 0, 0, 0, 652, 3019, 1, 0, 0, 0, 654, 3021, 1, 0, 0, 0, 656, 3023, 1, 0, 0, 0, 658, 3032, 1, 0, 0, 0, 660, 3034, 1, 0, 0, 0, 662, 3042, 1, 0, 0, 0, 664, 3048, 1, 0, 0, 0, 666, 3056, 1, 0, 0, 0, 668, 3062, 1, 0, 0, 0, 670, 3065, 1, 0, 0, 0, 672, 3127, 1, 0, 0, 0, 674, 3148, 1, 0, 0, 0, 676, 3157, 1, 0, 0, 0, 678, 3159, 1, 0, 0, 0, 680, 3198, 1, 0, 0, 0, 682, 3235, 1, 0, 0, 0, 684, 3237, 1, 0, 0, 0, 686, 3239, 1, 0, 0, 0, 688, 3241, 1, 0, 0, 0, 690, 3245, 1, 0, 0, 0, 692, 3249, 1, 0, 0, 0, 694, 3253, 1, 0, 0, 0, 696, 3301, 1, 0, 0, 0, 698, 3347, 1, 0, 0, 0, 700, 3393, 1, 0, 0, 0, 702, 3395, 1, 0, 0, 0, 704, 3408, 1, 0, 0, 0, 706, 3410, 1, 0, 0, 0, 708, 3457, 1, 0, 0, 0, 710, 3461, 1, 0, 0, 0, 712, 3468, 1, 0, 0, 0, 714, 3482, 1, 0, 0, 0, 716, 3498, 1, 0, 0, 0, 718, 3500, 1, 0, 0, 0, 720, 3516, 1, 0, 0, 0, 722, 3530, 1, 0, 0, 0, 724, 3532, 1, 0, 0, 0, 726, 3545, 1, 0, 0, 0, 728, 3551, 1, 0, 0, 0, 730, 3555, 1, 0, 0, 0, 732, 3557, 1, 0, 0, 0, 734, 3562, 1, 0, 0, 0, 736, 3566, 1, 0, 0, 0, 738, 3569, 1, 0, 0, 0, 740, 3576, 1, 0, 0, 0, 742, 3584, 1, 0, 0, 0, 744, 3590, 1, 0, 0, 0, 746, 3592, 1, 0, 0, 0, 748, 3597, 1, 0, 0, 0, 750, 3605, 1, 0, 0, 0, 752, 3607, 1, 0, 0, 0, 754, 3612, 1, 0, 0, 0, 756, 3618, 1, 0, 0, 0, 758, 3623, 1, 0, 0, 0, 760, 3627, 1, 0, 0, 0, 762, 3643, 1, 0, 0, 0, 764, 3645, 1, 0, 0, 0, 766, 3651, 1, 0, 0, 0, 768, 3659, 1, 0, 0, 0, 770, 3662, 1, 0, 0, 0, 772, 3668, 1, 0, 0, 0, 774, 3679, 1, 0, 0, 0, 776, 3681, 1, 0, 0, 0, 778, 3684, 1, 0, 0, 0, 780, 3686, 1, 0, 0, 0, 782, 3706, 1, 0, 0, 0, 784, 3709, 1, 0, 0, 0, 786, 3715, 1, 0, 0, 0, 788, 3718, 1, 0, 0, 0, 790, 3725, 1, 0, 0, 0, 792, 3734, 1, 0, 0, 0, 794, 3737, 1, 0, 0, 0, 796, 3743, 1, 0, 0, 0, 798, 3746, 1, 0, 0, 0, 800, 3755, 1, 0, 0, 0, 802, 3763, 1, 0, 0, 0, 804, 3765, 1, 0, 0, 0, 806, 3767, 1, 0, 0, 0, 808, 3775, 1, 0, 0, 0, 810, 3783, 1, 0, 0, 0, 812, 3785, 1, 0, 0, 0, 814, 3799, 1, 0, 0, 0, 816, 3813, 1, 0, 0, 0, 818, 3838, 1, 0, 0, 0, 820, 3876, 1, 0, 0, 0, 822, 3878, 1, 0, 0, 0, 824, 3885, 1, 0, 0, 0, 826, 3887, 1, 0, 0, 0, 828, 3894, 1, 0, 0, 0, 830, 3899, 1, 0, 0, 0, 832, 3904, 1, 0, 0, 0, 834, 3913, 1, 0, 0, 0, 836, 3922, 1, 0, 0, 0, 838, 3924, 1, 0, 0, 0, 840, 3926, 1, 0, 0, 0, 842, 3939, 1, 0, 0, 0, 844, 3949, 1, 0, 0, 0, 846, 3955, 1, 0, 0, 0, 848, 3969, 1, 0, 0, 0, 850, 3973, 1, 0, 0, 0, 852, 3977, 1, 0, 0, 0, 854, 3981, 1, 0, 0, 0, 856, 3983, 1, 0, 0, 0, 858, 3985, 1, 0, 0, 0, 860, 3991, 1, 0, 0, 0, 862, 3996, 1, 0, 0, 0, 864, 4016, 1, 0, 0, 0, 866, 4020, 1, 0, 0, 0, 868, 4022, 1, 0, 0, 0, 870, 4034, 1, 0, 0, 0, 872, 4045, 1, 0, 0, 0, 874, 4050, 1, 0, 0, 0, 876, 4055, 1, 0, 0, 0, 878, 4060, 1, 0, 0, 0, 880, 4062, 1, 0, 0, 0, 882, 4079, 1, 0, 0, 0, 884, 4083, 1, 0, 0, 0, 886, 4085, 1, 0, 0, 0, 888, 4087, 1, 0, 0, 0, 890, 4096, 1, 0, 0, 0, 892, 4098, 1, 0, 0, 0, 894, 4106, 1, 0, 0, 0, 896, 4108, 1, 0, 0, 0, 898, 4116, 1, 0, 0, 0, 900, 4123, 1, 0, 0, 0, 902, 4125, 1, 0, 0, 0, 904, 4127, 1, 0, 0, 0, 906, 4130, 1, 0, 0, 0, 908, 4134, 1, 0, 0, 0, 910, 4136, 1, 0, 0, 0, 912, 4141, 1, 0, 0, 0, 914, 4143, 1, 0, 0, 0, 916, 4145, 1, 0, 0, 0, 918, 4147, 1, 0, 0, 0, 920, 4152, 1, 0, 0, 0, 922, 4159, 1, 0, 0, 0, 924, 4161, 1, 0, 0, 0, 926, 4166, 1, 0, 0, 0, 928, 4170, 1, 0, 0, 0, 930, 4172, 1, 0, 0, 0, 932, 4179, 1, 0, 0, 0, 934, 4184, 1, 0, 0, 0, 936, 4187, 1, 0, 0, 0, 938, 4195, 1, 0, 0, 0, 940, 4203, 1, 0, 0, 0, 942, 4206, 1, 0, 0, 0, 944, 4210, 1, 0, 0, 0, 946, 4216, 1, 0, 0, 0, 948, 4224, 1, 0, 0, 0, 950, 4228, 1, 0, 0, 0, 952, 4235, 1, 0, 0, 0, 954, 4261, 1, 0, 0, 0, 956, 4266, 1, 0, 0, 0, 958, 4278, 1, 0, 0, 0, 960, 4280, 1, 0, 0, 0, 962, 4282, 1, 0, 0, 0, 964, 4287, 1, 0, 0, 0, 966, 4292, 1, 0, 0, 0, 968, 4297, 1, 0, 0, 0, 970, 4302, 1, 0, 0, 0, 972, 4309, 1, 0, 0, 0, 974, 4311, 1, 0, 0, 0, 976, 4313, 1, 0, 0, 0, 978, 4318, 1, 0, 0, 0, 980, 4320, 1, 0, 0, 0, 982, 4327, 1, 0, 0, 0, 984, 4329, 1, 0, 0, 0, 986, 4331, 1, 0, 0, 0, 988, 4336, 1, 0, 0, 0, 990, 4341, 1, 0, 0, 0, 992, 4346, 1, 0, 0, 0, 994, 4353, 1, 0, 0, 0, 996, 4355, 1, 0, 0, 0, 998, 4357, 1, 0, 0, 0, 1000, 4362, 1, 0, 0, 0, 1002, 4367, 1, 0, 0, 0, 1004, 4372, 1, 0, 0, 0, 1006, 4374, 1, 0, 0, 0, 1008, 4383, 1, 0, 0, 0, 1010, 4387, 1, 0, 0, 0, 1012, 4389, 1, 0, 0, 0, 1014, 4391, 1, 0, 0, 0, 1016, 4393, 1, 0, 0, 0, 1018, 4395, 1, 0, 0, 0, 1020, 4397, 1, 0, 0, 0, 1022, 4404, 1, 0, 0, 0, 1024, 4413, 1, 0, 0, 0, 1026, 4422, 1, 0, 0, 0, 1028, 4424, 1, 0, 0, 0, 1030, 4439, 1, 0, 0, 0, 1032, 4448, 1, 0, 0, 0, 1034, 4452, 1, 0, 0, 0, 1036, 4456, 1, 0, 0, 0, 1038, 4460, 1, 0, 0, 0, 1040, 4462, 1, 0, 0, 0, 1042, 4464, 1, 0, 0, 0, 1044, 4471, 1, 0, 0, 0, 1046, 4475, 1, 0, 0, 0, 1048, 4477, 1, 0, 0, 0, 1050, 4481, 1, 0, 0, 0, 1052, 4483, 1, 0, 0, 0, 1054, 4490, 1, 0, 0, 0, 1056, 4492, 1, 0, 0, 0, 1058, 4494, 1, 0, 0, 0, 1060, 4496, 1, 0, 0, 0, 1062, 4498, 1, 0, 0, 0, 1064, 4502, 1, 0, 0, 0, 1066, 4504, 1, 0, 0, 0, 1068, 4506, 1, 0, 0, 0, 1070, 4508, 1, 0, 0, 0, 1072, 4510, 1, 0, 0, 0, 1074, 4514, 1, 0, 0, 0, 1076, 4516, 1, 0, 0, 0, 1078, 4518, 1, 0, 0, 0, 1080, 4520, 1, 0, 0, 0, 1082, 4522, 1, 0, 0, 0, 1084, 4524, 1, 0, 0, 0, 1086, 4526, 1, 0, 0, 0, 1088, 4528, 1, 0, 0, 0, 1090, 4530, 1, 0, 0, 0, 1092, 4532, 1, 0, 0, 0, 1094, 4536, 1, 0, 0, 0, 1096, 4546, 1, 0, 0, 0, 1098, 4551, 1, 0, 0, 0, 1100, 4553, 1, 0, 0, 0, 1102, 4556, 1, 0, 0, 0, 1104, 4559, 1, 0, 0, 0, 1106, 4562, 1, 0, 0, 0, 1108, 4564, 1, 0, 0, 0, 1110, 4569, 1, 0, 0, 0, 1112, 4573, 1, 0, 0, 0, 1114, 4575, 1, 0, 0, 0, 1116, 4577, 1, 0, 0, 0, 1118, 4581, 1, 0, 0, 0, 1120, 4588, 1, 0, 0, 0, 1122, 4590, 1, 0, 0, 0, 1124, 4592, 1, 0, 0, 0, 1126, 4594, 1, 0, 0, 0, 1128, 4596, 1, 0, 0, 0, 1130, 4598, 1, 0, 0, 0, 1132, 4600, 1, 0, 0, 0, 1134, 4602, 1, 0, 0, 0, 1136, 4604, 1, 0, 0, 0, 1138, 4607, 1, 0, 0, 0, 1140, 4609, 1, 0, 0, 0, 1142, 4611, 1, 0, 0, 0, 1144, 4613, 1, 0, 0, 0, 1146, 4615, 1, 0, 0, 0, 1148, 1150, 3, 2, 1, 0, 1149, 1151, 3, 34, 17, 0, 1150, 1149, 1, 0, 0, 0, 1150, 1151, 1, 0, 0, 0, 1151, 1152, 1, 0, 0, 0, 1152, 1153, 5, 0, 0, 1, 1153, 1158, 1, 0, 0, 0, 1154, 1155, 3, 34, 17, 0, 1155, 1156, 5, 0, 0, 1, 1156, 1158, 1, 0, 0, 0, 1157, 1148, 1, 0, 0, 0, 1157, 1154, 1, 0, 0, 0, 1158, 1, 1, 0, 0, 0, 1159, 1162, 3, 4, 2, 0, 1160, 1162, 3, 6, 3, 0, 1161, 1159, 1, 0, 0, 0, 1161, 1160, 1, 0, 0, 0, 1162, 3, 1, 0, 0, 0, 1163, 1165, 3, 30, 15, 0, 1164, 1163, 1, 0, 0, 0, 1165, 1166, 1, 0, 0, 0, 1166, 1164, 1, 0, 0, 0, 1166, 1167, 1, 0, 0, 0, 1167, 1180, 1, 0, 0, 0, 1168, 1170, 3, 10, 5, 0, 1169, 1168, 1, 0, 0, 0, 1170, 1171, 1, 0, 0, 0, 1171, 1169, 1, 0, 0, 0, 1171, 1172, 1, 0, 0, 0, 1172, 1176, 1, 0, 0, 0, 1173, 1175, 3, 30, 15, 0, 1174, 1173, 1, 0, 0, 0, 1175, 1178, 1, 0, 0, 0, 1176, 1174, 1, 0, 0, 0, 1176, 1177, 1, 0, 0, 0, 1177, 1180, 1, 0, 0, 0, 1178, 1176, 1, 0, 0, 0, 1179, 1164, 1, 0, 0, 0, 1179, 1169, 1, 0, 0, 0, 1180, 5, 1, 0, 0, 0, 1181, 1186, 3, 38, 19, 0, 1182, 1184, 3, 52, 26, 0, 1183, 1185, 3, 8, 4, 0, 1184, 1183, 1, 0, 0, 0, 1184, 1185, 1, 0, 0, 0, 1185, 1187, 1, 0, 0, 0, 1186, 1182, 1, 0, 0, 0, 1186, 1187, 1, 0, 0, 0, 1187, 1194, 1, 0, 0, 0, 1188, 1190, 3, 52, 26, 0, 1189, 1191, 3, 8, 4, 0, 1190, 1189, 1, 0, 0, 0, 1190, 1191, 1, 0, 0, 0, 1191, 1194, 1, 0, 0, 0, 1192, 1194, 3, 8, 4, 0, 1193, 1181, 1, 0, 0, 0, 1193, 1188, 1, 0, 0, 0, 1193, 1192, 1, 0, 0, 0, 1194, 7, 1, 0, 0, 0, 1195, 1198, 3, 46, 23, 0, 1196, 1198, 3, 48, 24, 0, 1197, 1195, 1, 0, 0, 0, 1197, 1196, 1, 0, 0, 0, 1198, 9, 1, 0, 0, 0, 1199, 1200, 5, 188, 0, 0, 1200, 1205, 5, 190, 0, 0, 1201, 1206, 3, 12, 6, 0, 1202, 1206, 3, 14, 7, 0, 1203, 1206, 3, 16, 8, 0, 1204, 1206, 3, 20, 10, 0, 1205, 1201, 1, 0, 0, 0, 1205, 1202, 1, 0, 0, 0, 1205, 1203, 1, 0, 0, 0, 1205, 1204, 1, 0, 0, 0, 1206, 11, 1, 0, 0, 0, 1207, 1208, 5, 185, 0, 0, 1208, 1209, 3, 536, 268, 0, 1209, 13, 1, 0, 0, 0, 1210, 1212, 5, 305, 0, 0, 1211, 1210, 1, 0, 0, 0, 1211, 1212, 1, 0, 0, 0, 1212, 1213, 1, 0, 0, 0, 1213, 1214, 5, 289, 0, 0, 1214, 1215, 3, 88, 44, 0, 1215, 15, 1, 0, 0, 0, 1216, 1217, 5, 207, 0, 0, 1217, 1218, 5, 324, 0, 0, 1218, 1219, 3, 18, 9, 0, 1219, 17, 1, 0, 0, 0, 1220, 1221, 3, 1114, 557, 0, 1221, 19, 1, 0, 0, 0, 1222, 1226, 3, 22, 11, 0, 1223, 1226, 3, 24, 12, 0, 1224, 1226, 3, 26, 13, 0, 1225, 1222, 1, 0, 0, 0, 1225, 1223, 1, 0, 0, 0, 1225, 1224, 1, 0, 0, 0, 1226, 21, 1, 0, 0, 0, 1227, 1229, 5, 305, 0, 0, 1228, 1227, 1, 0, 0, 0, 1228, 1229, 1, 0, 0, 0, 1229, 1230, 1, 0, 0, 0, 1230, 1231, 5, 289, 0, 0, 1231, 1232, 3, 28, 14, 0, 1232, 1233, 3, 72, 36, 0, 1233, 23, 1, 0, 0, 0, 1234, 1236, 5, 278, 0, 0, 1235, 1234, 1, 0, 0, 0, 1235, 1236, 1, 0, 0, 0, 1236, 1237, 1, 0, 0, 0, 1237, 1238, 5, 313, 0, 0, 1238, 1239, 3, 28, 14, 0, 1239, 1240, 3, 78, 39, 0, 1240, 25, 1, 0, 0, 0, 1241, 1242, 5, 225, 0, 0, 1242, 1243, 3, 28, 14, 0, 1243, 1244, 3, 84, 42, 0, 1244, 27, 1, 0, 0, 0, 1245, 1246, 5, 108, 0, 0, 1246, 1247, 5, 152, 0, 0, 1247, 1249, 5, 89, 0, 0, 1248, 1245, 1, 0, 0, 0, 1248, 1249, 1, 0, 0, 0, 1249, 1250, 1, 0, 0, 0, 1250, 1251, 3, 36, 18, 0, 1251, 29, 1, 0, 0, 0, 1252, 1253, 5, 188, 0, 0, 1253, 1255, 5, 179, 0, 0, 1254, 1256, 3, 32, 16, 0, 1255, 1254, 1, 0, 0, 0, 1255, 1256, 1, 0, 0, 0, 1256, 31, 1, 0, 0, 0, 1257, 1259, 5, 22, 0, 0, 1258, 1257, 1, 0, 0, 0, 1258, 1259, 1, 0, 0, 0, 1259, 1260, 1, 0, 0, 0, 1260, 1273, 7, 0, 0, 0, 1261, 1273, 5, 185, 0, 0, 1262, 1264, 5, 305, 0, 0, 1263, 1262, 1, 0, 0, 0, 1263, 1264, 1, 0, 0, 0, 1264, 1265, 1, 0, 0, 0, 1265, 1273, 5, 289, 0, 0, 1266, 1267, 5, 207, 0, 0, 1267, 1273, 5, 324, 0, 0, 1268, 1270, 5, 164, 0, 0, 1269, 1268, 1, 0, 0, 0, 1269, 1270, 1, 0, 0, 0, 1270, 1271, 1, 0, 0, 0, 1271, 1273, 3, 36, 18, 0, 1272, 1258, 1, 0, 0, 0, 1272, 1261, 1, 0, 0, 0, 1272, 1263, 1, 0, 0, 0, 1272, 1266, 1, 0, 0, 0, 1272, 1269, 1, 0, 0, 0, 1273, 33, 1, 0, 0, 0, 1274, 1275, 5, 188, 0, 0, 1275, 1276, 5, 54, 0, 0, 1276, 35, 1, 0, 0, 0, 1277, 1278, 5, 327, 0, 0, 1278, 37, 1, 0, 0, 0, 1279, 1280, 5, 199, 0, 0, 1280, 1282, 5, 317, 0, 0, 1281, 1283, 3, 40, 20, 0, 1282, 1281, 1, 0, 0, 0, 1282, 1283, 1, 0, 0, 0, 1283, 39, 1, 0, 0, 0, 1284, 1289, 3, 42, 21, 0, 1285, 1286, 5, 361, 0, 0, 1286, 1288, 3, 42, 21, 0, 1287, 1285, 1, 0, 0, 0, 1288, 1291, 1, 0, 0, 0, 1289, 1287, 1, 0, 0, 0, 1289, 1290, 1, 0, 0, 0, 1290, 41, 1, 0, 0, 0, 1291, 1289, 1, 0, 0, 0, 1292, 1293, 3, 44, 22, 0, 1293, 43, 1, 0, 0, 0, 1294, 1295, 5, 306, 0, 0, 1295, 1299, 5, 303, 0, 0, 1296, 1297, 5, 306, 0, 0, 1297, 1299, 5, 323, 0, 0, 1298, 1294, 1, 0, 0, 0, 1298, 1296, 1, 0, 0, 0, 1299, 45, 1, 0, 0, 0, 1300, 1301, 5, 182, 0, 0, 1301, 47, 1, 0, 0, 0, 1302, 1303, 5, 57, 0, 0, 1303, 49, 1, 0, 0, 0, 1304, 1305, 5, 369, 0, 0, 1305, 1306, 3, 52, 26, 0, 1306, 1307, 5, 380, 0, 0, 1307, 51, 1, 0, 0, 0, 1308, 1309, 3, 58, 29, 0, 1309, 53, 1, 0, 0, 0, 1310, 1311, 5, 369, 0, 0, 1311, 1312, 3, 58, 29, 0, 1312, 1313, 5, 380, 0, 0, 1313, 55, 1, 0, 0, 0, 1314, 1315, 5, 369, 0, 0, 1315, 1316, 3, 58, 29, 0, 1316, 1317, 5, 380, 0, 0, 1317, 57, 1, 0, 0, 0, 1318, 1320, 3, 288, 144, 0, 1319, 1318, 1, 0, 0, 0, 1319, 1320, 1, 0, 0, 0, 1320, 1322, 1, 0, 0, 0, 1321, 1323, 3, 60, 30, 0, 1322, 1321, 1, 0, 0, 0, 1322, 1323, 1, 0, 0, 0, 1323, 1324, 1, 0, 0, 0, 1324, 1325, 3, 64, 32, 0, 1325, 59, 1, 0, 0, 0, 1326, 1328, 3, 62, 31, 0, 1327, 1326, 1, 0, 0, 0, 1328, 1329, 1, 0, 0, 0, 1329, 1327, 1, 0, 0, 0, 1329, 1330, 1, 0, 0, 0, 1330, 61, 1, 0, 0, 0, 1331, 1335, 3, 70, 35, 0, 1332, 1335, 3, 76, 38, 0, 1333, 1335, 3, 82, 41, 0, 1334, 1331, 1, 0, 0, 0, 1334, 1332, 1, 0, 0, 0, 1334, 1333, 1, 0, 0, 0, 1335, 63, 1, 0, 0, 0, 1336, 1340, 3, 66, 33, 0, 1337, 1339, 3, 68, 34, 0, 1338, 1337, 1, 0, 0, 0, 1339, 1342, 1, 0, 0, 0, 1340, 1338, 1, 0, 0, 0, 1340, 1341, 1, 0, 0, 0, 1341, 65, 1, 0, 0, 0, 1342, 1340, 1, 0, 0, 0, 1343, 1347, 3, 98, 49, 0, 1344, 1347, 3, 130, 65, 0, 1345, 1347, 3, 180, 90, 0, 1346, 1343, 1, 0, 0, 0, 1346, 1344, 1, 0, 0, 0, 1346, 1345, 1, 0, 0, 0, 1347, 67, 1, 0, 0, 0, 1348, 1350, 5, 149, 0, 0, 1349, 1351, 3, 500, 250, 0, 1350, 1349, 1, 0, 0, 0, 1350, 1351, 1, 0, 0, 0, 1351, 1352, 1, 0, 0, 0, 1352, 1353, 3, 66, 33, 0, 1353, 69, 1, 0, 0, 0, 1354, 1356, 5, 305, 0, 0, 1355, 1354, 1, 0, 0, 0, 1355, 1356, 1, 0, 0, 0, 1356, 1357, 1, 0, 0, 0, 1357, 1358, 5, 289, 0, 0, 1358, 1359, 3, 1092, 546, 0, 1359, 1360, 3, 72, 36, 0, 1360, 71, 1, 0, 0, 0, 1361, 1363, 3, 674, 337, 0, 1362, 1361, 1, 0, 0, 0, 1362, 1363, 1, 0, 0, 0, 1363, 1364, 1, 0, 0, 0, 1364, 1366, 3, 736, 368, 0, 1365, 1362, 1, 0, 0, 0, 1365, 1366, 1, 0, 0, 0, 1366, 1367, 1, 0, 0, 0, 1367, 1368, 3, 74, 37, 0, 1368, 73, 1, 0, 0, 0, 1369, 1370, 5, 365, 0, 0, 1370, 1371, 3, 88, 44, 0, 1371, 75, 1, 0, 0, 0, 1372, 1374, 5, 278, 0, 0, 1373, 1372, 1, 0, 0, 0, 1373, 1374, 1, 0, 0, 0, 1374, 1375, 1, 0, 0, 0, 1375, 1376, 5, 313, 0, 0, 1376, 1377, 3, 1092, 546, 0, 1377, 1378, 3, 78, 39, 0, 1378, 77, 1, 0, 0, 0, 1379, 1381, 3, 674, 337, 0, 1380, 1379, 1, 0, 0, 0, 1380, 1381, 1, 0, 0, 0, 1381, 1382, 1, 0, 0, 0, 1382, 1384, 3, 742, 371, 0, 1383, 1380, 1, 0, 0, 0, 1383, 1384, 1, 0, 0, 0, 1384, 1385, 1, 0, 0, 0, 1385, 1386, 3, 80, 40, 0, 1386, 79, 1, 0, 0, 0, 1387, 1388, 5, 365, 0, 0, 1388, 1389, 3, 92, 46, 0, 1389, 81, 1, 0, 0, 0, 1390, 1391, 5, 225, 0, 0, 1391, 1392, 3, 1092, 546, 0, 1392, 1393, 3, 84, 42, 0, 1393, 83, 1, 0, 0, 0, 1394, 1396, 3, 674, 337, 0, 1395, 1394, 1, 0, 0, 0, 1395, 1396, 1, 0, 0, 0, 1396, 1397, 1, 0, 0, 0, 1397, 1399, 3, 672, 336, 0, 1398, 1395, 1, 0, 0, 0, 1398, 1399, 1, 0, 0, 0, 1399, 1400, 1, 0, 0, 0, 1400, 1401, 3, 86, 43, 0, 1401, 85, 1, 0, 0, 0, 1402, 1403, 5, 365, 0, 0, 1403, 1404, 3, 818, 409, 0, 1404, 87, 1, 0, 0, 0, 1405, 1410, 3, 96, 48, 0, 1406, 1410, 3, 552, 276, 0, 1407, 1410, 3, 1058, 529, 0, 1408, 1410, 3, 90, 45, 0, 1409, 1405, 1, 0, 0, 0, 1409, 1406, 1, 0, 0, 0, 1409, 1407, 1, 0, 0, 0, 1409, 1408, 1, 0, 0, 0, 1410, 89, 1, 0, 0, 0, 1411, 1412, 7, 1, 0, 0, 1412, 91, 1, 0, 0, 0, 1413, 1418, 3, 94, 47, 0, 1414, 1418, 3, 96, 48, 0, 1415, 1418, 3, 562, 281, 0, 1416, 1418, 3, 1058, 529, 0, 1417, 1413, 1, 0, 0, 0, 1417, 1414, 1, 0, 0, 0, 1417, 1415, 1, 0, 0, 0, 1417, 1416, 1, 0, 0, 0, 1418, 93, 1, 0, 0, 0, 1419, 1420, 3, 56, 28, 0, 1420, 95, 1, 0, 0, 0, 1421, 1422, 5, 228, 0, 0, 1422, 1426, 3, 842, 421, 0, 1423, 1426, 3, 844, 422, 0, 1424, 1426, 3, 848, 424, 0, 1425, 1421, 1, 0, 0, 0, 1425, 1423, 1, 0, 0, 0, 1425, 1424, 1, 0, 0, 0, 1426, 97, 1, 0, 0, 0, 1427, 1429, 3, 100, 50, 0, 1428, 1427, 1, 0, 0, 0, 1429, 1430, 1, 0, 0, 0, 1430, 1428, 1, 0, 0, 0, 1430, 1431, 1, 0, 0, 0, 1431, 99, 1, 0, 0, 0, 1432, 1435, 3, 102, 51, 0, 1433, 1435, 3, 128, 64, 0, 1434, 1432, 1, 0, 0, 0, 1434, 1433, 1, 0, 0, 0, 1435, 101, 1, 0, 0, 0, 1436, 1443, 3, 104, 52, 0, 1437, 1443, 3, 106, 53, 0, 1438, 1443, 3, 108, 54, 0, 1439, 1443, 3, 118, 59, 0, 1440, 1443, 3, 120, 60, 0, 1441, 1443, 3, 126, 63, 0, 1442, 1436, 1, 0, 0, 0, 1442, 1437, 1, 0, 0, 0, 1442, 1438, 1, 0, 0, 0, 1442, 1439, 1, 0, 0, 0, 1442, 1440, 1, 0, 0, 0, 1442, 1441, 1, 0, 0, 0, 1443, 103, 1, 0, 0, 0, 1444, 1445, 5, 63, 0, 0, 1445, 1449, 5, 185, 0, 0, 1446, 1447, 5, 108, 0, 0, 1447, 1448, 5, 152, 0, 0, 1448, 1450, 5, 89, 0, 0, 1449, 1446, 1, 0, 0, 0, 1449, 1450, 1, 0, 0, 0, 1450, 1451, 1, 0, 0, 0, 1451, 1452, 3, 540, 270, 0, 1452, 105, 1, 0, 0, 0, 1453, 1454, 5, 82, 0, 0, 1454, 1457, 5, 185, 0, 0, 1455, 1456, 5, 108, 0, 0, 1456, 1458, 5, 89, 0, 0, 1457, 1455, 1, 0, 0, 0, 1457, 1458, 1, 0, 0, 0, 1458, 1459, 1, 0, 0, 0, 1459, 1460, 3, 540, 270, 0, 1460, 107, 1, 0, 0, 0, 1461, 1477, 5, 63, 0, 0, 1462, 1464, 5, 305, 0, 0, 1463, 1462, 1, 0, 0, 0, 1463, 1464, 1, 0, 0, 0, 1464, 1465, 1, 0, 0, 0, 1465, 1469, 5, 289, 0, 0, 1466, 1467, 5, 108, 0, 0, 1467, 1468, 5, 152, 0, 0, 1468, 1470, 5, 89, 0, 0, 1469, 1466, 1, 0, 0, 0, 1469, 1470, 1, 0, 0, 0, 1470, 1478, 1, 0, 0, 0, 1471, 1472, 5, 161, 0, 0, 1472, 1474, 5, 178, 0, 0, 1473, 1475, 5, 305, 0, 0, 1474, 1473, 1, 0, 0, 0, 1474, 1475, 1, 0, 0, 0, 1475, 1476, 1, 0, 0, 0, 1476, 1478, 5, 289, 0, 0, 1477, 1463, 1, 0, 0, 0, 1477, 1471, 1, 0, 0, 0, 1478, 1479, 1, 0, 0, 0, 1479, 1482, 3, 554, 277, 0, 1480, 1483, 3, 110, 55, 0, 1481, 1483, 3, 112, 56, 0, 1482, 1480, 1, 0, 0, 0, 1482, 1481, 1, 0, 0, 0, 1483, 1485, 1, 0, 0, 0, 1484, 1486, 3, 116, 58, 0, 1485, 1484, 1, 0, 0, 0, 1485, 1486, 1, 0, 0, 0, 1486, 109, 1, 0, 0, 0, 1487, 1489, 3, 674, 337, 0, 1488, 1487, 1, 0, 0, 0, 1488, 1489, 1, 0, 0, 0, 1489, 1490, 1, 0, 0, 0, 1490, 1495, 5, 25, 0, 0, 1491, 1493, 5, 305, 0, 0, 1492, 1491, 1, 0, 0, 0, 1492, 1493, 1, 0, 0, 0, 1493, 1494, 1, 0, 0, 0, 1494, 1496, 5, 289, 0, 0, 1495, 1492, 1, 0, 0, 0, 1495, 1496, 1, 0, 0, 0, 1496, 111, 1, 0, 0, 0, 1497, 1513, 3, 114, 57, 0, 1498, 1500, 3, 674, 337, 0, 1499, 1498, 1, 0, 0, 0, 1499, 1500, 1, 0, 0, 0, 1500, 1501, 1, 0, 0, 0, 1501, 1513, 3, 558, 279, 0, 1502, 1504, 3, 674, 337, 0, 1503, 1502, 1, 0, 0, 0, 1503, 1504, 1, 0, 0, 0, 1504, 1509, 1, 0, 0, 0, 1505, 1507, 5, 305, 0, 0, 1506, 1505, 1, 0, 0, 0, 1506, 1507, 1, 0, 0, 0, 1507, 1508, 1, 0, 0, 0, 1508, 1510, 5, 289, 0, 0, 1509, 1506, 1, 0, 0, 0, 1509, 1510, 1, 0, 0, 0, 1510, 1511, 1, 0, 0, 0, 1511, 1513, 3, 572, 286, 0, 1512, 1497, 1, 0, 0, 0, 1512, 1499, 1, 0, 0, 0, 1512, 1503, 1, 0, 0, 0, 1513, 113, 1, 0, 0, 0, 1514, 1515, 5, 131, 0, 0, 1515, 1516, 3, 88, 44, 0, 1516, 115, 1, 0, 0, 0, 1517, 1518, 5, 27, 0, 0, 1518, 1519, 5, 58, 0, 0, 1519, 1520, 5, 158, 0, 0, 1520, 1521, 3, 88, 44, 0, 1521, 117, 1, 0, 0, 0, 1522, 1524, 5, 82, 0, 0, 1523, 1525, 5, 305, 0, 0, 1524, 1523, 1, 0, 0, 0, 1524, 1525, 1, 0, 0, 0, 1525, 1526, 1, 0, 0, 0, 1526, 1529, 5, 289, 0, 0, 1527, 1528, 5, 108, 0, 0, 1528, 1530, 5, 89, 0, 0, 1529, 1527, 1, 0, 0, 0, 1529, 1530, 1, 0, 0, 0, 1530, 1531, 1, 0, 0, 0, 1531, 1532, 3, 554, 277, 0, 1532, 119, 1, 0, 0, 0, 1533, 1551, 5, 63, 0, 0, 1534, 1536, 5, 305, 0, 0, 1535, 1534, 1, 0, 0, 0, 1535, 1536, 1, 0, 0, 0, 1536, 1537, 1, 0, 0, 0, 1537, 1538, 5, 289, 0, 0, 1538, 1542, 5, 318, 0, 0, 1539, 1540, 5, 108, 0, 0, 1540, 1541, 5, 152, 0, 0, 1541, 1543, 5, 89, 0, 0, 1542, 1539, 1, 0, 0, 0, 1542, 1543, 1, 0, 0, 0, 1543, 1552, 1, 0, 0, 0, 1544, 1545, 5, 161, 0, 0, 1545, 1547, 5, 178, 0, 0, 1546, 1548, 5, 305, 0, 0, 1547, 1546, 1, 0, 0, 0, 1547, 1548, 1, 0, 0, 0, 1548, 1549, 1, 0, 0, 0, 1549, 1550, 5, 289, 0, 0, 1550, 1552, 5, 318, 0, 0, 1551, 1535, 1, 0, 0, 0, 1551, 1544, 1, 0, 0, 0, 1552, 1553, 1, 0, 0, 0, 1553, 1554, 3, 560, 280, 0, 1554, 1555, 3, 122, 61, 0, 1555, 121, 1, 0, 0, 0, 1556, 1558, 5, 27, 0, 0, 1557, 1556, 1, 0, 0, 0, 1557, 1558, 1, 0, 0, 0, 1558, 1559, 1, 0, 0, 0, 1559, 1566, 3, 124, 62, 0, 1560, 1566, 3, 114, 57, 0, 1561, 1563, 5, 27, 0, 0, 1562, 1561, 1, 0, 0, 0, 1562, 1563, 1, 0, 0, 0, 1563, 1564, 1, 0, 0, 0, 1564, 1566, 3, 572, 286, 0, 1565, 1557, 1, 0, 0, 0, 1565, 1560, 1, 0, 0, 0, 1565, 1562, 1, 0, 0, 0, 1566, 123, 1, 0, 0, 0, 1567, 1568, 5, 58, 0, 0, 1568, 1569, 5, 158, 0, 0, 1569, 1570, 3, 558, 279, 0, 1570, 125, 1, 0, 0, 0, 1571, 1573, 5, 82, 0, 0, 1572, 1574, 5, 305, 0, 0, 1573, 1572, 1, 0, 0, 0, 1573, 1574, 1, 0, 0, 0, 1574, 1575, 1, 0, 0, 0, 1575, 1576, 5, 289, 0, 0, 1576, 1579, 5, 318, 0, 0, 1577, 1578, 5, 108, 0, 0, 1578, 1580, 5, 89, 0, 0, 1579, 1577, 1, 0, 0, 0, 1579, 1580, 1, 0, 0, 0, 1580, 1581, 1, 0, 0, 0, 1581, 1582, 3, 560, 280, 0, 1582, 127, 1, 0, 0, 0, 1583, 1584, 3, 272, 136, 0, 1584, 129, 1, 0, 0, 0, 1585, 1588, 3, 132, 66, 0, 1586, 1588, 3, 138, 69, 0, 1587, 1585, 1, 0, 0, 0, 1587, 1586, 1, 0, 0, 0, 1588, 131, 1, 0, 0, 0, 1589, 1592, 3, 134, 67, 0, 1590, 1592, 3, 136, 68, 0, 1591, 1589, 1, 0, 0, 0, 1591, 1590, 1, 0, 0, 0, 1592, 133, 1, 0, 0, 0, 1593, 1594, 3, 290, 145, 0, 1594, 1596, 3, 142, 71, 0, 1595, 1597, 3, 242, 121, 0, 1596, 1595, 1, 0, 0, 0, 1596, 1597, 1, 0, 0, 0, 1597, 135, 1, 0, 0, 0, 1598, 1599, 3, 290, 145, 0, 1599, 1600, 3, 54, 27, 0, 1600, 137, 1, 0, 0, 0, 1601, 1604, 3, 140, 70, 0, 1602, 1604, 3, 54, 27, 0, 1603, 1601, 1, 0, 0, 0, 1603, 1602, 1, 0, 0, 0, 1604, 139, 1, 0, 0, 0, 1605, 1607, 3, 142, 71, 0, 1606, 1608, 3, 242, 121, 0, 1607, 1606, 1, 0, 0, 0, 1607, 1608, 1, 0, 0, 0, 1608, 141, 1, 0, 0, 0, 1609, 1611, 3, 206, 103, 0, 1610, 1609, 1, 0, 0, 0, 1611, 1614, 1, 0, 0, 0, 1612, 1610, 1, 0, 0, 0, 1612, 1613, 1, 0, 0, 0, 1613, 1616, 1, 0, 0, 0, 1614, 1612, 1, 0, 0, 0, 1615, 1617, 3, 144, 72, 0, 1616, 1615, 1, 0, 0, 0, 1617, 1618, 1, 0, 0, 0, 1618, 1616, 1, 0, 0, 0, 1618, 1619, 1, 0, 0, 0, 1619, 143, 1, 0, 0, 0, 1620, 1623, 3, 146, 73, 0, 1621, 1623, 3, 178, 89, 0, 1622, 1620, 1, 0, 0, 0, 1622, 1621, 1, 0, 0, 0, 1623, 145, 1, 0, 0, 0, 1624, 1629, 3, 148, 74, 0, 1625, 1629, 3, 150, 75, 0, 1626, 1629, 3, 162, 81, 0, 1627, 1629, 3, 172, 86, 0, 1628, 1624, 1, 0, 0, 0, 1628, 1625, 1, 0, 0, 0, 1628, 1626, 1, 0, 0, 0, 1628, 1627, 1, 0, 0, 0, 1629, 147, 1, 0, 0, 0, 1630, 1631, 5, 110, 0, 0, 1631, 1632, 3, 322, 161, 0, 1632, 149, 1, 0, 0, 0, 1633, 1634, 5, 190, 0, 0, 1634, 1635, 3, 152, 76, 0, 1635, 151, 1, 0, 0, 0, 1636, 1641, 3, 154, 77, 0, 1637, 1638, 5, 361, 0, 0, 1638, 1640, 3, 154, 77, 0, 1639, 1637, 1, 0, 0, 0, 1640, 1643, 1, 0, 0, 0, 1641, 1639, 1, 0, 0, 0, 1641, 1642, 1, 0, 0, 0, 1642, 153, 1, 0, 0, 0, 1643, 1641, 1, 0, 0, 0, 1644, 1648, 3, 156, 78, 0, 1645, 1648, 3, 158, 79, 0, 1646, 1648, 3, 160, 80, 0, 1647, 1644, 1, 0, 0, 0, 1647, 1645, 1, 0, 0, 0, 1647, 1646, 1, 0, 0, 0, 1648, 155, 1, 0, 0, 0, 1649, 1650, 3, 912, 456, 0, 1650, 1651, 5, 375, 0, 0, 1651, 1652, 3, 1082, 541, 0, 1652, 1653, 5, 365, 0, 0, 1653, 1654, 3, 818, 409, 0, 1654, 157, 1, 0, 0, 0, 1655, 1656, 3, 912, 456, 0, 1656, 1657, 5, 365, 0, 0, 1657, 1659, 5, 369, 0, 0, 1658, 1660, 3, 396, 198, 0, 1659, 1658, 1, 0, 0, 0, 1659, 1660, 1, 0, 0, 0, 1660, 1661, 1, 0, 0, 0, 1661, 1662, 5, 380, 0, 0, 1662, 159, 1, 0, 0, 0, 1663, 1664, 3, 912, 456, 0, 1664, 1665, 3, 388, 194, 0, 1665, 1666, 3, 1080, 540, 0, 1666, 161, 1, 0, 0, 0, 1667, 1668, 5, 177, 0, 0, 1668, 1669, 3, 164, 82, 0, 1669, 163, 1, 0, 0, 0, 1670, 1675, 3, 166, 83, 0, 1671, 1672, 5, 361, 0, 0, 1672, 1674, 3, 166, 83, 0, 1673, 1671, 1, 0, 0, 0, 1674, 1677, 1, 0, 0, 0, 1675, 1673, 1, 0, 0, 0, 1675, 1676, 1, 0, 0, 0, 1676, 165, 1, 0, 0, 0, 1677, 1675, 1, 0, 0, 0, 1678, 1681, 3, 168, 84, 0, 1679, 1681, 3, 170, 85, 0, 1680, 1678, 1, 0, 0, 0, 1680, 1679, 1, 0, 0, 0, 1681, 167, 1, 0, 0, 0, 1682, 1683, 3, 912, 456, 0, 1683, 1684, 5, 375, 0, 0, 1684, 1685, 3, 1082, 541, 0, 1685, 169, 1, 0, 0, 0, 1686, 1687, 3, 912, 456, 0, 1687, 1688, 3, 388, 194, 0, 1688, 1689, 3, 1080, 540, 0, 1689, 171, 1, 0, 0, 0, 1690, 1692, 7, 2, 0, 0, 1691, 1690, 1, 0, 0, 0, 1691, 1692, 1, 0, 0, 0, 1692, 1693, 1, 0, 0, 0, 1693, 1694, 5, 76, 0, 0, 1694, 1695, 3, 174, 87, 0, 1695, 173, 1, 0, 0, 0, 1696, 1701, 3, 176, 88, 0, 1697, 1698, 5, 361, 0, 0, 1698, 1700, 3, 176, 88, 0, 1699, 1697, 1, 0, 0, 0, 1700, 1703, 1, 0, 0, 0, 1701, 1699, 1, 0, 0, 0, 1701, 1702, 1, 0, 0, 0, 1702, 175, 1, 0, 0, 0, 1703, 1701, 1, 0, 0, 0, 1704, 1705, 3, 818, 409, 0, 1705, 177, 1, 0, 0, 0, 1706, 1707, 3, 272, 136, 0, 1707, 179, 1, 0, 0, 0, 1708, 1709, 3, 182, 91, 0, 1709, 181, 1, 0, 0, 0, 1710, 1711, 6, 91, -1, 0, 1711, 1712, 3, 188, 94, 0, 1712, 1719, 1, 0, 0, 0, 1713, 1714, 10, 2, 0, 0, 1714, 1715, 3, 184, 92, 0, 1715, 1716, 3, 188, 94, 0, 1716, 1718, 1, 0, 0, 0, 1717, 1713, 1, 0, 0, 0, 1718, 1721, 1, 0, 0, 0, 1719, 1717, 1, 0, 0, 0, 1719, 1720, 1, 0, 0, 0, 1720, 183, 1, 0, 0, 0, 1721, 1719, 1, 0, 0, 0, 1722, 1725, 3, 186, 93, 0, 1723, 1725, 5, 163, 0, 0, 1724, 1722, 1, 0, 0, 0, 1724, 1723, 1, 0, 0, 0, 1725, 185, 1, 0, 0, 0, 1726, 1728, 5, 220, 0, 0, 1727, 1729, 3, 902, 451, 0, 1728, 1727, 1, 0, 0, 0, 1728, 1729, 1, 0, 0, 0, 1729, 1739, 1, 0, 0, 0, 1730, 1732, 5, 88, 0, 0, 1731, 1733, 3, 902, 451, 0, 1732, 1731, 1, 0, 0, 0, 1732, 1733, 1, 0, 0, 0, 1733, 1739, 1, 0, 0, 0, 1734, 1736, 5, 125, 0, 0, 1735, 1737, 3, 902, 451, 0, 1736, 1735, 1, 0, 0, 0, 1736, 1737, 1, 0, 0, 0, 1737, 1739, 1, 0, 0, 0, 1738, 1726, 1, 0, 0, 0, 1738, 1730, 1, 0, 0, 0, 1738, 1734, 1, 0, 0, 0, 1739, 187, 1, 0, 0, 0, 1740, 1741, 3, 190, 95, 0, 1741, 189, 1, 0, 0, 0, 1742, 1745, 3, 192, 96, 0, 1743, 1745, 3, 202, 101, 0, 1744, 1742, 1, 0, 0, 0, 1744, 1743, 1, 0, 0, 0, 1745, 191, 1, 0, 0, 0, 1746, 1748, 3, 194, 97, 0, 1747, 1746, 1, 0, 0, 0, 1748, 1751, 1, 0, 0, 0, 1749, 1747, 1, 0, 0, 0, 1749, 1750, 1, 0, 0, 0, 1750, 1752, 1, 0, 0, 0, 1751, 1749, 1, 0, 0, 0, 1752, 1757, 3, 196, 98, 0, 1753, 1757, 3, 198, 99, 0, 1754, 1757, 3, 200, 100, 0, 1755, 1757, 3, 254, 127, 0, 1756, 1749, 1, 0, 0, 0, 1756, 1753, 1, 0, 0, 0, 1756, 1754, 1, 0, 0, 0, 1756, 1755, 1, 0, 0, 0, 1757, 193, 1, 0, 0, 0, 1758, 1759, 3, 290, 145, 0, 1759, 1760, 3, 204, 102, 0, 1760, 195, 1, 0, 0, 0, 1761, 1762, 3, 290, 145, 0, 1762, 1763, 3, 204, 102, 0, 1763, 1764, 3, 242, 121, 0, 1764, 197, 1, 0, 0, 0, 1765, 1766, 3, 290, 145, 0, 1766, 1767, 3, 242, 121, 0, 1767, 199, 1, 0, 0, 0, 1768, 1769, 3, 290, 145, 0, 1769, 1770, 3, 56, 28, 0, 1770, 201, 1, 0, 0, 0, 1771, 1773, 3, 204, 102, 0, 1772, 1771, 1, 0, 0, 0, 1772, 1773, 1, 0, 0, 0, 1773, 1774, 1, 0, 0, 0, 1774, 1777, 3, 242, 121, 0, 1775, 1777, 3, 56, 28, 0, 1776, 1772, 1, 0, 0, 0, 1776, 1775, 1, 0, 0, 0, 1777, 203, 1, 0, 0, 0, 1778, 1780, 3, 206, 103, 0, 1779, 1778, 1, 0, 0, 0, 1780, 1781, 1, 0, 0, 0, 1781, 1779, 1, 0, 0, 0, 1781, 1782, 1, 0, 0, 0, 1782, 205, 1, 0, 0, 0, 1783, 1786, 3, 208, 104, 0, 1784, 1786, 3, 220, 110, 0, 1785, 1783, 1, 0, 0, 0, 1785, 1784, 1, 0, 0, 0, 1786, 207, 1, 0, 0, 0, 1787, 1793, 3, 210, 105, 0, 1788, 1793, 3, 224, 112, 0, 1789, 1793, 3, 230, 115, 0, 1790, 1793, 3, 222, 111, 0, 1791, 1793, 3, 240, 120, 0, 1792, 1787, 1, 0, 0, 0, 1792, 1788, 1, 0, 0, 0, 1792, 1789, 1, 0, 0, 0, 1792, 1790, 1, 0, 0, 0, 1792, 1791, 1, 0, 0, 0, 1793, 209, 1, 0, 0, 0, 1794, 1797, 3, 212, 106, 0, 1795, 1797, 3, 214, 107, 0, 1796, 1794, 1, 0, 0, 0, 1796, 1795, 1, 0, 0, 0, 1797, 211, 1, 0, 0, 0, 1798, 1799, 5, 143, 0, 0, 1799, 1800, 3, 292, 146, 0, 1800, 213, 1, 0, 0, 0, 1801, 1802, 5, 160, 0, 0, 1802, 1803, 3, 216, 108, 0, 1803, 215, 1, 0, 0, 0, 1804, 1814, 3, 212, 106, 0, 1805, 1806, 5, 369, 0, 0, 1806, 1807, 3, 218, 109, 0, 1807, 1808, 5, 380, 0, 0, 1808, 1814, 1, 0, 0, 0, 1809, 1810, 5, 371, 0, 0, 1810, 1811, 3, 218, 109, 0, 1811, 1812, 5, 382, 0, 0, 1812, 1814, 1, 0, 0, 0, 1813, 1804, 1, 0, 0, 0, 1813, 1805, 1, 0, 0, 0, 1813, 1809, 1, 0, 0, 0, 1814, 217, 1, 0, 0, 0, 1815, 1817, 3, 210, 105, 0, 1816, 1815, 1, 0, 0, 0, 1817, 1818, 1, 0, 0, 0, 1818, 1816, 1, 0, 0, 0, 1818, 1819, 1, 0, 0, 0, 1819, 219, 1, 0, 0, 0, 1820, 1821, 3, 272, 136, 0, 1821, 221, 1, 0, 0, 0, 1822, 1825, 5, 91, 0, 0, 1823, 1826, 3, 498, 249, 0, 1824, 1826, 3, 772, 386, 0, 1825, 1823, 1, 0, 0, 0, 1825, 1824, 1, 0, 0, 0, 1826, 223, 1, 0, 0, 0, 1827, 1828, 5, 130, 0, 0, 1828, 1829, 3, 226, 113, 0, 1829, 225, 1, 0, 0, 0, 1830, 1835, 3, 228, 114, 0, 1831, 1832, 5, 361, 0, 0, 1832, 1834, 3, 228, 114, 0, 1833, 1831, 1, 0, 0, 0, 1834, 1837, 1, 0, 0, 0, 1835, 1833, 1, 0, 0, 0, 1835, 1836, 1, 0, 0, 0, 1836, 227, 1, 0, 0, 0, 1837, 1835, 1, 0, 0, 0, 1838, 1844, 3, 82, 41, 0, 1839, 1840, 3, 1092, 546, 0, 1840, 1841, 5, 365, 0, 0, 1841, 1842, 3, 818, 409, 0, 1842, 1844, 1, 0, 0, 0, 1843, 1838, 1, 0, 0, 0, 1843, 1839, 1, 0, 0, 0, 1844, 229, 1, 0, 0, 0, 1845, 1846, 5, 100, 0, 0, 1846, 1848, 3, 232, 116, 0, 1847, 1849, 3, 238, 119, 0, 1848, 1847, 1, 0, 0, 0, 1848, 1849, 1, 0, 0, 0, 1849, 231, 1, 0, 0, 0, 1850, 1851, 3, 234, 117, 0, 1851, 1852, 3, 236, 118, 0, 1852, 233, 1, 0, 0, 0, 1853, 1854, 3, 1092, 546, 0, 1854, 1855, 5, 109, 0, 0, 1855, 235, 1, 0, 0, 0, 1856, 1857, 3, 818, 409, 0, 1857, 237, 1, 0, 0, 0, 1858, 1859, 5, 231, 0, 0, 1859, 1860, 7, 3, 0, 0, 1860, 1861, 3, 1092, 546, 0, 1861, 239, 1, 0, 0, 0, 1862, 1864, 3, 518, 259, 0, 1863, 1865, 3, 532, 266, 0, 1864, 1863, 1, 0, 0, 0, 1864, 1865, 1, 0, 0, 0, 1865, 1867, 1, 0, 0, 0, 1866, 1868, 3, 530, 265, 0, 1867, 1866, 1, 0, 0, 0, 1867, 1868, 1, 0, 0, 0, 1868, 1875, 1, 0, 0, 0, 1869, 1871, 3, 532, 266, 0, 1870, 1872, 3, 530, 265, 0, 1871, 1870, 1, 0, 0, 0, 1871, 1872, 1, 0, 0, 0, 1872, 1875, 1, 0, 0, 0, 1873, 1875, 3, 530, 265, 0, 1874, 1862, 1, 0, 0, 0, 1874, 1869, 1, 0, 0, 0, 1874, 1873, 1, 0, 0, 0, 1875, 241, 1, 0, 0, 0, 1876, 1878, 3, 244, 122, 0, 1877, 1879, 3, 240, 120, 0, 1878, 1877, 1, 0, 0, 0, 1878, 1879, 1, 0, 0, 0, 1879, 1882, 1, 0, 0, 0, 1880, 1882, 5, 92, 0, 0, 1881, 1876, 1, 0, 0, 0, 1881, 1880, 1, 0, 0, 0, 1882, 243, 1, 0, 0, 0, 1883, 1884, 5, 180, 0, 0, 1884, 1885, 3, 246, 123, 0, 1885, 245, 1, 0, 0, 0, 1886, 1888, 3, 902, 451, 0, 1887, 1886, 1, 0, 0, 0, 1887, 1888, 1, 0, 0, 0, 1888, 1891, 1, 0, 0, 0, 1889, 1892, 5, 359, 0, 0, 1890, 1892, 3, 248, 124, 0, 1891, 1889, 1, 0, 0, 0, 1891, 1890, 1, 0, 0, 0, 1892, 1894, 1, 0, 0, 0, 1893, 1895, 3, 510, 255, 0, 1894, 1893, 1, 0, 0, 0, 1894, 1895, 1, 0, 0, 0, 1895, 1899, 1, 0, 0, 0, 1896, 1897, 5, 300, 0, 0, 1897, 1899, 5, 279, 0, 0, 1898, 1887, 1, 0, 0, 0, 1898, 1896, 1, 0, 0, 0, 1899, 247, 1, 0, 0, 0, 1900, 1905, 3, 250, 125, 0, 1901, 1902, 5, 361, 0, 0, 1902, 1904, 3, 250, 125, 0, 1903, 1901, 1, 0, 0, 0, 1904, 1907, 1, 0, 0, 0, 1905, 1903, 1, 0, 0, 0, 1905, 1906, 1, 0, 0, 0, 1906, 249, 1, 0, 0, 0, 1907, 1905, 1, 0, 0, 0, 1908, 1910, 3, 840, 420, 0, 1909, 1911, 3, 252, 126, 0, 1910, 1909, 1, 0, 0, 0, 1910, 1911, 1, 0, 0, 0, 1911, 251, 1, 0, 0, 0, 1912, 1913, 5, 27, 0, 0, 1913, 1914, 3, 1110, 555, 0, 1914, 253, 1, 0, 0, 0, 1915, 1917, 5, 187, 0, 0, 1916, 1918, 3, 902, 451, 0, 1917, 1916, 1, 0, 0, 0, 1917, 1918, 1, 0, 0, 0, 1918, 1921, 1, 0, 0, 0, 1919, 1922, 5, 359, 0, 0, 1920, 1922, 3, 256, 128, 0, 1921, 1919, 1, 0, 0, 0, 1921, 1920, 1, 0, 0, 0, 1922, 1942, 1, 0, 0, 0, 1923, 1925, 3, 264, 132, 0, 1924, 1926, 3, 498, 249, 0, 1925, 1924, 1, 0, 0, 0, 1925, 1926, 1, 0, 0, 0, 1926, 1928, 1, 0, 0, 0, 1927, 1929, 3, 510, 255, 0, 1928, 1927, 1, 0, 0, 0, 1928, 1929, 1, 0, 0, 0, 1929, 1931, 1, 0, 0, 0, 1930, 1932, 3, 262, 131, 0, 1931, 1930, 1, 0, 0, 0, 1931, 1932, 1, 0, 0, 0, 1932, 1934, 1, 0, 0, 0, 1933, 1935, 3, 518, 259, 0, 1934, 1933, 1, 0, 0, 0, 1934, 1935, 1, 0, 0, 0, 1935, 1937, 1, 0, 0, 0, 1936, 1938, 3, 532, 266, 0, 1937, 1936, 1, 0, 0, 0, 1937, 1938, 1, 0, 0, 0, 1938, 1940, 1, 0, 0, 0, 1939, 1941, 3, 530, 265, 0, 1940, 1939, 1, 0, 0, 0, 1940, 1941, 1, 0, 0, 0, 1941, 1943, 1, 0, 0, 0, 1942, 1923, 1, 0, 0, 0, 1942, 1943, 1, 0, 0, 0, 1943, 255, 1, 0, 0, 0, 1944, 1949, 3, 258, 129, 0, 1945, 1946, 5, 361, 0, 0, 1946, 1948, 3, 258, 129, 0, 1947, 1945, 1, 0, 0, 0, 1948, 1951, 1, 0, 0, 0, 1949, 1947, 1, 0, 0, 0, 1949, 1950, 1, 0, 0, 0, 1950, 257, 1, 0, 0, 0, 1951, 1949, 1, 0, 0, 0, 1952, 1954, 3, 840, 420, 0, 1953, 1955, 3, 260, 130, 0, 1954, 1953, 1, 0, 0, 0, 1954, 1955, 1, 0, 0, 0, 1955, 259, 1, 0, 0, 0, 1956, 1957, 5, 27, 0, 0, 1957, 1958, 3, 1110, 555, 0, 1958, 261, 1, 0, 0, 0, 1959, 1960, 5, 103, 0, 0, 1960, 1961, 3, 772, 386, 0, 1961, 263, 1, 0, 0, 0, 1962, 1965, 5, 101, 0, 0, 1963, 1966, 3, 266, 133, 0, 1964, 1966, 3, 270, 135, 0, 1965, 1963, 1, 0, 0, 0, 1965, 1964, 1, 0, 0, 0, 1966, 265, 1, 0, 0, 0, 1967, 1972, 3, 268, 134, 0, 1968, 1969, 5, 361, 0, 0, 1969, 1971, 3, 268, 134, 0, 1970, 1968, 1, 0, 0, 0, 1971, 1974, 1, 0, 0, 0, 1972, 1970, 1, 0, 0, 0, 1972, 1973, 1, 0, 0, 0, 1973, 267, 1, 0, 0, 0, 1974, 1972, 1, 0, 0, 0, 1975, 1976, 3, 88, 44, 0, 1976, 1977, 3, 210, 105, 0, 1977, 269, 1, 0, 0, 0, 1978, 1983, 3, 56, 28, 0, 1979, 1980, 3, 88, 44, 0, 1980, 1981, 3, 56, 28, 0, 1981, 1983, 1, 0, 0, 0, 1982, 1978, 1, 0, 0, 0, 1982, 1979, 1, 0, 0, 0, 1983, 271, 1, 0, 0, 0, 1984, 1986, 5, 160, 0, 0, 1985, 1984, 1, 0, 0, 0, 1985, 1986, 1, 0, 0, 0, 1986, 1987, 1, 0, 0, 0, 1987, 1988, 5, 44, 0, 0, 1988, 1989, 3, 274, 137, 0, 1989, 273, 1, 0, 0, 0, 1990, 1993, 3, 276, 138, 0, 1991, 1993, 3, 282, 141, 0, 1992, 1990, 1, 0, 0, 0, 1992, 1991, 1, 0, 0, 0, 1993, 275, 1, 0, 0, 0, 1994, 1996, 3, 278, 139, 0, 1995, 1994, 1, 0, 0, 0, 1995, 1996, 1, 0, 0, 0, 1996, 1997, 1, 0, 0, 0, 1997, 1998, 3, 50, 25, 0, 1998, 277, 1, 0, 0, 0, 1999, 2001, 5, 371, 0, 0, 2000, 2002, 3, 280, 140, 0, 2001, 2000, 1, 0, 0, 0, 2001, 2002, 1, 0, 0, 0, 2002, 2003, 1, 0, 0, 0, 2003, 2004, 5, 382, 0, 0, 2004, 279, 1, 0, 0, 0, 2005, 2010, 3, 912, 456, 0, 2006, 2007, 5, 361, 0, 0, 2007, 2009, 3, 912, 456, 0, 2008, 2006, 1, 0, 0, 0, 2009, 2012, 1, 0, 0, 0, 2010, 2008, 1, 0, 0, 0, 2010, 2011, 1, 0, 0, 0, 2011, 281, 1, 0, 0, 0, 2012, 2010, 1, 0, 0, 0, 2013, 2014, 3, 564, 282, 0, 2014, 2016, 5, 371, 0, 0, 2015, 2017, 3, 284, 142, 0, 2016, 2015, 1, 0, 0, 0, 2016, 2017, 1, 0, 0, 0, 2017, 2018, 1, 0, 0, 0, 2018, 2020, 5, 382, 0, 0, 2019, 2021, 3, 500, 250, 0, 2020, 2019, 1, 0, 0, 0, 2020, 2021, 1, 0, 0, 0, 2021, 283, 1, 0, 0, 0, 2022, 2027, 3, 286, 143, 0, 2023, 2024, 5, 361, 0, 0, 2024, 2026, 3, 286, 143, 0, 2025, 2023, 1, 0, 0, 0, 2026, 2029, 1, 0, 0, 0, 2027, 2025, 1, 0, 0, 0, 2027, 2028, 1, 0, 0, 0, 2028, 285, 1, 0, 0, 0, 2029, 2027, 1, 0, 0, 0, 2030, 2031, 3, 818, 409, 0, 2031, 287, 1, 0, 0, 0, 2032, 2033, 5, 31, 0, 0, 2033, 2034, 3, 536, 268, 0, 2034, 289, 1, 0, 0, 0, 2035, 2036, 5, 223, 0, 0, 2036, 2037, 3, 88, 44, 0, 2037, 291, 1, 0, 0, 0, 2038, 2040, 3, 300, 150, 0, 2039, 2041, 3, 294, 147, 0, 2040, 2039, 1, 0, 0, 0, 2040, 2041, 1, 0, 0, 0, 2041, 293, 1, 0, 0, 0, 2042, 2043, 5, 234, 0, 0, 2043, 2044, 3, 296, 148, 0, 2044, 295, 1, 0, 0, 0, 2045, 2050, 3, 298, 149, 0, 2046, 2047, 5, 361, 0, 0, 2047, 2049, 3, 298, 149, 0, 2048, 2046, 1, 0, 0, 0, 2049, 2052, 1, 0, 0, 0, 2050, 2048, 1, 0, 0, 0, 2050, 2051, 1, 0, 0, 0, 2051, 2056, 1, 0, 0, 0, 2052, 2050, 1, 0, 0, 0, 2053, 2054, 5, 300, 0, 0, 2054, 2056, 5, 279, 0, 0, 2055, 2045, 1, 0, 0, 0, 2055, 2053, 1, 0, 0, 0, 2056, 297, 1, 0, 0, 0, 2057, 2058, 3, 912, 456, 0, 2058, 299, 1, 0, 0, 0, 2059, 2061, 3, 302, 151, 0, 2060, 2059, 1, 0, 0, 0, 2060, 2061, 1, 0, 0, 0, 2061, 2062, 1, 0, 0, 0, 2062, 2064, 3, 312, 156, 0, 2063, 2065, 3, 318, 159, 0, 2064, 2063, 1, 0, 0, 0, 2064, 2065, 1, 0, 0, 0, 2065, 2067, 1, 0, 0, 0, 2066, 2068, 3, 320, 160, 0, 2067, 2066, 1, 0, 0, 0, 2067, 2068, 1, 0, 0, 0, 2068, 301, 1, 0, 0, 0, 2069, 2072, 3, 304, 152, 0, 2070, 2072, 3, 306, 153, 0, 2071, 2069, 1, 0, 0, 0, 2071, 2070, 1, 0, 0, 0, 2072, 303, 1, 0, 0, 0, 2073, 2074, 5, 309, 0, 0, 2074, 2075, 3, 308, 154, 0, 2075, 305, 1, 0, 0, 0, 2076, 2077, 5, 282, 0, 0, 2077, 2078, 3, 310, 155, 0, 2078, 307, 1, 0, 0, 0, 2079, 2081, 5, 286, 0, 0, 2080, 2082, 5, 279, 0, 0, 2081, 2080, 1, 0, 0, 0, 2081, 2082, 1, 0, 0, 0, 2082, 2085, 1, 0, 0, 0, 2083, 2085, 5, 287, 0, 0, 2084, 2079, 1, 0, 0, 0, 2084, 2083, 1, 0, 0, 0, 2085, 309, 1, 0, 0, 0, 2086, 2088, 3, 1144, 572, 0, 2087, 2089, 5, 279, 0, 0, 2088, 2087, 1, 0, 0, 0, 2088, 2089, 1, 0, 0, 0, 2089, 2092, 1, 0, 0, 0, 2090, 2092, 3, 1142, 571, 0, 2091, 2086, 1, 0, 0, 0, 2091, 2090, 1, 0, 0, 0, 2092, 311, 1, 0, 0, 0, 2093, 2098, 3, 314, 157, 0, 2094, 2095, 5, 361, 0, 0, 2095, 2097, 3, 314, 157, 0, 2096, 2094, 1, 0, 0, 0, 2097, 2100, 1, 0, 0, 0, 2098, 2096, 1, 0, 0, 0, 2098, 2099, 1, 0, 0, 0, 2099, 313, 1, 0, 0, 0, 2100, 2098, 1, 0, 0, 0, 2101, 2103, 3, 316, 158, 0, 2102, 2101, 1, 0, 0, 0, 2102, 2103, 1, 0, 0, 0, 2103, 2105, 1, 0, 0, 0, 2104, 2106, 3, 342, 171, 0, 2105, 2104, 1, 0, 0, 0, 2105, 2106, 1, 0, 0, 0, 2106, 2107, 1, 0, 0, 0, 2107, 2108, 3, 370, 185, 0, 2108, 315, 1, 0, 0, 0, 2109, 2110, 3, 1088, 544, 0, 2110, 2111, 5, 365, 0, 0, 2111, 317, 1, 0, 0, 0, 2112, 2113, 5, 291, 0, 0, 2113, 2114, 3, 342, 171, 0, 2114, 319, 1, 0, 0, 0, 2115, 2116, 5, 230, 0, 0, 2116, 2117, 3, 772, 386, 0, 2117, 321, 1, 0, 0, 0, 2118, 2119, 3, 324, 162, 0, 2119, 323, 1, 0, 0, 0, 2120, 2125, 3, 326, 163, 0, 2121, 2122, 5, 361, 0, 0, 2122, 2124, 3, 326, 163, 0, 2123, 2121, 1, 0, 0, 0, 2124, 2127, 1, 0, 0, 0, 2125, 2123, 1, 0, 0, 0, 2125, 2126, 1, 0, 0, 0, 2126, 325, 1, 0, 0, 0, 2127, 2125, 1, 0, 0, 0, 2128, 2134, 3, 328, 164, 0, 2129, 2130, 3, 330, 165, 0, 2130, 2131, 3, 328, 164, 0, 2131, 2133, 1, 0, 0, 0, 2132, 2129, 1, 0, 0, 0, 2133, 2136, 1, 0, 0, 0, 2134, 2132, 1, 0, 0, 0, 2134, 2135, 1, 0, 0, 0, 2135, 327, 1, 0, 0, 0, 2136, 2134, 1, 0, 0, 0, 2137, 2139, 5, 371, 0, 0, 2138, 2140, 3, 338, 169, 0, 2139, 2138, 1, 0, 0, 0, 2139, 2140, 1, 0, 0, 0, 2140, 2141, 1, 0, 0, 0, 2141, 2142, 5, 382, 0, 0, 2142, 329, 1, 0, 0, 0, 2143, 2147, 3, 332, 166, 0, 2144, 2147, 3, 334, 167, 0, 2145, 2147, 3, 336, 168, 0, 2146, 2143, 1, 0, 0, 0, 2146, 2144, 1, 0, 0, 0, 2146, 2145, 1, 0, 0, 0, 2147, 331, 1, 0, 0, 0, 2148, 2150, 5, 338, 0, 0, 2149, 2151, 3, 338, 169, 0, 2150, 2149, 1, 0, 0, 0, 2150, 2151, 1, 0, 0, 0, 2151, 2152, 1, 0, 0, 0, 2152, 2153, 5, 348, 0, 0, 2153, 333, 1, 0, 0, 0, 2154, 2156, 5, 344, 0, 0, 2155, 2157, 3, 338, 169, 0, 2156, 2155, 1, 0, 0, 0, 2156, 2157, 1, 0, 0, 0, 2157, 2158, 1, 0, 0, 0, 2158, 2159, 5, 329, 0, 0, 2159, 335, 1, 0, 0, 0, 2160, 2162, 5, 355, 0, 0, 2161, 2163, 3, 338, 169, 0, 2162, 2161, 1, 0, 0, 0, 2162, 2163, 1, 0, 0, 0, 2163, 2164, 1, 0, 0, 0, 2164, 2165, 5, 349, 0, 0, 2165, 337, 1, 0, 0, 0, 2166, 2168, 3, 384, 192, 0, 2167, 2169, 3, 340, 170, 0, 2168, 2167, 1, 0, 0, 0, 2168, 2169, 1, 0, 0, 0, 2169, 2175, 1, 0, 0, 0, 2170, 2172, 3, 384, 192, 0, 2171, 2170, 1, 0, 0, 0, 2171, 2172, 1, 0, 0, 0, 2172, 2173, 1, 0, 0, 0, 2173, 2175, 3, 340, 170, 0, 2174, 2166, 1, 0, 0, 0, 2174, 2171, 1, 0, 0, 0, 2175, 339, 1, 0, 0, 0, 2176, 2177, 3, 388, 194, 0, 2177, 2179, 3, 660, 330, 0, 2178, 2180, 3, 394, 197, 0, 2179, 2178, 1, 0, 0, 0, 2179, 2180, 1, 0, 0, 0, 2180, 2188, 1, 0, 0, 0, 2181, 2182, 3, 388, 194, 0, 2182, 2183, 3, 660, 330, 0, 2183, 2185, 1, 0, 0, 0, 2184, 2181, 1, 0, 0, 0, 2184, 2185, 1, 0, 0, 0, 2185, 2186, 1, 0, 0, 0, 2186, 2188, 3, 394, 197, 0, 2187, 2176, 1, 0, 0, 0, 2187, 2184, 1, 0, 0, 0, 2188, 341, 1, 0, 0, 0, 2189, 2192, 3, 344, 172, 0, 2190, 2192, 3, 348, 174, 0, 2191, 2189, 1, 0, 0, 0, 2191, 2190, 1, 0, 0, 0, 2192, 343, 1, 0, 0, 0, 2193, 2195, 3, 346, 173, 0, 2194, 2196, 3, 352, 176, 0, 2195, 2194, 1, 0, 0, 0, 2195, 2196, 1, 0, 0, 0, 2196, 345, 1, 0, 0, 0, 2197, 2198, 7, 4, 0, 0, 2198, 347, 1, 0, 0, 0, 2199, 2203, 3, 350, 175, 0, 2200, 2203, 3, 354, 177, 0, 2201, 2203, 3, 358, 179, 0, 2202, 2199, 1, 0, 0, 0, 2202, 2200, 1, 0, 0, 0, 2202, 2201, 1, 0, 0, 0, 2203, 349, 1, 0, 0, 0, 2204, 2206, 5, 22, 0, 0, 2205, 2207, 3, 346, 173, 0, 2206, 2205, 1, 0, 0, 0, 2206, 2207, 1, 0, 0, 0, 2207, 2209, 1, 0, 0, 0, 2208, 2210, 3, 352, 176, 0, 2209, 2208, 1, 0, 0, 0, 2209, 2210, 1, 0, 0, 0, 2210, 351, 1, 0, 0, 0, 2211, 2212, 7, 5, 0, 0, 2212, 353, 1, 0, 0, 0, 2213, 2215, 5, 25, 0, 0, 2214, 2216, 3, 356, 178, 0, 2215, 2214, 1, 0, 0, 0, 2215, 2216, 1, 0, 0, 0, 2216, 2218, 1, 0, 0, 0, 2217, 2219, 3, 346, 173, 0, 2218, 2217, 1, 0, 0, 0, 2218, 2219, 1, 0, 0, 0, 2219, 2221, 1, 0, 0, 0, 2220, 2222, 3, 352, 176, 0, 2221, 2220, 1, 0, 0, 0, 2221, 2222, 1, 0, 0, 0, 2222, 355, 1, 0, 0, 0, 2223, 2224, 3, 852, 426, 0, 2224, 357, 1, 0, 0, 0, 2225, 2230, 3, 360, 180, 0, 2226, 2230, 3, 362, 181, 0, 2227, 2230, 3, 364, 182, 0, 2228, 2230, 3, 366, 183, 0, 2229, 2225, 1, 0, 0, 0, 2229, 2226, 1, 0, 0, 0, 2229, 2227, 1, 0, 0, 0, 2229, 2228, 1, 0, 0, 0, 2230, 359, 1, 0, 0, 0, 2231, 2232, 5, 22, 0, 0, 2232, 2234, 5, 310, 0, 0, 2233, 2235, 3, 346, 173, 0, 2234, 2233, 1, 0, 0, 0, 2234, 2235, 1, 0, 0, 0, 2235, 2237, 1, 0, 0, 0, 2236, 2238, 3, 352, 176, 0, 2237, 2236, 1, 0, 0, 0, 2237, 2238, 1, 0, 0, 0, 2238, 361, 1, 0, 0, 0, 2239, 2240, 5, 25, 0, 0, 2240, 2242, 5, 310, 0, 0, 2241, 2243, 3, 346, 173, 0, 2242, 2241, 1, 0, 0, 0, 2242, 2243, 1, 0, 0, 0, 2243, 2245, 1, 0, 0, 0, 2244, 2246, 3, 352, 176, 0, 2245, 2244, 1, 0, 0, 0, 2245, 2246, 1, 0, 0, 0, 2246, 363, 1, 0, 0, 0, 2247, 2248, 5, 310, 0, 0, 2248, 2250, 3, 356, 178, 0, 2249, 2251, 3, 346, 173, 0, 2250, 2249, 1, 0, 0, 0, 2250, 2251, 1, 0, 0, 0, 2251, 2253, 1, 0, 0, 0, 2252, 2254, 3, 352, 176, 0, 2253, 2252, 1, 0, 0, 0, 2253, 2254, 1, 0, 0, 0, 2254, 365, 1, 0, 0, 0, 2255, 2257, 5, 310, 0, 0, 2256, 2258, 3, 368, 184, 0, 2257, 2256, 1, 0, 0, 0, 2257, 2258, 1, 0, 0, 0, 2258, 2260, 1, 0, 0, 0, 2259, 2261, 3, 346, 173, 0, 2260, 2259, 1, 0, 0, 0, 2260, 2261, 1, 0, 0, 0, 2261, 2263, 1, 0, 0, 0, 2262, 2264, 3, 352, 176, 0, 2263, 2262, 1, 0, 0, 0, 2263, 2264, 1, 0, 0, 0, 2264, 2265, 1, 0, 0, 0, 2265, 2266, 7, 6, 0, 0, 2266, 367, 1, 0, 0, 0, 2267, 2268, 3, 852, 426, 0, 2268, 369, 1, 0, 0, 0, 2269, 2285, 3, 372, 186, 0, 2270, 2273, 3, 372, 186, 0, 2271, 2272, 5, 328, 0, 0, 2272, 2274, 3, 372, 186, 0, 2273, 2271, 1, 0, 0, 0, 2274, 2275, 1, 0, 0, 0, 2275, 2273, 1, 0, 0, 0, 2275, 2276, 1, 0, 0, 0, 2276, 2285, 1, 0, 0, 0, 2277, 2280, 3, 372, 186, 0, 2278, 2279, 5, 386, 0, 0, 2279, 2281, 3, 372, 186, 0, 2280, 2278, 1, 0, 0, 0, 2281, 2282, 1, 0, 0, 0, 2282, 2280, 1, 0, 0, 0, 2282, 2283, 1, 0, 0, 0, 2283, 2285, 1, 0, 0, 0, 2284, 2269, 1, 0, 0, 0, 2284, 2270, 1, 0, 0, 0, 2284, 2277, 1, 0, 0, 0, 2285, 371, 1, 0, 0, 0, 2286, 2288, 3, 374, 187, 0, 2287, 2286, 1, 0, 0, 0, 2288, 2289, 1, 0, 0, 0, 2289, 2287, 1, 0, 0, 0, 2289, 2290, 1, 0, 0, 0, 2290, 373, 1, 0, 0, 0, 2291, 2299, 3, 376, 188, 0, 2292, 2293, 3, 376, 188, 0, 2293, 2294, 3, 432, 216, 0, 2294, 2299, 1, 0, 0, 0, 2295, 2296, 3, 376, 188, 0, 2296, 2297, 5, 377, 0, 0, 2297, 2299, 1, 0, 0, 0, 2298, 2291, 1, 0, 0, 0, 2298, 2292, 1, 0, 0, 0, 2298, 2295, 1, 0, 0, 0, 2299, 375, 1, 0, 0, 0, 2300, 2304, 3, 378, 189, 0, 2301, 2304, 3, 420, 210, 0, 2302, 2304, 3, 442, 221, 0, 2303, 2300, 1, 0, 0, 0, 2303, 2301, 1, 0, 0, 0, 2303, 2302, 1, 0, 0, 0, 2304, 377, 1, 0, 0, 0, 2305, 2308, 3, 380, 190, 0, 2306, 2308, 3, 400, 200, 0, 2307, 2305, 1, 0, 0, 0, 2307, 2306, 1, 0, 0, 0, 2308, 379, 1, 0, 0, 0, 2309, 2310, 5, 371, 0, 0, 2310, 2311, 3, 382, 191, 0, 2311, 2312, 5, 382, 0, 0, 2312, 381, 1, 0, 0, 0, 2313, 2315, 3, 384, 192, 0, 2314, 2313, 1, 0, 0, 0, 2314, 2315, 1, 0, 0, 0, 2315, 2317, 1, 0, 0, 0, 2316, 2318, 3, 386, 193, 0, 2317, 2316, 1, 0, 0, 0, 2317, 2318, 1, 0, 0, 0, 2318, 2320, 1, 0, 0, 0, 2319, 2321, 3, 390, 195, 0, 2320, 2319, 1, 0, 0, 0, 2320, 2321, 1, 0, 0, 0, 2321, 383, 1, 0, 0, 0, 2322, 2324, 5, 314, 0, 0, 2323, 2322, 1, 0, 0, 0, 2323, 2324, 1, 0, 0, 0, 2324, 2325, 1, 0, 0, 0, 2325, 2326, 3, 1086, 543, 0, 2326, 385, 1, 0, 0, 0, 2327, 2328, 3, 388, 194, 0, 2328, 2329, 3, 426, 213, 0, 2329, 387, 1, 0, 0, 0, 2330, 2331, 7, 7, 0, 0, 2331, 389, 1, 0, 0, 0, 2332, 2335, 3, 392, 196, 0, 2333, 2335, 3, 394, 197, 0, 2334, 2332, 1, 0, 0, 0, 2334, 2333, 1, 0, 0, 0, 2335, 391, 1, 0, 0, 0, 2336, 2337, 5, 230, 0, 0, 2337, 2338, 3, 772, 386, 0, 2338, 393, 1, 0, 0, 0, 2339, 2340, 5, 369, 0, 0, 2340, 2341, 3, 396, 198, 0, 2341, 2342, 5, 380, 0, 0, 2342, 395, 1, 0, 0, 0, 2343, 2348, 3, 398, 199, 0, 2344, 2345, 5, 361, 0, 0, 2345, 2347, 3, 398, 199, 0, 2346, 2344, 1, 0, 0, 0, 2347, 2350, 1, 0, 0, 0, 2348, 2346, 1, 0, 0, 0, 2348, 2349, 1, 0, 0, 0, 2349, 397, 1, 0, 0, 0, 2350, 2348, 1, 0, 0, 0, 2351, 2352, 3, 1082, 541, 0, 2352, 2353, 5, 360, 0, 0, 2353, 2354, 3, 818, 409, 0, 2354, 399, 1, 0, 0, 0, 2355, 2358, 3, 402, 201, 0, 2356, 2358, 3, 418, 209, 0, 2357, 2355, 1, 0, 0, 0, 2357, 2356, 1, 0, 0, 0, 2358, 401, 1, 0, 0, 0, 2359, 2367, 3, 404, 202, 0, 2360, 2367, 3, 406, 203, 0, 2361, 2367, 3, 408, 204, 0, 2362, 2367, 3, 410, 205, 0, 2363, 2367, 3, 412, 206, 0, 2364, 2367, 3, 414, 207, 0, 2365, 2367, 3, 416, 208, 0, 2366, 2359, 1, 0, 0, 0, 2366, 2360, 1, 0, 0, 0, 2366, 2361, 1, 0, 0, 0, 2366, 2362, 1, 0, 0, 0, 2366, 2363, 1, 0, 0, 0, 2366, 2364, 1, 0, 0, 0, 2366, 2365, 1, 0, 0, 0, 2367, 403, 1, 0, 0, 0, 2368, 2369, 5, 338, 0, 0, 2369, 2370, 3, 382, 191, 0, 2370, 2371, 5, 348, 0, 0, 2371, 405, 1, 0, 0, 0, 2372, 2373, 5, 355, 0, 0, 2373, 2374, 3, 382, 191, 0, 2374, 2375, 5, 349, 0, 0, 2375, 407, 1, 0, 0, 0, 2376, 2377, 5, 344, 0, 0, 2377, 2378, 3, 382, 191, 0, 2378, 2379, 5, 329, 0, 0, 2379, 409, 1, 0, 0, 0, 2380, 2381, 5, 339, 0, 0, 2381, 2382, 3, 382, 191, 0, 2382, 2383, 5, 349, 0, 0, 2383, 411, 1, 0, 0, 0, 2384, 2385, 5, 355, 0, 0, 2385, 2386, 3, 382, 191, 0, 2386, 2387, 5, 330, 0, 0, 2387, 413, 1, 0, 0, 0, 2388, 2389, 5, 338, 0, 0, 2389, 2390, 3, 382, 191, 0, 2390, 2391, 5, 329, 0, 0, 2391, 415, 1, 0, 0, 0, 2392, 2393, 5, 344, 0, 0, 2393, 2394, 3, 382, 191, 0, 2394, 2395, 5, 348, 0, 0, 2395, 417, 1, 0, 0, 0, 2396, 2397, 7, 8, 0, 0, 2397, 419, 1, 0, 0, 0, 2398, 2400, 5, 371, 0, 0, 2399, 2401, 3, 422, 211, 0, 2400, 2399, 1, 0, 0, 0, 2400, 2401, 1, 0, 0, 0, 2401, 2403, 1, 0, 0, 0, 2402, 2404, 3, 344, 172, 0, 2403, 2402, 1, 0, 0, 0, 2403, 2404, 1, 0, 0, 0, 2404, 2405, 1, 0, 0, 0, 2405, 2407, 3, 370, 185, 0, 2406, 2408, 3, 424, 212, 0, 2407, 2406, 1, 0, 0, 0, 2407, 2408, 1, 0, 0, 0, 2408, 2409, 1, 0, 0, 0, 2409, 2410, 5, 382, 0, 0, 2410, 421, 1, 0, 0, 0, 2411, 2412, 3, 1090, 545, 0, 2412, 2413, 5, 365, 0, 0, 2413, 423, 1, 0, 0, 0, 2414, 2415, 5, 230, 0, 0, 2415, 2416, 3, 772, 386, 0, 2416, 425, 1, 0, 0, 0, 2417, 2418, 6, 213, -1, 0, 2418, 2419, 5, 366, 0, 0, 2419, 2427, 3, 426, 213, 6, 2420, 2427, 3, 1080, 540, 0, 2421, 2427, 5, 374, 0, 0, 2422, 2423, 5, 371, 0, 0, 2423, 2424, 3, 426, 213, 0, 2424, 2425, 5, 382, 0, 0, 2425, 2427, 1, 0, 0, 0, 2426, 2417, 1, 0, 0, 0, 2426, 2420, 1, 0, 0, 0, 2426, 2421, 1, 0, 0, 0, 2426, 2422, 1, 0, 0, 0, 2427, 2436, 1, 0, 0, 0, 2428, 2429, 10, 5, 0, 0, 2429, 2430, 5, 358, 0, 0, 2430, 2435, 3, 426, 213, 6, 2431, 2432, 10, 4, 0, 0, 2432, 2433, 5, 386, 0, 0, 2433, 2435, 3, 426, 213, 5, 2434, 2428, 1, 0, 0, 0, 2434, 2431, 1, 0, 0, 0, 2435, 2438, 1, 0, 0, 0, 2436, 2434, 1, 0, 0, 0, 2436, 2437, 1, 0, 0, 0, 2437, 427, 1, 0, 0, 0, 2438, 2436, 1, 0, 0, 0, 2439, 2440, 3, 912, 456, 0, 2440, 429, 1, 0, 0, 0, 2441, 2442, 3, 912, 456, 0, 2442, 431, 1, 0, 0, 0, 2443, 2448, 5, 359, 0, 0, 2444, 2448, 5, 376, 0, 0, 2445, 2448, 3, 434, 217, 0, 2446, 2448, 3, 436, 218, 0, 2447, 2443, 1, 0, 0, 0, 2447, 2444, 1, 0, 0, 0, 2447, 2445, 1, 0, 0, 0, 2447, 2446, 1, 0, 0, 0, 2448, 433, 1, 0, 0, 0, 2449, 2450, 5, 369, 0, 0, 2450, 2451, 3, 1124, 562, 0, 2451, 2452, 5, 380, 0, 0, 2452, 435, 1, 0, 0, 0, 2453, 2455, 5, 369, 0, 0, 2454, 2456, 3, 438, 219, 0, 2455, 2454, 1, 0, 0, 0, 2455, 2456, 1, 0, 0, 0, 2456, 2457, 1, 0, 0, 0, 2457, 2459, 5, 361, 0, 0, 2458, 2460, 3, 440, 220, 0, 2459, 2458, 1, 0, 0, 0, 2459, 2460, 1, 0, 0, 0, 2460, 2461, 1, 0, 0, 0, 2461, 2462, 5, 380, 0, 0, 2462, 437, 1, 0, 0, 0, 2463, 2464, 3, 1124, 562, 0, 2464, 439, 1, 0, 0, 0, 2465, 2466, 3, 1124, 562, 0, 2466, 441, 1, 0, 0, 0, 2467, 2475, 3, 444, 222, 0, 2468, 2475, 3, 446, 223, 0, 2469, 2475, 3, 448, 224, 0, 2470, 2475, 3, 450, 225, 0, 2471, 2475, 3, 452, 226, 0, 2472, 2475, 3, 454, 227, 0, 2473, 2475, 3, 456, 228, 0, 2474, 2467, 1, 0, 0, 0, 2474, 2468, 1, 0, 0, 0, 2474, 2469, 1, 0, 0, 0, 2474, 2470, 1, 0, 0, 0, 2474, 2471, 1, 0, 0, 0, 2474, 2472, 1, 0, 0, 0, 2474, 2473, 1, 0, 0, 0, 2475, 443, 1, 0, 0, 0, 2476, 2477, 5, 341, 0, 0, 2477, 2478, 3, 458, 229, 0, 2478, 2479, 5, 351, 0, 0, 2479, 445, 1, 0, 0, 0, 2480, 2481, 5, 357, 0, 0, 2481, 2482, 3, 458, 229, 0, 2482, 2483, 5, 353, 0, 0, 2483, 447, 1, 0, 0, 0, 2484, 2485, 5, 345, 0, 0, 2485, 2486, 3, 458, 229, 0, 2486, 2487, 5, 352, 0, 0, 2487, 449, 1, 0, 0, 0, 2488, 2489, 5, 342, 0, 0, 2489, 2490, 3, 458, 229, 0, 2490, 2491, 5, 353, 0, 0, 2491, 451, 1, 0, 0, 0, 2492, 2493, 5, 357, 0, 0, 2493, 2494, 3, 458, 229, 0, 2494, 2495, 5, 354, 0, 0, 2495, 453, 1, 0, 0, 0, 2496, 2497, 5, 341, 0, 0, 2497, 2498, 3, 458, 229, 0, 2498, 2499, 5, 352, 0, 0, 2499, 455, 1, 0, 0, 0, 2500, 2501, 5, 345, 0, 0, 2501, 2502, 3, 458, 229, 0, 2502, 2503, 5, 351, 0, 0, 2503, 457, 1, 0, 0, 0, 2504, 2508, 3, 464, 232, 0, 2505, 2508, 3, 460, 230, 0, 2506, 2508, 3, 462, 231, 0, 2507, 2504, 1, 0, 0, 0, 2507, 2505, 1, 0, 0, 0, 2507, 2506, 1, 0, 0, 0, 2508, 459, 1, 0, 0, 0, 2509, 2510, 3, 464, 232, 0, 2510, 2511, 5, 386, 0, 0, 2511, 2516, 3, 464, 232, 0, 2512, 2513, 5, 386, 0, 0, 2513, 2515, 3, 464, 232, 0, 2514, 2512, 1, 0, 0, 0, 2515, 2518, 1, 0, 0, 0, 2516, 2514, 1, 0, 0, 0, 2516, 2517, 1, 0, 0, 0, 2517, 461, 1, 0, 0, 0, 2518, 2516, 1, 0, 0, 0, 2519, 2520, 3, 464, 232, 0, 2520, 2521, 5, 328, 0, 0, 2521, 2526, 3, 464, 232, 0, 2522, 2523, 5, 328, 0, 0, 2523, 2525, 3, 464, 232, 0, 2524, 2522, 1, 0, 0, 0, 2525, 2528, 1, 0, 0, 0, 2526, 2524, 1, 0, 0, 0, 2526, 2527, 1, 0, 0, 0, 2527, 463, 1, 0, 0, 0, 2528, 2526, 1, 0, 0, 0, 2529, 2530, 6, 232, -1, 0, 2530, 2531, 3, 466, 233, 0, 2531, 2536, 1, 0, 0, 0, 2532, 2533, 10, 1, 0, 0, 2533, 2535, 3, 466, 233, 0, 2534, 2532, 1, 0, 0, 0, 2535, 2538, 1, 0, 0, 0, 2536, 2534, 1, 0, 0, 0, 2536, 2537, 1, 0, 0, 0, 2537, 465, 1, 0, 0, 0, 2538, 2536, 1, 0, 0, 0, 2539, 2540, 6, 233, -1, 0, 2540, 2541, 3, 468, 234, 0, 2541, 2547, 1, 0, 0, 0, 2542, 2543, 10, 1, 0, 0, 2543, 2544, 5, 358, 0, 0, 2544, 2546, 3, 468, 234, 0, 2545, 2542, 1, 0, 0, 0, 2546, 2549, 1, 0, 0, 0, 2547, 2545, 1, 0, 0, 0, 2547, 2548, 1, 0, 0, 0, 2548, 467, 1, 0, 0, 0, 2549, 2547, 1, 0, 0, 0, 2550, 2554, 3, 474, 237, 0, 2551, 2554, 3, 470, 235, 0, 2552, 2554, 3, 472, 236, 0, 2553, 2550, 1, 0, 0, 0, 2553, 2551, 1, 0, 0, 0, 2553, 2552, 1, 0, 0, 0, 2554, 469, 1, 0, 0, 0, 2555, 2556, 3, 474, 237, 0, 2556, 2557, 3, 432, 216, 0, 2557, 471, 1, 0, 0, 0, 2558, 2559, 3, 474, 237, 0, 2559, 2560, 5, 377, 0, 0, 2560, 473, 1, 0, 0, 0, 2561, 2564, 3, 476, 238, 0, 2562, 2564, 3, 492, 246, 0, 2563, 2561, 1, 0, 0, 0, 2563, 2562, 1, 0, 0, 0, 2564, 475, 1, 0, 0, 0, 2565, 2573, 3, 478, 239, 0, 2566, 2573, 3, 480, 240, 0, 2567, 2573, 3, 482, 241, 0, 2568, 2573, 3, 484, 242, 0, 2569, 2573, 3, 486, 243, 0, 2570, 2573, 3, 488, 244, 0, 2571, 2573, 3, 490, 245, 0, 2572, 2565, 1, 0, 0, 0, 2572, 2566, 1, 0, 0, 0, 2572, 2567, 1, 0, 0, 0, 2572, 2568, 1, 0, 0, 0, 2572, 2569, 1, 0, 0, 0, 2572, 2570, 1, 0, 0, 0, 2572, 2571, 1, 0, 0, 0, 2573, 477, 1, 0, 0, 0, 2574, 2575, 5, 372, 0, 0, 2575, 2576, 3, 492, 246, 0, 2576, 479, 1, 0, 0, 0, 2577, 2578, 5, 384, 0, 0, 2578, 2579, 3, 492, 246, 0, 2579, 481, 1, 0, 0, 0, 2580, 2581, 3, 492, 246, 0, 2581, 2582, 5, 367, 0, 0, 2582, 483, 1, 0, 0, 0, 2583, 2584, 5, 337, 0, 0, 2584, 2585, 3, 492, 246, 0, 2585, 485, 1, 0, 0, 0, 2586, 2587, 5, 384, 0, 0, 2587, 2588, 3, 492, 246, 0, 2588, 2589, 5, 367, 0, 0, 2589, 487, 1, 0, 0, 0, 2590, 2591, 5, 372, 0, 0, 2591, 2592, 3, 492, 246, 0, 2592, 2593, 5, 367, 0, 0, 2593, 489, 1, 0, 0, 0, 2594, 2595, 5, 373, 0, 0, 2595, 2596, 3, 492, 246, 0, 2596, 491, 1, 0, 0, 0, 2597, 2600, 3, 496, 248, 0, 2598, 2600, 3, 494, 247, 0, 2599, 2597, 1, 0, 0, 0, 2599, 2598, 1, 0, 0, 0, 2600, 493, 1, 0, 0, 0, 2601, 2602, 5, 366, 0, 0, 2602, 2603, 3, 496, 248, 0, 2603, 495, 1, 0, 0, 0, 2604, 2610, 3, 1080, 540, 0, 2605, 2606, 5, 371, 0, 0, 2606, 2607, 3, 458, 229, 0, 2607, 2608, 5, 382, 0, 0, 2608, 2610, 1, 0, 0, 0, 2609, 2604, 1, 0, 0, 0, 2609, 2605, 1, 0, 0, 0, 2610, 497, 1, 0, 0, 0, 2611, 2612, 5, 230, 0, 0, 2612, 2613, 3, 772, 386, 0, 2613, 499, 1, 0, 0, 0, 2614, 2615, 5, 234, 0, 0, 2615, 2616, 3, 502, 251, 0, 2616, 501, 1, 0, 0, 0, 2617, 2622, 3, 504, 252, 0, 2618, 2619, 5, 361, 0, 0, 2619, 2621, 3, 504, 252, 0, 2620, 2618, 1, 0, 0, 0, 2621, 2624, 1, 0, 0, 0, 2622, 2620, 1, 0, 0, 0, 2622, 2623, 1, 0, 0, 0, 2623, 503, 1, 0, 0, 0, 2624, 2622, 1, 0, 0, 0, 2625, 2627, 3, 506, 253, 0, 2626, 2628, 3, 508, 254, 0, 2627, 2626, 1, 0, 0, 0, 2627, 2628, 1, 0, 0, 0, 2628, 505, 1, 0, 0, 0, 2629, 2630, 3, 1084, 542, 0, 2630, 507, 1, 0, 0, 0, 2631, 2632, 5, 27, 0, 0, 2632, 2633, 3, 1092, 546, 0, 2633, 509, 1, 0, 0, 0, 2634, 2635, 5, 102, 0, 0, 2635, 2636, 5, 41, 0, 0, 2636, 2637, 3, 512, 256, 0, 2637, 511, 1, 0, 0, 0, 2638, 2643, 3, 514, 257, 0, 2639, 2640, 5, 361, 0, 0, 2640, 2642, 3, 514, 257, 0, 2641, 2639, 1, 0, 0, 0, 2642, 2645, 1, 0, 0, 0, 2643, 2641, 1, 0, 0, 0, 2643, 2644, 1, 0, 0, 0, 2644, 2648, 1, 0, 0, 0, 2645, 2643, 1, 0, 0, 0, 2646, 2648, 3, 516, 258, 0, 2647, 2638, 1, 0, 0, 0, 2647, 2646, 1, 0, 0, 0, 2648, 513, 1, 0, 0, 0, 2649, 2650, 3, 912, 456, 0, 2650, 515, 1, 0, 0, 0, 2651, 2652, 5, 371, 0, 0, 2652, 2653, 5, 382, 0, 0, 2653, 517, 1, 0, 0, 0, 2654, 2655, 5, 162, 0, 0, 2655, 2656, 5, 41, 0, 0, 2656, 2657, 3, 520, 260, 0, 2657, 519, 1, 0, 0, 0, 2658, 2663, 3, 522, 261, 0, 2659, 2660, 5, 361, 0, 0, 2660, 2662, 3, 522, 261, 0, 2661, 2659, 1, 0, 0, 0, 2662, 2665, 1, 0, 0, 0, 2663, 2661, 1, 0, 0, 0, 2663, 2664, 1, 0, 0, 0, 2664, 521, 1, 0, 0, 0, 2665, 2663, 1, 0, 0, 0, 2666, 2668, 3, 524, 262, 0, 2667, 2669, 3, 526, 263, 0, 2668, 2667, 1, 0, 0, 0, 2668, 2669, 1, 0, 0, 0, 2669, 2671, 1, 0, 0, 0, 2670, 2672, 3, 528, 264, 0, 2671, 2670, 1, 0, 0, 0, 2671, 2672, 1, 0, 0, 0, 2672, 523, 1, 0, 0, 0, 2673, 2674, 3, 840, 420, 0, 2674, 525, 1, 0, 0, 0, 2675, 2676, 7, 9, 0, 0, 2676, 527, 1, 0, 0, 0, 2677, 2678, 5, 155, 0, 0, 2678, 2682, 5, 288, 0, 0, 2679, 2680, 5, 155, 0, 0, 2680, 2682, 5, 295, 0, 0, 2681, 2677, 1, 0, 0, 0, 2681, 2679, 1, 0, 0, 0, 2682, 529, 1, 0, 0, 0, 2683, 2684, 5, 132, 0, 0, 2684, 2685, 3, 852, 426, 0, 2685, 531, 1, 0, 0, 0, 2686, 2687, 3, 534, 267, 0, 2687, 2688, 3, 852, 426, 0, 2688, 533, 1, 0, 0, 0, 2689, 2690, 7, 10, 0, 0, 2690, 535, 1, 0, 0, 0, 2691, 2695, 3, 538, 269, 0, 2692, 2695, 3, 542, 271, 0, 2693, 2695, 3, 570, 285, 0, 2694, 2691, 1, 0, 0, 0, 2694, 2692, 1, 0, 0, 0, 2694, 2693, 1, 0, 0, 0, 2695, 537, 1, 0, 0, 0, 2696, 2701, 5, 383, 0, 0, 2697, 2698, 3, 546, 273, 0, 2698, 2699, 3, 1062, 531, 0, 2699, 2701, 1, 0, 0, 0, 2700, 2696, 1, 0, 0, 0, 2700, 2697, 1, 0, 0, 0, 2701, 539, 1, 0, 0, 0, 2702, 2703, 3, 546, 273, 0, 2703, 2704, 3, 1062, 531, 0, 2704, 541, 1, 0, 0, 0, 2705, 2710, 3, 544, 272, 0, 2706, 2707, 3, 548, 274, 0, 2707, 2708, 3, 1062, 531, 0, 2708, 2710, 1, 0, 0, 0, 2709, 2705, 1, 0, 0, 0, 2709, 2706, 1, 0, 0, 0, 2710, 543, 1, 0, 0, 0, 2711, 2712, 7, 11, 0, 0, 2712, 545, 1, 0, 0, 0, 2713, 2715, 5, 383, 0, 0, 2714, 2716, 3, 550, 275, 0, 2715, 2714, 1, 0, 0, 0, 2715, 2716, 1, 0, 0, 0, 2716, 547, 1, 0, 0, 0, 2717, 2722, 5, 334, 0, 0, 2718, 2719, 5, 383, 0, 0, 2719, 2721, 5, 334, 0, 0, 2720, 2718, 1, 0, 0, 0, 2721, 2724, 1, 0, 0, 0, 2722, 2720, 1, 0, 0, 0, 2722, 2723, 1, 0, 0, 0, 2723, 2725, 1, 0, 0, 0, 2724, 2722, 1, 0, 0, 0, 2725, 2727, 5, 383, 0, 0, 2726, 2728, 3, 550, 275, 0, 2727, 2726, 1, 0, 0, 0, 2727, 2728, 1, 0, 0, 0, 2728, 549, 1, 0, 0, 0, 2729, 2730, 3, 1060, 530, 0, 2730, 2731, 5, 383, 0, 0, 2731, 2733, 1, 0, 0, 0, 2732, 2729, 1, 0, 0, 0, 2733, 2734, 1, 0, 0, 0, 2734, 2732, 1, 0, 0, 0, 2734, 2735, 1, 0, 0, 0, 2735, 551, 1, 0, 0, 0, 2736, 2737, 3, 568, 284, 0, 2737, 2738, 3, 1064, 532, 0, 2738, 2743, 1, 0, 0, 0, 2739, 2743, 3, 1066, 533, 0, 2740, 2743, 3, 556, 278, 0, 2741, 2743, 3, 570, 285, 0, 2742, 2736, 1, 0, 0, 0, 2742, 2739, 1, 0, 0, 0, 2742, 2740, 1, 0, 0, 0, 2742, 2741, 1, 0, 0, 0, 2743, 553, 1, 0, 0, 0, 2744, 2746, 3, 568, 284, 0, 2745, 2744, 1, 0, 0, 0, 2745, 2746, 1, 0, 0, 0, 2746, 2747, 1, 0, 0, 0, 2747, 2748, 3, 1064, 532, 0, 2748, 555, 1, 0, 0, 0, 2749, 2750, 7, 12, 0, 0, 2750, 557, 1, 0, 0, 0, 2751, 2754, 3, 560, 280, 0, 2752, 2754, 3, 570, 285, 0, 2753, 2751, 1, 0, 0, 0, 2753, 2752, 1, 0, 0, 0, 2754, 559, 1, 0, 0, 0, 2755, 2757, 3, 568, 284, 0, 2756, 2755, 1, 0, 0, 0, 2756, 2757, 1, 0, 0, 0, 2757, 2758, 1, 0, 0, 0, 2758, 2759, 3, 1068, 534, 0, 2759, 561, 1, 0, 0, 0, 2760, 2761, 3, 568, 284, 0, 2761, 2762, 3, 1074, 537, 0, 2762, 2766, 1, 0, 0, 0, 2763, 2766, 3, 1076, 538, 0, 2764, 2766, 3, 570, 285, 0, 2765, 2760, 1, 0, 0, 0, 2765, 2763, 1, 0, 0, 0, 2765, 2764, 1, 0, 0, 0, 2766, 563, 1, 0, 0, 0, 2767, 2770, 3, 566, 283, 0, 2768, 2770, 3, 570, 285, 0, 2769, 2767, 1, 0, 0, 0, 2769, 2768, 1, 0, 0, 0, 2770, 565, 1, 0, 0, 0, 2771, 2773, 3, 568, 284, 0, 2772, 2771, 1, 0, 0, 0, 2772, 2773, 1, 0, 0, 0, 2773, 2774, 1, 0, 0, 0, 2774, 2775, 3, 1078, 539, 0, 2775, 567, 1, 0, 0, 0, 2776, 2778, 3, 536, 268, 0, 2777, 2779, 5, 383, 0, 0, 2778, 2777, 1, 0, 0, 0, 2778, 2779, 1, 0, 0, 0, 2779, 2785, 1, 0, 0, 0, 2780, 2781, 3, 1056, 528, 0, 2781, 2782, 5, 375, 0, 0, 2782, 2784, 1, 0, 0, 0, 2783, 2780, 1, 0, 0, 0, 2784, 2787, 1, 0, 0, 0, 2785, 2783, 1, 0, 0, 0, 2785, 2786, 1, 0, 0, 0, 2786, 2796, 1, 0, 0, 0, 2787, 2785, 1, 0, 0, 0, 2788, 2789, 3, 1056, 528, 0, 2789, 2790, 5, 375, 0, 0, 2790, 2792, 1, 0, 0, 0, 2791, 2788, 1, 0, 0, 0, 2792, 2793, 1, 0, 0, 0, 2793, 2791, 1, 0, 0, 0, 2793, 2794, 1, 0, 0, 0, 2794, 2796, 1, 0, 0, 0, 2795, 2776, 1, 0, 0, 0, 2795, 2791, 1, 0, 0, 0, 2796, 569, 1, 0, 0, 0, 2797, 2798, 5, 326, 0, 0, 2798, 571, 1, 0, 0, 0, 2799, 2800, 5, 369, 0, 0, 2800, 2801, 3, 574, 287, 0, 2801, 2802, 5, 380, 0, 0, 2802, 573, 1, 0, 0, 0, 2803, 2804, 3, 576, 288, 0, 2804, 575, 1, 0, 0, 0, 2805, 2810, 3, 578, 289, 0, 2806, 2807, 5, 361, 0, 0, 2807, 2809, 3, 578, 289, 0, 2808, 2806, 1, 0, 0, 0, 2809, 2812, 1, 0, 0, 0, 2810, 2808, 1, 0, 0, 0, 2810, 2811, 1, 0, 0, 0, 2811, 577, 1, 0, 0, 0, 2812, 2810, 1, 0, 0, 0, 2813, 2816, 3, 580, 290, 0, 2814, 2816, 3, 600, 300, 0, 2815, 2813, 1, 0, 0, 0, 2815, 2814, 1, 0, 0, 0, 2816, 579, 1, 0, 0, 0, 2817, 2820, 3, 582, 291, 0, 2818, 2820, 3, 584, 292, 0, 2819, 2817, 1, 0, 0, 0, 2819, 2818, 1, 0, 0, 0, 2820, 581, 1, 0, 0, 0, 2821, 2823, 3, 1140, 570, 0, 2822, 2824, 5, 318, 0, 0, 2823, 2822, 1, 0, 0, 0, 2823, 2824, 1, 0, 0, 0, 2824, 2825, 1, 0, 0, 0, 2825, 2826, 3, 1070, 535, 0, 2826, 2828, 1, 0, 0, 0, 2827, 2821, 1, 0, 0, 0, 2827, 2828, 1, 0, 0, 0, 2828, 2829, 1, 0, 0, 0, 2829, 2831, 5, 371, 0, 0, 2830, 2832, 3, 590, 295, 0, 2831, 2830, 1, 0, 0, 0, 2831, 2832, 1, 0, 0, 0, 2832, 2834, 1, 0, 0, 0, 2833, 2835, 3, 588, 294, 0, 2834, 2833, 1, 0, 0, 0, 2834, 2835, 1, 0, 0, 0, 2835, 2836, 1, 0, 0, 0, 2836, 2837, 5, 382, 0, 0, 2837, 583, 1, 0, 0, 0, 2838, 2840, 3, 1140, 570, 0, 2839, 2841, 5, 318, 0, 0, 2840, 2839, 1, 0, 0, 0, 2840, 2841, 1, 0, 0, 0, 2841, 2842, 1, 0, 0, 0, 2842, 2845, 3, 586, 293, 0, 2843, 2844, 5, 27, 0, 0, 2844, 2846, 3, 590, 295, 0, 2845, 2843, 1, 0, 0, 0, 2845, 2846, 1, 0, 0, 0, 2846, 585, 1, 0, 0, 0, 2847, 2849, 3, 1070, 535, 0, 2848, 2850, 3, 588, 294, 0, 2849, 2848, 1, 0, 0, 0, 2849, 2850, 1, 0, 0, 0, 2850, 2853, 1, 0, 0, 0, 2851, 2853, 3, 588, 294, 0, 2852, 2847, 1, 0, 0, 0, 2852, 2851, 1, 0, 0, 0, 2853, 587, 1, 0, 0, 0, 2854, 2856, 3, 594, 297, 0, 2855, 2857, 3, 592, 296, 0, 2856, 2855, 1, 0, 0, 0, 2856, 2857, 1, 0, 0, 0, 2857, 2860, 1, 0, 0, 0, 2858, 2860, 3, 592, 296, 0, 2859, 2854, 1, 0, 0, 0, 2859, 2858, 1, 0, 0, 0, 2860, 589, 1, 0, 0, 0, 2861, 2862, 3, 1112, 556, 0, 2862, 591, 1, 0, 0, 0, 2863, 2869, 3, 596, 298, 0, 2864, 2869, 3, 598, 299, 0, 2865, 2866, 3, 596, 298, 0, 2866, 2867, 3, 598, 299, 0, 2867, 2869, 1, 0, 0, 0, 2868, 2863, 1, 0, 0, 0, 2868, 2864, 1, 0, 0, 0, 2868, 2865, 1, 0, 0, 0, 2869, 593, 1, 0, 0, 0, 2870, 2872, 3, 658, 329, 0, 2871, 2870, 1, 0, 0, 0, 2871, 2872, 1, 0, 0, 0, 2872, 2873, 1, 0, 0, 0, 2873, 2874, 5, 1, 0, 0, 2874, 595, 1, 0, 0, 0, 2875, 2876, 3, 658, 329, 0, 2876, 597, 1, 0, 0, 0, 2877, 2878, 3, 662, 331, 0, 2878, 599, 1, 0, 0, 0, 2879, 2882, 3, 602, 301, 0, 2880, 2882, 3, 604, 302, 0, 2881, 2879, 1, 0, 0, 0, 2881, 2880, 1, 0, 0, 0, 2882, 601, 1, 0, 0, 0, 2883, 2885, 3, 636, 318, 0, 2884, 2883, 1, 0, 0, 0, 2884, 2885, 1, 0, 0, 0, 2885, 2886, 1, 0, 0, 0, 2886, 2888, 3, 1144, 572, 0, 2887, 2889, 5, 318, 0, 0, 2888, 2887, 1, 0, 0, 0, 2888, 2889, 1, 0, 0, 0, 2889, 2890, 1, 0, 0, 0, 2890, 2891, 3, 1072, 536, 0, 2891, 2893, 1, 0, 0, 0, 2892, 2884, 1, 0, 0, 0, 2892, 2893, 1, 0, 0, 0, 2893, 2896, 1, 0, 0, 0, 2894, 2897, 3, 618, 309, 0, 2895, 2897, 3, 624, 312, 0, 2896, 2894, 1, 0, 0, 0, 2896, 2895, 1, 0, 0, 0, 2897, 603, 1, 0, 0, 0, 2898, 2899, 3, 636, 318, 0, 2899, 2901, 3, 1144, 572, 0, 2900, 2902, 5, 318, 0, 0, 2901, 2900, 1, 0, 0, 0, 2901, 2902, 1, 0, 0, 0, 2902, 2903, 1, 0, 0, 0, 2903, 2904, 3, 606, 303, 0, 2904, 2905, 3, 638, 319, 0, 2905, 605, 1, 0, 0, 0, 2906, 2908, 3, 1072, 536, 0, 2907, 2909, 3, 608, 304, 0, 2908, 2907, 1, 0, 0, 0, 2908, 2909, 1, 0, 0, 0, 2909, 2912, 1, 0, 0, 0, 2910, 2912, 3, 608, 304, 0, 2911, 2906, 1, 0, 0, 0, 2911, 2910, 1, 0, 0, 0, 2912, 607, 1, 0, 0, 0, 2913, 2915, 3, 612, 306, 0, 2914, 2916, 3, 610, 305, 0, 2915, 2914, 1, 0, 0, 0, 2915, 2916, 1, 0, 0, 0, 2916, 2919, 1, 0, 0, 0, 2917, 2919, 3, 610, 305, 0, 2918, 2913, 1, 0, 0, 0, 2918, 2917, 1, 0, 0, 0, 2919, 609, 1, 0, 0, 0, 2920, 2926, 3, 614, 307, 0, 2921, 2926, 3, 616, 308, 0, 2922, 2923, 3, 614, 307, 0, 2923, 2924, 3, 616, 308, 0, 2924, 2926, 1, 0, 0, 0, 2925, 2920, 1, 0, 0, 0, 2925, 2921, 1, 0, 0, 0, 2925, 2922, 1, 0, 0, 0, 2926, 611, 1, 0, 0, 0, 2927, 2929, 3, 658, 329, 0, 2928, 2927, 1, 0, 0, 0, 2928, 2929, 1, 0, 0, 0, 2929, 2930, 1, 0, 0, 0, 2930, 2931, 5, 1, 0, 0, 2931, 613, 1, 0, 0, 0, 2932, 2933, 3, 658, 329, 0, 2933, 615, 1, 0, 0, 0, 2934, 2935, 3, 662, 331, 0, 2935, 617, 1, 0, 0, 0, 2936, 2939, 3, 620, 310, 0, 2937, 2939, 3, 622, 311, 0, 2938, 2936, 1, 0, 0, 0, 2938, 2937, 1, 0, 0, 0, 2939, 619, 1, 0, 0, 0, 2940, 2941, 3, 632, 316, 0, 2941, 2942, 3, 626, 313, 0, 2942, 2943, 3, 634, 317, 0, 2943, 621, 1, 0, 0, 0, 2944, 2945, 3, 634, 317, 0, 2945, 2946, 3, 628, 314, 0, 2946, 2947, 3, 632, 316, 0, 2947, 623, 1, 0, 0, 0, 2948, 2949, 3, 632, 316, 0, 2949, 2950, 3, 630, 315, 0, 2950, 2951, 3, 634, 317, 0, 2951, 625, 1, 0, 0, 0, 2952, 2953, 5, 344, 0, 0, 2953, 2954, 3, 608, 304, 0, 2954, 2955, 5, 329, 0, 0, 2955, 627, 1, 0, 0, 0, 2956, 2957, 5, 338, 0, 0, 2957, 2958, 3, 608, 304, 0, 2958, 2959, 5, 348, 0, 0, 2959, 629, 1, 0, 0, 0, 2960, 2961, 5, 355, 0, 0, 2961, 2962, 3, 608, 304, 0, 2962, 2963, 5, 349, 0, 0, 2963, 631, 1, 0, 0, 0, 2964, 2965, 5, 371, 0, 0, 2965, 2966, 3, 654, 327, 0, 2966, 2967, 5, 382, 0, 0, 2967, 2974, 1, 0, 0, 0, 2968, 2970, 5, 371, 0, 0, 2969, 2971, 3, 588, 294, 0, 2970, 2969, 1, 0, 0, 0, 2970, 2971, 1, 0, 0, 0, 2971, 2972, 1, 0, 0, 0, 2972, 2974, 5, 382, 0, 0, 2973, 2964, 1, 0, 0, 0, 2973, 2968, 1, 0, 0, 0, 2974, 633, 1, 0, 0, 0, 2975, 2976, 5, 371, 0, 0, 2976, 2977, 3, 656, 328, 0, 2977, 2978, 5, 382, 0, 0, 2978, 2985, 1, 0, 0, 0, 2979, 2981, 5, 371, 0, 0, 2980, 2982, 3, 588, 294, 0, 2981, 2980, 1, 0, 0, 0, 2981, 2982, 1, 0, 0, 0, 2982, 2983, 1, 0, 0, 0, 2983, 2985, 5, 382, 0, 0, 2984, 2975, 1, 0, 0, 0, 2984, 2979, 1, 0, 0, 0, 2985, 635, 1, 0, 0, 0, 2986, 2987, 7, 13, 0, 0, 2987, 637, 1, 0, 0, 0, 2988, 2989, 5, 280, 0, 0, 2989, 2990, 3, 640, 320, 0, 2990, 639, 1, 0, 0, 0, 2991, 2994, 3, 642, 321, 0, 2992, 2994, 3, 648, 324, 0, 2993, 2991, 1, 0, 0, 0, 2993, 2992, 1, 0, 0, 0, 2994, 641, 1, 0, 0, 0, 2995, 2998, 3, 644, 322, 0, 2996, 2998, 3, 646, 323, 0, 2997, 2995, 1, 0, 0, 0, 2997, 2996, 1, 0, 0, 0, 2998, 643, 1, 0, 0, 0, 2999, 3000, 5, 371, 0, 0, 3000, 3001, 3, 654, 327, 0, 3001, 3002, 3, 650, 325, 0, 3002, 3003, 3, 656, 328, 0, 3003, 3004, 5, 382, 0, 0, 3004, 645, 1, 0, 0, 0, 3005, 3006, 5, 371, 0, 0, 3006, 3007, 3, 656, 328, 0, 3007, 3008, 5, 336, 0, 0, 3008, 3009, 3, 654, 327, 0, 3009, 3010, 5, 382, 0, 0, 3010, 647, 1, 0, 0, 0, 3011, 3012, 5, 371, 0, 0, 3012, 3013, 3, 654, 327, 0, 3013, 3014, 3, 652, 326, 0, 3014, 3015, 3, 656, 328, 0, 3015, 3016, 5, 382, 0, 0, 3016, 649, 1, 0, 0, 0, 3017, 3018, 7, 14, 0, 0, 3018, 651, 1, 0, 0, 0, 3019, 3020, 7, 15, 0, 0, 3020, 653, 1, 0, 0, 0, 3021, 3022, 3, 1112, 556, 0, 3022, 655, 1, 0, 0, 0, 3023, 3024, 3, 1112, 556, 0, 3024, 657, 1, 0, 0, 0, 3025, 3026, 5, 292, 0, 0, 3026, 3033, 3, 1080, 540, 0, 3027, 3028, 5, 294, 0, 0, 3028, 3033, 3, 660, 330, 0, 3029, 3030, 3, 388, 194, 0, 3030, 3031, 3, 660, 330, 0, 3031, 3033, 1, 0, 0, 0, 3032, 3025, 1, 0, 0, 0, 3032, 3027, 1, 0, 0, 0, 3032, 3029, 1, 0, 0, 0, 3033, 659, 1, 0, 0, 0, 3034, 3039, 3, 1080, 540, 0, 3035, 3036, 5, 358, 0, 0, 3036, 3038, 3, 1080, 540, 0, 3037, 3035, 1, 0, 0, 0, 3038, 3041, 1, 0, 0, 0, 3039, 3037, 1, 0, 0, 0, 3039, 3040, 1, 0, 0, 0, 3040, 661, 1, 0, 0, 0, 3041, 3039, 1, 0, 0, 0, 3042, 3044, 5, 369, 0, 0, 3043, 3045, 3, 664, 332, 0, 3044, 3043, 1, 0, 0, 0, 3044, 3045, 1, 0, 0, 0, 3045, 3046, 1, 0, 0, 0, 3046, 3047, 5, 380, 0, 0, 3047, 663, 1, 0, 0, 0, 3048, 3053, 3, 666, 333, 0, 3049, 3050, 5, 361, 0, 0, 3050, 3052, 3, 666, 333, 0, 3051, 3049, 1, 0, 0, 0, 3052, 3055, 1, 0, 0, 0, 3053, 3051, 1, 0, 0, 0, 3053, 3054, 1, 0, 0, 0, 3054, 665, 1, 0, 0, 0, 3055, 3053, 1, 0, 0, 0, 3056, 3058, 3, 1082, 541, 0, 3057, 3059, 3, 674, 337, 0, 3058, 3057, 1, 0, 0, 0, 3058, 3059, 1, 0, 0, 0, 3059, 3060, 1, 0, 0, 0, 3060, 3061, 3, 668, 334, 0, 3061, 667, 1, 0, 0, 0, 3062, 3063, 3, 672, 336, 0, 3063, 669, 1, 0, 0, 0, 3064, 3066, 5, 278, 0, 0, 3065, 3064, 1, 0, 0, 0, 3065, 3066, 1, 0, 0, 0, 3066, 3067, 1, 0, 0, 0, 3067, 3068, 5, 313, 0, 0, 3068, 3069, 3, 764, 382, 0, 3069, 671, 1, 0, 0, 0, 3070, 3071, 6, 336, -1, 0, 3071, 3128, 3, 676, 338, 0, 3072, 3128, 3, 756, 378, 0, 3073, 3074, 3, 758, 379, 0, 3074, 3075, 5, 372, 0, 0, 3075, 3076, 3, 672, 336, 0, 3076, 3081, 5, 367, 0, 0, 3077, 3078, 5, 370, 0, 0, 3078, 3079, 3, 686, 343, 0, 3079, 3080, 5, 381, 0, 0, 3080, 3082, 1, 0, 0, 0, 3081, 3077, 1, 0, 0, 0, 3081, 3082, 1, 0, 0, 0, 3082, 3084, 1, 0, 0, 0, 3083, 3085, 3, 768, 384, 0, 3084, 3083, 1, 0, 0, 0, 3084, 3085, 1, 0, 0, 0, 3085, 3128, 1, 0, 0, 0, 3086, 3091, 3, 758, 379, 0, 3087, 3088, 5, 370, 0, 0, 3088, 3089, 3, 686, 343, 0, 3089, 3090, 5, 381, 0, 0, 3090, 3092, 1, 0, 0, 0, 3091, 3087, 1, 0, 0, 0, 3091, 3092, 1, 0, 0, 0, 3092, 3094, 1, 0, 0, 0, 3093, 3095, 3, 768, 384, 0, 3094, 3093, 1, 0, 0, 0, 3094, 3095, 1, 0, 0, 0, 3095, 3128, 1, 0, 0, 0, 3096, 3128, 3, 762, 381, 0, 3097, 3099, 5, 25, 0, 0, 3098, 3100, 5, 225, 0, 0, 3099, 3098, 1, 0, 0, 0, 3099, 3100, 1, 0, 0, 0, 3100, 3102, 1, 0, 0, 0, 3101, 3103, 3, 768, 384, 0, 3102, 3101, 1, 0, 0, 0, 3102, 3103, 1, 0, 0, 0, 3103, 3128, 1, 0, 0, 0, 3104, 3106, 5, 25, 0, 0, 3105, 3104, 1, 0, 0, 0, 3105, 3106, 1, 0, 0, 0, 3106, 3107, 1, 0, 0, 0, 3107, 3108, 5, 305, 0, 0, 3108, 3110, 5, 225, 0, 0, 3109, 3111, 3, 768, 384, 0, 3110, 3109, 1, 0, 0, 0, 3110, 3111, 1, 0, 0, 0, 3111, 3128, 1, 0, 0, 0, 3112, 3114, 5, 25, 0, 0, 3113, 3115, 5, 225, 0, 0, 3114, 3113, 1, 0, 0, 0, 3114, 3115, 1, 0, 0, 0, 3115, 3116, 1, 0, 0, 0, 3116, 3117, 5, 372, 0, 0, 3117, 3122, 3, 672, 336, 0, 3118, 3119, 5, 386, 0, 0, 3119, 3121, 3, 672, 336, 0, 3120, 3118, 1, 0, 0, 0, 3121, 3124, 1, 0, 0, 0, 3122, 3120, 1, 0, 0, 0, 3122, 3123, 1, 0, 0, 0, 3123, 3125, 1, 0, 0, 0, 3124, 3122, 1, 0, 0, 0, 3125, 3126, 5, 367, 0, 0, 3126, 3128, 1, 0, 0, 0, 3127, 3070, 1, 0, 0, 0, 3127, 3072, 1, 0, 0, 0, 3127, 3073, 1, 0, 0, 0, 3127, 3086, 1, 0, 0, 0, 3127, 3096, 1, 0, 0, 0, 3127, 3097, 1, 0, 0, 0, 3127, 3105, 1, 0, 0, 0, 3127, 3112, 1, 0, 0, 0, 3128, 3145, 1, 0, 0, 0, 3129, 3130, 10, 1, 0, 0, 3130, 3131, 5, 386, 0, 0, 3131, 3144, 3, 672, 336, 2, 3132, 3133, 10, 7, 0, 0, 3133, 3138, 3, 758, 379, 0, 3134, 3135, 5, 370, 0, 0, 3135, 3136, 3, 686, 343, 0, 3136, 3137, 5, 381, 0, 0, 3137, 3139, 1, 0, 0, 0, 3138, 3134, 1, 0, 0, 0, 3138, 3139, 1, 0, 0, 0, 3139, 3141, 1, 0, 0, 0, 3140, 3142, 3, 768, 384, 0, 3141, 3140, 1, 0, 0, 0, 3141, 3142, 1, 0, 0, 0, 3142, 3144, 1, 0, 0, 0, 3143, 3129, 1, 0, 0, 0, 3143, 3132, 1, 0, 0, 0, 3144, 3147, 1, 0, 0, 0, 3145, 3143, 1, 0, 0, 0, 3145, 3146, 1, 0, 0, 0, 3146, 673, 1, 0, 0, 0, 3147, 3145, 1, 0, 0, 0, 3148, 3149, 7, 16, 0, 0, 3149, 675, 1, 0, 0, 0, 3150, 3158, 3, 678, 339, 0, 3151, 3158, 3, 680, 340, 0, 3152, 3158, 3, 682, 341, 0, 3153, 3158, 3, 690, 345, 0, 3154, 3158, 3, 710, 355, 0, 3155, 3158, 3, 728, 364, 0, 3156, 3158, 3, 730, 365, 0, 3157, 3150, 1, 0, 0, 0, 3157, 3151, 1, 0, 0, 0, 3157, 3152, 1, 0, 0, 0, 3157, 3153, 1, 0, 0, 0, 3157, 3154, 1, 0, 0, 0, 3157, 3155, 1, 0, 0, 0, 3157, 3156, 1, 0, 0, 0, 3158, 677, 1, 0, 0, 0, 3159, 3161, 7, 17, 0, 0, 3160, 3162, 3, 768, 384, 0, 3161, 3160, 1, 0, 0, 0, 3161, 3162, 1, 0, 0, 0, 3162, 679, 1, 0, 0, 0, 3163, 3173, 5, 202, 0, 0, 3164, 3168, 5, 371, 0, 0, 3165, 3166, 3, 684, 342, 0, 3166, 3167, 5, 361, 0, 0, 3167, 3169, 1, 0, 0, 0, 3168, 3165, 1, 0, 0, 0, 3168, 3169, 1, 0, 0, 0, 3169, 3170, 1, 0, 0, 0, 3170, 3171, 3, 686, 343, 0, 3171, 3172, 5, 382, 0, 0, 3172, 3174, 1, 0, 0, 0, 3173, 3164, 1, 0, 0, 0, 3173, 3174, 1, 0, 0, 0, 3174, 3176, 1, 0, 0, 0, 3175, 3177, 3, 768, 384, 0, 3176, 3175, 1, 0, 0, 0, 3176, 3177, 1, 0, 0, 0, 3177, 3199, 1, 0, 0, 0, 3178, 3183, 5, 50, 0, 0, 3179, 3180, 5, 371, 0, 0, 3180, 3181, 3, 688, 344, 0, 3181, 3182, 5, 382, 0, 0, 3182, 3184, 1, 0, 0, 0, 3183, 3179, 1, 0, 0, 0, 3183, 3184, 1, 0, 0, 0, 3184, 3186, 1, 0, 0, 0, 3185, 3187, 3, 768, 384, 0, 3186, 3185, 1, 0, 0, 0, 3186, 3187, 1, 0, 0, 0, 3187, 3199, 1, 0, 0, 0, 3188, 3193, 5, 227, 0, 0, 3189, 3190, 5, 371, 0, 0, 3190, 3191, 3, 686, 343, 0, 3191, 3192, 5, 382, 0, 0, 3192, 3194, 1, 0, 0, 0, 3193, 3189, 1, 0, 0, 0, 3193, 3194, 1, 0, 0, 0, 3194, 3196, 1, 0, 0, 0, 3195, 3197, 3, 768, 384, 0, 3196, 3195, 1, 0, 0, 0, 3196, 3197, 1, 0, 0, 0, 3197, 3199, 1, 0, 0, 0, 3198, 3163, 1, 0, 0, 0, 3198, 3178, 1, 0, 0, 0, 3198, 3188, 1, 0, 0, 0, 3199, 681, 1, 0, 0, 0, 3200, 3210, 5, 43, 0, 0, 3201, 3205, 5, 371, 0, 0, 3202, 3203, 3, 684, 342, 0, 3203, 3204, 5, 361, 0, 0, 3204, 3206, 1, 0, 0, 0, 3205, 3202, 1, 0, 0, 0, 3205, 3206, 1, 0, 0, 0, 3206, 3207, 1, 0, 0, 0, 3207, 3208, 3, 686, 343, 0, 3208, 3209, 5, 382, 0, 0, 3209, 3211, 1, 0, 0, 0, 3210, 3201, 1, 0, 0, 0, 3210, 3211, 1, 0, 0, 0, 3211, 3213, 1, 0, 0, 0, 3212, 3214, 3, 768, 384, 0, 3213, 3212, 1, 0, 0, 0, 3213, 3214, 1, 0, 0, 0, 3214, 3236, 1, 0, 0, 0, 3215, 3220, 5, 36, 0, 0, 3216, 3217, 5, 371, 0, 0, 3217, 3218, 3, 688, 344, 0, 3218, 3219, 5, 382, 0, 0, 3219, 3221, 1, 0, 0, 0, 3220, 3216, 1, 0, 0, 0, 3220, 3221, 1, 0, 0, 0, 3221, 3223, 1, 0, 0, 0, 3222, 3224, 3, 768, 384, 0, 3223, 3222, 1, 0, 0, 0, 3223, 3224, 1, 0, 0, 0, 3224, 3236, 1, 0, 0, 0, 3225, 3230, 5, 226, 0, 0, 3226, 3227, 5, 371, 0, 0, 3227, 3228, 3, 686, 343, 0, 3228, 3229, 5, 382, 0, 0, 3229, 3231, 1, 0, 0, 0, 3230, 3226, 1, 0, 0, 0, 3230, 3231, 1, 0, 0, 0, 3231, 3233, 1, 0, 0, 0, 3232, 3234, 3, 768, 384, 0, 3233, 3232, 1, 0, 0, 0, 3233, 3234, 1, 0, 0, 0, 3234, 3236, 1, 0, 0, 0, 3235, 3200, 1, 0, 0, 0, 3235, 3215, 1, 0, 0, 0, 3235, 3225, 1, 0, 0, 0, 3236, 683, 1, 0, 0, 0, 3237, 3238, 3, 1124, 562, 0, 3238, 685, 1, 0, 0, 0, 3239, 3240, 3, 1124, 562, 0, 3240, 687, 1, 0, 0, 0, 3241, 3242, 3, 1124, 562, 0, 3242, 689, 1, 0, 0, 0, 3243, 3246, 3, 692, 346, 0, 3244, 3246, 3, 708, 354, 0, 3245, 3243, 1, 0, 0, 0, 3245, 3244, 1, 0, 0, 0, 3246, 691, 1, 0, 0, 0, 3247, 3250, 3, 694, 347, 0, 3248, 3250, 3, 702, 351, 0, 3249, 3247, 1, 0, 0, 0, 3249, 3248, 1, 0, 0, 0, 3250, 693, 1, 0, 0, 0, 3251, 3254, 3, 696, 348, 0, 3252, 3254, 3, 698, 349, 0, 3253, 3251, 1, 0, 0, 0, 3253, 3252, 1, 0, 0, 0, 3254, 695, 1, 0, 0, 0, 3255, 3257, 5, 113, 0, 0, 3256, 3258, 3, 768, 384, 0, 3257, 3256, 1, 0, 0, 0, 3257, 3258, 1, 0, 0, 0, 3258, 3302, 1, 0, 0, 0, 3259, 3261, 5, 115, 0, 0, 3260, 3262, 3, 768, 384, 0, 3261, 3260, 1, 0, 0, 0, 3261, 3262, 1, 0, 0, 0, 3262, 3302, 1, 0, 0, 0, 3263, 3265, 5, 117, 0, 0, 3264, 3266, 3, 768, 384, 0, 3265, 3264, 1, 0, 0, 0, 3265, 3266, 1, 0, 0, 0, 3266, 3302, 1, 0, 0, 0, 3267, 3269, 5, 119, 0, 0, 3268, 3270, 3, 768, 384, 0, 3269, 3268, 1, 0, 0, 0, 3269, 3270, 1, 0, 0, 0, 3270, 3302, 1, 0, 0, 0, 3271, 3273, 5, 121, 0, 0, 3272, 3274, 3, 768, 384, 0, 3273, 3272, 1, 0, 0, 0, 3273, 3274, 1, 0, 0, 0, 3274, 3302, 1, 0, 0, 0, 3275, 3277, 5, 123, 0, 0, 3276, 3278, 3, 768, 384, 0, 3277, 3276, 1, 0, 0, 0, 3277, 3278, 1, 0, 0, 0, 3278, 3302, 1, 0, 0, 0, 3279, 3281, 5, 197, 0, 0, 3280, 3282, 3, 768, 384, 0, 3281, 3280, 1, 0, 0, 0, 3281, 3282, 1, 0, 0, 0, 3282, 3302, 1, 0, 0, 0, 3283, 3288, 5, 111, 0, 0, 3284, 3285, 5, 371, 0, 0, 3285, 3286, 3, 704, 352, 0, 3286, 3287, 5, 382, 0, 0, 3287, 3289, 1, 0, 0, 0, 3288, 3284, 1, 0, 0, 0, 3288, 3289, 1, 0, 0, 0, 3289, 3291, 1, 0, 0, 0, 3290, 3292, 3, 768, 384, 0, 3291, 3290, 1, 0, 0, 0, 3291, 3292, 1, 0, 0, 0, 3292, 3302, 1, 0, 0, 0, 3293, 3295, 5, 35, 0, 0, 3294, 3296, 3, 768, 384, 0, 3295, 3294, 1, 0, 0, 0, 3295, 3296, 1, 0, 0, 0, 3296, 3302, 1, 0, 0, 0, 3297, 3299, 5, 191, 0, 0, 3298, 3297, 1, 0, 0, 0, 3298, 3299, 1, 0, 0, 0, 3299, 3300, 1, 0, 0, 0, 3300, 3302, 3, 700, 350, 0, 3301, 3255, 1, 0, 0, 0, 3301, 3259, 1, 0, 0, 0, 3301, 3263, 1, 0, 0, 0, 3301, 3267, 1, 0, 0, 0, 3301, 3271, 1, 0, 0, 0, 3301, 3275, 1, 0, 0, 0, 3301, 3279, 1, 0, 0, 0, 3301, 3283, 1, 0, 0, 0, 3301, 3293, 1, 0, 0, 0, 3301, 3298, 1, 0, 0, 0, 3302, 697, 1, 0, 0, 0, 3303, 3305, 5, 214, 0, 0, 3304, 3306, 3, 768, 384, 0, 3305, 3304, 1, 0, 0, 0, 3305, 3306, 1, 0, 0, 0, 3306, 3348, 1, 0, 0, 0, 3307, 3309, 5, 215, 0, 0, 3308, 3310, 3, 768, 384, 0, 3309, 3308, 1, 0, 0, 0, 3309, 3310, 1, 0, 0, 0, 3310, 3348, 1, 0, 0, 0, 3311, 3313, 5, 216, 0, 0, 3312, 3314, 3, 768, 384, 0, 3313, 3312, 1, 0, 0, 0, 3313, 3314, 1, 0, 0, 0, 3314, 3348, 1, 0, 0, 0, 3315, 3317, 5, 217, 0, 0, 3316, 3318, 3, 768, 384, 0, 3317, 3316, 1, 0, 0, 0, 3317, 3318, 1, 0, 0, 0, 3318, 3348, 1, 0, 0, 0, 3319, 3321, 5, 218, 0, 0, 3320, 3322, 3, 768, 384, 0, 3321, 3320, 1, 0, 0, 0, 3321, 3322, 1, 0, 0, 0, 3322, 3348, 1, 0, 0, 0, 3323, 3325, 5, 219, 0, 0, 3324, 3326, 3, 768, 384, 0, 3325, 3324, 1, 0, 0, 0, 3325, 3326, 1, 0, 0, 0, 3326, 3348, 1, 0, 0, 0, 3327, 3329, 5, 224, 0, 0, 3328, 3330, 3, 768, 384, 0, 3329, 3328, 1, 0, 0, 0, 3329, 3330, 1, 0, 0, 0, 3330, 3348, 1, 0, 0, 0, 3331, 3336, 5, 213, 0, 0, 3332, 3333, 5, 371, 0, 0, 3333, 3334, 3, 704, 352, 0, 3334, 3335, 5, 382, 0, 0, 3335, 3337, 1, 0, 0, 0, 3336, 3332, 1, 0, 0, 0, 3336, 3337, 1, 0, 0, 0, 3337, 3339, 1, 0, 0, 0, 3338, 3340, 3, 768, 384, 0, 3339, 3338, 1, 0, 0, 0, 3339, 3340, 1, 0, 0, 0, 3340, 3348, 1, 0, 0, 0, 3341, 3343, 5, 212, 0, 0, 3342, 3344, 3, 768, 384, 0, 3343, 3342, 1, 0, 0, 0, 3343, 3344, 1, 0, 0, 0, 3344, 3348, 1, 0, 0, 0, 3345, 3346, 5, 221, 0, 0, 3346, 3348, 3, 700, 350, 0, 3347, 3303, 1, 0, 0, 0, 3347, 3307, 1, 0, 0, 0, 3347, 3311, 1, 0, 0, 0, 3347, 3315, 1, 0, 0, 0, 3347, 3319, 1, 0, 0, 0, 3347, 3323, 1, 0, 0, 0, 3347, 3327, 1, 0, 0, 0, 3347, 3331, 1, 0, 0, 0, 3347, 3341, 1, 0, 0, 0, 3347, 3345, 1, 0, 0, 0, 3348, 699, 1, 0, 0, 0, 3349, 3351, 5, 114, 0, 0, 3350, 3352, 3, 768, 384, 0, 3351, 3350, 1, 0, 0, 0, 3351, 3352, 1, 0, 0, 0, 3352, 3394, 1, 0, 0, 0, 3353, 3355, 5, 116, 0, 0, 3354, 3356, 3, 768, 384, 0, 3355, 3354, 1, 0, 0, 0, 3355, 3356, 1, 0, 0, 0, 3356, 3394, 1, 0, 0, 0, 3357, 3359, 5, 118, 0, 0, 3358, 3360, 3, 768, 384, 0, 3359, 3358, 1, 0, 0, 0, 3359, 3360, 1, 0, 0, 0, 3360, 3394, 1, 0, 0, 0, 3361, 3363, 5, 120, 0, 0, 3362, 3364, 3, 768, 384, 0, 3363, 3362, 1, 0, 0, 0, 3363, 3364, 1, 0, 0, 0, 3364, 3394, 1, 0, 0, 0, 3365, 3367, 5, 122, 0, 0, 3366, 3368, 3, 768, 384, 0, 3367, 3366, 1, 0, 0, 0, 3367, 3368, 1, 0, 0, 0, 3368, 3394, 1, 0, 0, 0, 3369, 3371, 5, 124, 0, 0, 3370, 3372, 3, 768, 384, 0, 3371, 3370, 1, 0, 0, 0, 3371, 3372, 1, 0, 0, 0, 3372, 3394, 1, 0, 0, 0, 3373, 3374, 5, 196, 0, 0, 3374, 3376, 5, 112, 0, 0, 3375, 3377, 3, 768, 384, 0, 3376, 3375, 1, 0, 0, 0, 3376, 3377, 1, 0, 0, 0, 3377, 3394, 1, 0, 0, 0, 3378, 3383, 5, 112, 0, 0, 3379, 3380, 5, 371, 0, 0, 3380, 3381, 3, 704, 352, 0, 3381, 3382, 5, 382, 0, 0, 3382, 3384, 1, 0, 0, 0, 3383, 3379, 1, 0, 0, 0, 3383, 3384, 1, 0, 0, 0, 3384, 3386, 1, 0, 0, 0, 3385, 3387, 3, 768, 384, 0, 3386, 3385, 1, 0, 0, 0, 3386, 3387, 1, 0, 0, 0, 3387, 3394, 1, 0, 0, 0, 3388, 3389, 5, 34, 0, 0, 3389, 3391, 5, 112, 0, 0, 3390, 3392, 3, 768, 384, 0, 3391, 3390, 1, 0, 0, 0, 3391, 3392, 1, 0, 0, 0, 3392, 3394, 1, 0, 0, 0, 3393, 3349, 1, 0, 0, 0, 3393, 3353, 1, 0, 0, 0, 3393, 3357, 1, 0, 0, 0, 3393, 3361, 1, 0, 0, 0, 3393, 3365, 1, 0, 0, 0, 3393, 3369, 1, 0, 0, 0, 3393, 3373, 1, 0, 0, 0, 3393, 3378, 1, 0, 0, 0, 3393, 3388, 1, 0, 0, 0, 3394, 701, 1, 0, 0, 0, 3395, 3406, 7, 18, 0, 0, 3396, 3397, 5, 371, 0, 0, 3397, 3400, 3, 704, 352, 0, 3398, 3399, 5, 361, 0, 0, 3399, 3401, 3, 706, 353, 0, 3400, 3398, 1, 0, 0, 0, 3400, 3401, 1, 0, 0, 0, 3401, 3402, 1, 0, 0, 0, 3402, 3404, 5, 382, 0, 0, 3403, 3405, 3, 768, 384, 0, 3404, 3403, 1, 0, 0, 0, 3404, 3405, 1, 0, 0, 0, 3405, 3407, 1, 0, 0, 0, 3406, 3396, 1, 0, 0, 0, 3406, 3407, 1, 0, 0, 0, 3407, 703, 1, 0, 0, 0, 3408, 3409, 3, 1126, 563, 0, 3409, 705, 1, 0, 0, 0, 3410, 3411, 3, 1126, 563, 0, 3411, 707, 1, 0, 0, 0, 3412, 3414, 5, 94, 0, 0, 3413, 3415, 3, 768, 384, 0, 3414, 3413, 1, 0, 0, 0, 3414, 3415, 1, 0, 0, 0, 3415, 3458, 1, 0, 0, 0, 3416, 3418, 5, 95, 0, 0, 3417, 3419, 3, 768, 384, 0, 3418, 3417, 1, 0, 0, 0, 3418, 3419, 1, 0, 0, 0, 3419, 3458, 1, 0, 0, 0, 3420, 3422, 5, 96, 0, 0, 3421, 3423, 3, 768, 384, 0, 3422, 3421, 1, 0, 0, 0, 3422, 3423, 1, 0, 0, 0, 3423, 3458, 1, 0, 0, 0, 3424, 3426, 5, 97, 0, 0, 3425, 3427, 3, 768, 384, 0, 3426, 3425, 1, 0, 0, 0, 3426, 3427, 1, 0, 0, 0, 3427, 3458, 1, 0, 0, 0, 3428, 3430, 5, 98, 0, 0, 3429, 3431, 3, 768, 384, 0, 3430, 3429, 1, 0, 0, 0, 3430, 3431, 1, 0, 0, 0, 3431, 3458, 1, 0, 0, 0, 3432, 3441, 5, 93, 0, 0, 3433, 3434, 5, 371, 0, 0, 3434, 3437, 3, 704, 352, 0, 3435, 3436, 5, 361, 0, 0, 3436, 3438, 3, 706, 353, 0, 3437, 3435, 1, 0, 0, 0, 3437, 3438, 1, 0, 0, 0, 3438, 3439, 1, 0, 0, 0, 3439, 3440, 5, 382, 0, 0, 3440, 3442, 1, 0, 0, 0, 3441, 3433, 1, 0, 0, 0, 3441, 3442, 1, 0, 0, 0, 3442, 3444, 1, 0, 0, 0, 3443, 3445, 3, 768, 384, 0, 3444, 3443, 1, 0, 0, 0, 3444, 3445, 1, 0, 0, 0, 3445, 3458, 1, 0, 0, 0, 3446, 3448, 5, 175, 0, 0, 3447, 3449, 3, 768, 384, 0, 3448, 3447, 1, 0, 0, 0, 3448, 3449, 1, 0, 0, 0, 3449, 3458, 1, 0, 0, 0, 3450, 3452, 5, 81, 0, 0, 3451, 3453, 5, 172, 0, 0, 3452, 3451, 1, 0, 0, 0, 3452, 3453, 1, 0, 0, 0, 3453, 3455, 1, 0, 0, 0, 3454, 3456, 3, 768, 384, 0, 3455, 3454, 1, 0, 0, 0, 3455, 3456, 1, 0, 0, 0, 3456, 3458, 1, 0, 0, 0, 3457, 3412, 1, 0, 0, 0, 3457, 3416, 1, 0, 0, 0, 3457, 3420, 1, 0, 0, 0, 3457, 3424, 1, 0, 0, 0, 3457, 3428, 1, 0, 0, 0, 3457, 3432, 1, 0, 0, 0, 3457, 3446, 1, 0, 0, 0, 3457, 3450, 1, 0, 0, 0, 3458, 709, 1, 0, 0, 0, 3459, 3462, 3, 712, 356, 0, 3460, 3462, 3, 724, 362, 0, 3461, 3459, 1, 0, 0, 0, 3461, 3460, 1, 0, 0, 0, 3462, 711, 1, 0, 0, 0, 3463, 3469, 3, 714, 357, 0, 3464, 3469, 3, 716, 358, 0, 3465, 3469, 3, 718, 359, 0, 3466, 3469, 3, 720, 360, 0, 3467, 3469, 3, 722, 361, 0, 3468, 3463, 1, 0, 0, 0, 3468, 3464, 1, 0, 0, 0, 3468, 3465, 1, 0, 0, 0, 3468, 3466, 1, 0, 0, 0, 3468, 3467, 1, 0, 0, 0, 3469, 713, 1, 0, 0, 0, 3470, 3471, 5, 235, 0, 0, 3471, 3473, 5, 71, 0, 0, 3472, 3474, 3, 768, 384, 0, 3473, 3472, 1, 0, 0, 0, 3473, 3474, 1, 0, 0, 0, 3474, 3483, 1, 0, 0, 0, 3475, 3476, 5, 208, 0, 0, 3476, 3477, 5, 231, 0, 0, 3477, 3478, 5, 207, 0, 0, 3478, 3480, 5, 324, 0, 0, 3479, 3481, 3, 768, 384, 0, 3480, 3479, 1, 0, 0, 0, 3480, 3481, 1, 0, 0, 0, 3481, 3483, 1, 0, 0, 0, 3482, 3470, 1, 0, 0, 0, 3482, 3475, 1, 0, 0, 0, 3483, 715, 1, 0, 0, 0, 3484, 3485, 5, 135, 0, 0, 3485, 3487, 5, 71, 0, 0, 3486, 3488, 3, 768, 384, 0, 3487, 3486, 1, 0, 0, 0, 3487, 3488, 1, 0, 0, 0, 3488, 3499, 1, 0, 0, 0, 3489, 3493, 5, 208, 0, 0, 3490, 3491, 5, 322, 0, 0, 3491, 3492, 5, 207, 0, 0, 3492, 3494, 5, 324, 0, 0, 3493, 3490, 1, 0, 0, 0, 3493, 3494, 1, 0, 0, 0, 3494, 3496, 1, 0, 0, 0, 3495, 3497, 3, 768, 384, 0, 3496, 3495, 1, 0, 0, 0, 3496, 3497, 1, 0, 0, 0, 3497, 3499, 1, 0, 0, 0, 3498, 3484, 1, 0, 0, 0, 3498, 3489, 1, 0, 0, 0, 3499, 717, 1, 0, 0, 0, 3500, 3502, 5, 70, 0, 0, 3501, 3503, 3, 768, 384, 0, 3502, 3501, 1, 0, 0, 0, 3502, 3503, 1, 0, 0, 0, 3503, 719, 1, 0, 0, 0, 3504, 3505, 5, 235, 0, 0, 3505, 3507, 5, 207, 0, 0, 3506, 3508, 3, 768, 384, 0, 3507, 3506, 1, 0, 0, 0, 3507, 3508, 1, 0, 0, 0, 3508, 3517, 1, 0, 0, 0, 3509, 3510, 5, 207, 0, 0, 3510, 3511, 5, 231, 0, 0, 3511, 3512, 5, 207, 0, 0, 3512, 3514, 5, 324, 0, 0, 3513, 3515, 3, 768, 384, 0, 3514, 3513, 1, 0, 0, 0, 3514, 3515, 1, 0, 0, 0, 3515, 3517, 1, 0, 0, 0, 3516, 3504, 1, 0, 0, 0, 3516, 3509, 1, 0, 0, 0, 3517, 721, 1, 0, 0, 0, 3518, 3519, 5, 135, 0, 0, 3519, 3521, 5, 207, 0, 0, 3520, 3522, 3, 768, 384, 0, 3521, 3520, 1, 0, 0, 0, 3521, 3522, 1, 0, 0, 0, 3522, 3531, 1, 0, 0, 0, 3523, 3524, 5, 207, 0, 0, 3524, 3525, 5, 322, 0, 0, 3525, 3526, 5, 207, 0, 0, 3526, 3528, 5, 324, 0, 0, 3527, 3529, 3, 768, 384, 0, 3528, 3527, 1, 0, 0, 0, 3528, 3529, 1, 0, 0, 0, 3529, 3531, 1, 0, 0, 0, 3530, 3518, 1, 0, 0, 0, 3530, 3523, 1, 0, 0, 0, 3531, 723, 1, 0, 0, 0, 3532, 3533, 5, 83, 0, 0, 3533, 3534, 5, 371, 0, 0, 3534, 3535, 3, 726, 363, 0, 3535, 3537, 5, 382, 0, 0, 3536, 3538, 3, 768, 384, 0, 3537, 3536, 1, 0, 0, 0, 3537, 3538, 1, 0, 0, 0, 3538, 725, 1, 0, 0, 0, 3539, 3540, 5, 233, 0, 0, 3540, 3541, 5, 315, 0, 0, 3541, 3546, 5, 148, 0, 0, 3542, 3543, 5, 72, 0, 0, 3543, 3544, 5, 315, 0, 0, 3544, 3546, 5, 186, 0, 0, 3545, 3539, 1, 0, 0, 0, 3545, 3542, 1, 0, 0, 0, 3546, 727, 1, 0, 0, 0, 3547, 3552, 3, 736, 368, 0, 3548, 3552, 3, 742, 371, 0, 3549, 3552, 3, 744, 372, 0, 3550, 3552, 3, 750, 375, 0, 3551, 3547, 1, 0, 0, 0, 3551, 3548, 1, 0, 0, 0, 3551, 3549, 1, 0, 0, 0, 3551, 3550, 1, 0, 0, 0, 3552, 729, 1, 0, 0, 0, 3553, 3556, 3, 732, 366, 0, 3554, 3556, 3, 734, 367, 0, 3555, 3553, 1, 0, 0, 0, 3555, 3554, 1, 0, 0, 0, 3556, 731, 1, 0, 0, 0, 3557, 3558, 5, 154, 0, 0, 3558, 733, 1, 0, 0, 0, 3559, 3560, 5, 154, 0, 0, 3560, 3563, 3, 768, 384, 0, 3561, 3563, 5, 153, 0, 0, 3562, 3559, 1, 0, 0, 0, 3562, 3561, 1, 0, 0, 0, 3563, 735, 1, 0, 0, 0, 3564, 3567, 3, 740, 370, 0, 3565, 3567, 3, 738, 369, 0, 3566, 3564, 1, 0, 0, 0, 3566, 3565, 1, 0, 0, 0, 3567, 737, 1, 0, 0, 0, 3568, 3570, 5, 305, 0, 0, 3569, 3568, 1, 0, 0, 0, 3569, 3570, 1, 0, 0, 0, 3570, 3571, 1, 0, 0, 0, 3571, 3572, 5, 289, 0, 0, 3572, 3574, 3, 572, 286, 0, 3573, 3575, 3, 768, 384, 0, 3574, 3573, 1, 0, 0, 0, 3574, 3575, 1, 0, 0, 0, 3575, 739, 1, 0, 0, 0, 3576, 3578, 5, 25, 0, 0, 3577, 3579, 5, 305, 0, 0, 3578, 3577, 1, 0, 0, 0, 3578, 3579, 1, 0, 0, 0, 3579, 3580, 1, 0, 0, 0, 3580, 3582, 5, 289, 0, 0, 3581, 3583, 3, 768, 384, 0, 3582, 3581, 1, 0, 0, 0, 3582, 3583, 1, 0, 0, 0, 3583, 741, 1, 0, 0, 0, 3584, 3586, 3, 670, 335, 0, 3585, 3587, 3, 768, 384, 0, 3586, 3585, 1, 0, 0, 0, 3586, 3587, 1, 0, 0, 0, 3587, 743, 1, 0, 0, 0, 3588, 3591, 3, 748, 374, 0, 3589, 3591, 3, 746, 373, 0, 3590, 3588, 1, 0, 0, 0, 3590, 3589, 1, 0, 0, 0, 3591, 745, 1, 0, 0, 0, 3592, 3594, 3, 580, 290, 0, 3593, 3595, 3, 768, 384, 0, 3594, 3593, 1, 0, 0, 0, 3594, 3595, 1, 0, 0, 0, 3595, 747, 1, 0, 0, 0, 3596, 3598, 5, 25, 0, 0, 3597, 3596, 1, 0, 0, 0, 3597, 3598, 1, 0, 0, 0, 3598, 3599, 1, 0, 0, 0, 3599, 3601, 3, 1140, 570, 0, 3600, 3602, 3, 768, 384, 0, 3601, 3600, 1, 0, 0, 0, 3601, 3602, 1, 0, 0, 0, 3602, 749, 1, 0, 0, 0, 3603, 3606, 3, 754, 377, 0, 3604, 3606, 3, 752, 376, 0, 3605, 3603, 1, 0, 0, 0, 3605, 3604, 1, 0, 0, 0, 3606, 751, 1, 0, 0, 0, 3607, 3609, 3, 600, 300, 0, 3608, 3610, 3, 768, 384, 0, 3609, 3608, 1, 0, 0, 0, 3609, 3610, 1, 0, 0, 0, 3610, 753, 1, 0, 0, 0, 3611, 3613, 5, 25, 0, 0, 3612, 3611, 1, 0, 0, 0, 3612, 3613, 1, 0, 0, 0, 3613, 3614, 1, 0, 0, 0, 3614, 3616, 3, 1144, 572, 0, 3615, 3617, 3, 768, 384, 0, 3616, 3615, 1, 0, 0, 0, 3616, 3617, 1, 0, 0, 0, 3617, 755, 1, 0, 0, 0, 3618, 3620, 5, 166, 0, 0, 3619, 3621, 3, 768, 384, 0, 3620, 3619, 1, 0, 0, 0, 3620, 3621, 1, 0, 0, 0, 3621, 757, 1, 0, 0, 0, 3622, 3624, 5, 102, 0, 0, 3623, 3622, 1, 0, 0, 0, 3623, 3624, 1, 0, 0, 0, 3624, 3625, 1, 0, 0, 0, 3625, 3626, 3, 760, 380, 0, 3626, 759, 1, 0, 0, 0, 3627, 3628, 7, 19, 0, 0, 3628, 761, 1, 0, 0, 0, 3629, 3631, 5, 25, 0, 0, 3630, 3629, 1, 0, 0, 0, 3630, 3631, 1, 0, 0, 0, 3631, 3632, 1, 0, 0, 0, 3632, 3634, 5, 176, 0, 0, 3633, 3635, 3, 768, 384, 0, 3634, 3633, 1, 0, 0, 0, 3634, 3635, 1, 0, 0, 0, 3635, 3644, 1, 0, 0, 0, 3636, 3638, 5, 176, 0, 0, 3637, 3636, 1, 0, 0, 0, 3637, 3638, 1, 0, 0, 0, 3638, 3639, 1, 0, 0, 0, 3639, 3641, 3, 764, 382, 0, 3640, 3642, 3, 768, 384, 0, 3641, 3640, 1, 0, 0, 0, 3641, 3642, 1, 0, 0, 0, 3642, 3644, 1, 0, 0, 0, 3643, 3630, 1, 0, 0, 0, 3643, 3637, 1, 0, 0, 0, 3644, 763, 1, 0, 0, 0, 3645, 3647, 5, 369, 0, 0, 3646, 3648, 3, 766, 383, 0, 3647, 3646, 1, 0, 0, 0, 3647, 3648, 1, 0, 0, 0, 3648, 3649, 1, 0, 0, 0, 3649, 3650, 5, 380, 0, 0, 3650, 765, 1, 0, 0, 0, 3651, 3656, 3, 770, 385, 0, 3652, 3653, 5, 361, 0, 0, 3653, 3655, 3, 770, 385, 0, 3654, 3652, 1, 0, 0, 0, 3655, 3658, 1, 0, 0, 0, 3656, 3654, 1, 0, 0, 0, 3656, 3657, 1, 0, 0, 0, 3657, 767, 1, 0, 0, 0, 3658, 3656, 1, 0, 0, 0, 3659, 3660, 5, 152, 0, 0, 3660, 3661, 5, 154, 0, 0, 3661, 769, 1, 0, 0, 0, 3662, 3664, 3, 1084, 542, 0, 3663, 3665, 3, 674, 337, 0, 3664, 3663, 1, 0, 0, 0, 3664, 3665, 1, 0, 0, 0, 3665, 3666, 1, 0, 0, 0, 3666, 3667, 3, 672, 336, 0, 3667, 771, 1, 0, 0, 0, 3668, 3669, 3, 822, 411, 0, 3669, 773, 1, 0, 0, 0, 3670, 3680, 3, 780, 390, 0, 3671, 3680, 3, 782, 391, 0, 3672, 3680, 3, 786, 393, 0, 3673, 3680, 3, 792, 396, 0, 3674, 3680, 3, 796, 398, 0, 3675, 3680, 3, 802, 401, 0, 3676, 3680, 3, 812, 406, 0, 3677, 3680, 3, 814, 407, 0, 3678, 3680, 3, 816, 408, 0, 3679, 3670, 1, 0, 0, 0, 3679, 3671, 1, 0, 0, 0, 3679, 3672, 1, 0, 0, 0, 3679, 3673, 1, 0, 0, 0, 3679, 3674, 1, 0, 0, 0, 3679, 3675, 1, 0, 0, 0, 3679, 3676, 1, 0, 0, 0, 3679, 3677, 1, 0, 0, 0, 3679, 3678, 1, 0, 0, 0, 3680, 775, 1, 0, 0, 0, 3681, 3682, 3, 778, 389, 0, 3682, 3683, 3, 818, 409, 0, 3683, 777, 1, 0, 0, 0, 3684, 3685, 7, 20, 0, 0, 3685, 779, 1, 0, 0, 0, 3686, 3704, 5, 89, 0, 0, 3687, 3688, 5, 369, 0, 0, 3688, 3689, 3, 300, 150, 0, 3689, 3690, 5, 380, 0, 0, 3690, 3705, 1, 0, 0, 0, 3691, 3692, 5, 371, 0, 0, 3692, 3693, 3, 300, 150, 0, 3693, 3694, 5, 382, 0, 0, 3694, 3705, 1, 0, 0, 0, 3695, 3696, 5, 369, 0, 0, 3696, 3697, 3, 218, 109, 0, 3697, 3698, 5, 380, 0, 0, 3698, 3705, 1, 0, 0, 0, 3699, 3700, 5, 371, 0, 0, 3700, 3701, 3, 218, 109, 0, 3701, 3702, 5, 382, 0, 0, 3702, 3705, 1, 0, 0, 0, 3703, 3705, 3, 56, 28, 0, 3704, 3687, 1, 0, 0, 0, 3704, 3691, 1, 0, 0, 0, 3704, 3695, 1, 0, 0, 0, 3704, 3699, 1, 0, 0, 0, 3704, 3703, 1, 0, 0, 0, 3705, 781, 1, 0, 0, 0, 3706, 3707, 3, 842, 421, 0, 3707, 3708, 3, 784, 392, 0, 3708, 783, 1, 0, 0, 0, 3709, 3711, 5, 127, 0, 0, 3710, 3712, 5, 152, 0, 0, 3711, 3710, 1, 0, 0, 0, 3711, 3712, 1, 0, 0, 0, 3712, 3713, 1, 0, 0, 0, 3713, 3714, 5, 154, 0, 0, 3714, 785, 1, 0, 0, 0, 3715, 3716, 3, 842, 421, 0, 3716, 3717, 3, 788, 394, 0, 3717, 787, 1, 0, 0, 0, 3718, 3720, 5, 127, 0, 0, 3719, 3721, 5, 152, 0, 0, 3720, 3719, 1, 0, 0, 0, 3720, 3721, 1, 0, 0, 0, 3721, 3722, 1, 0, 0, 0, 3722, 3723, 3, 674, 337, 0, 3723, 3724, 3, 672, 336, 0, 3724, 789, 1, 0, 0, 0, 3725, 3727, 5, 127, 0, 0, 3726, 3728, 5, 152, 0, 0, 3727, 3726, 1, 0, 0, 0, 3727, 3728, 1, 0, 0, 0, 3728, 3730, 1, 0, 0, 0, 3729, 3731, 3, 1016, 508, 0, 3730, 3729, 1, 0, 0, 0, 3730, 3731, 1, 0, 0, 0, 3731, 3732, 1, 0, 0, 0, 3732, 3733, 5, 302, 0, 0, 3733, 791, 1, 0, 0, 0, 3734, 3735, 3, 430, 215, 0, 3735, 3736, 3, 794, 397, 0, 3736, 793, 1, 0, 0, 0, 3737, 3739, 5, 127, 0, 0, 3738, 3740, 5, 152, 0, 0, 3739, 3738, 1, 0, 0, 0, 3739, 3740, 1, 0, 0, 0, 3740, 3741, 1, 0, 0, 0, 3741, 3742, 5, 283, 0, 0, 3742, 795, 1, 0, 0, 0, 3743, 3744, 3, 430, 215, 0, 3744, 3745, 3, 798, 399, 0, 3745, 797, 1, 0, 0, 0, 3746, 3747, 3, 800, 400, 0, 3747, 3748, 3, 426, 213, 0, 3748, 799, 1, 0, 0, 0, 3749, 3751, 5, 127, 0, 0, 3750, 3752, 5, 152, 0, 0, 3751, 3750, 1, 0, 0, 0, 3751, 3752, 1, 0, 0, 0, 3752, 3753, 1, 0, 0, 0, 3753, 3756, 5, 293, 0, 0, 3754, 3756, 5, 360, 0, 0, 3755, 3749, 1, 0, 0, 0, 3755, 3754, 1, 0, 0, 0, 3756, 801, 1, 0, 0, 0, 3757, 3758, 3, 804, 402, 0, 3758, 3759, 3, 806, 403, 0, 3759, 3764, 1, 0, 0, 0, 3760, 3761, 3, 804, 402, 0, 3761, 3762, 3, 808, 404, 0, 3762, 3764, 1, 0, 0, 0, 3763, 3757, 1, 0, 0, 0, 3763, 3760, 1, 0, 0, 0, 3764, 803, 1, 0, 0, 0, 3765, 3766, 3, 430, 215, 0, 3766, 805, 1, 0, 0, 0, 3767, 3769, 5, 127, 0, 0, 3768, 3770, 5, 152, 0, 0, 3769, 3768, 1, 0, 0, 0, 3769, 3770, 1, 0, 0, 0, 3770, 3771, 1, 0, 0, 0, 3771, 3772, 5, 312, 0, 0, 3772, 3773, 5, 158, 0, 0, 3773, 3774, 3, 810, 405, 0, 3774, 807, 1, 0, 0, 0, 3775, 3777, 5, 127, 0, 0, 3776, 3778, 5, 152, 0, 0, 3777, 3776, 1, 0, 0, 0, 3777, 3778, 1, 0, 0, 0, 3778, 3779, 1, 0, 0, 0, 3779, 3780, 5, 281, 0, 0, 3780, 3781, 5, 158, 0, 0, 3781, 3782, 3, 810, 405, 0, 3782, 809, 1, 0, 0, 0, 3783, 3784, 3, 430, 215, 0, 3784, 811, 1, 0, 0, 0, 3785, 3786, 5, 23, 0, 0, 3786, 3787, 5, 371, 0, 0, 3787, 3788, 3, 430, 215, 0, 3788, 3789, 5, 361, 0, 0, 3789, 3794, 3, 430, 215, 0, 3790, 3791, 5, 361, 0, 0, 3791, 3793, 3, 430, 215, 0, 3792, 3790, 1, 0, 0, 0, 3793, 3796, 1, 0, 0, 0, 3794, 3792, 1, 0, 0, 0, 3794, 3795, 1, 0, 0, 0, 3795, 3797, 1, 0, 0, 0, 3796, 3794, 1, 0, 0, 0, 3797, 3798, 5, 382, 0, 0, 3798, 813, 1, 0, 0, 0, 3799, 3800, 5, 184, 0, 0, 3800, 3801, 5, 371, 0, 0, 3801, 3802, 3, 430, 215, 0, 3802, 3803, 5, 361, 0, 0, 3803, 3808, 3, 430, 215, 0, 3804, 3805, 5, 361, 0, 0, 3805, 3807, 3, 430, 215, 0, 3806, 3804, 1, 0, 0, 0, 3807, 3810, 1, 0, 0, 0, 3808, 3806, 1, 0, 0, 0, 3808, 3809, 1, 0, 0, 0, 3809, 3811, 1, 0, 0, 0, 3810, 3808, 1, 0, 0, 0, 3811, 3812, 5, 382, 0, 0, 3812, 815, 1, 0, 0, 0, 3813, 3814, 5, 173, 0, 0, 3814, 3815, 5, 371, 0, 0, 3815, 3816, 3, 430, 215, 0, 3816, 3817, 5, 361, 0, 0, 3817, 3818, 3, 1082, 541, 0, 3818, 3819, 5, 382, 0, 0, 3819, 817, 1, 0, 0, 0, 3820, 3821, 6, 409, -1, 0, 3821, 3822, 7, 21, 0, 0, 3822, 3839, 3, 818, 409, 15, 3823, 3824, 5, 152, 0, 0, 3824, 3839, 3, 818, 409, 11, 3825, 3839, 3, 774, 387, 0, 3826, 3828, 5, 305, 0, 0, 3827, 3826, 1, 0, 0, 0, 3827, 3828, 1, 0, 0, 0, 3828, 3829, 1, 0, 0, 0, 3829, 3830, 5, 289, 0, 0, 3830, 3839, 3, 88, 44, 0, 3831, 3833, 5, 278, 0, 0, 3832, 3831, 1, 0, 0, 0, 3832, 3833, 1, 0, 0, 0, 3833, 3834, 1, 0, 0, 0, 3834, 3835, 5, 313, 0, 0, 3835, 3839, 3, 92, 46, 0, 3836, 3839, 3, 820, 410, 0, 3837, 3839, 3, 842, 421, 0, 3838, 3820, 1, 0, 0, 0, 3838, 3823, 1, 0, 0, 0, 3838, 3825, 1, 0, 0, 0, 3838, 3827, 1, 0, 0, 0, 3838, 3832, 1, 0, 0, 0, 3838, 3836, 1, 0, 0, 0, 3838, 3837, 1, 0, 0, 0, 3839, 3867, 1, 0, 0, 0, 3840, 3841, 10, 14, 0, 0, 3841, 3842, 7, 22, 0, 0, 3842, 3866, 3, 818, 409, 15, 3843, 3844, 10, 13, 0, 0, 3844, 3845, 7, 21, 0, 0, 3845, 3866, 3, 818, 409, 14, 3846, 3847, 10, 12, 0, 0, 3847, 3848, 5, 331, 0, 0, 3848, 3866, 3, 818, 409, 13, 3849, 3850, 10, 9, 0, 0, 3850, 3851, 5, 24, 0, 0, 3851, 3866, 3, 818, 409, 10, 3852, 3853, 10, 8, 0, 0, 3853, 3854, 7, 23, 0, 0, 3854, 3866, 3, 818, 409, 9, 3855, 3856, 10, 10, 0, 0, 3856, 3858, 5, 127, 0, 0, 3857, 3859, 5, 152, 0, 0, 3858, 3857, 1, 0, 0, 0, 3858, 3859, 1, 0, 0, 0, 3859, 3860, 1, 0, 0, 0, 3860, 3866, 3, 950, 475, 0, 3861, 3862, 10, 7, 0, 0, 3862, 3866, 3, 776, 388, 0, 3863, 3864, 10, 5, 0, 0, 3864, 3866, 3, 790, 395, 0, 3865, 3840, 1, 0, 0, 0, 3865, 3843, 1, 0, 0, 0, 3865, 3846, 1, 0, 0, 0, 3865, 3849, 1, 0, 0, 0, 3865, 3852, 1, 0, 0, 0, 3865, 3855, 1, 0, 0, 0, 3865, 3861, 1, 0, 0, 0, 3865, 3863, 1, 0, 0, 0, 3866, 3869, 1, 0, 0, 0, 3867, 3865, 1, 0, 0, 0, 3867, 3868, 1, 0, 0, 0, 3868, 819, 1, 0, 0, 0, 3869, 3867, 1, 0, 0, 0, 3870, 3877, 3, 954, 477, 0, 3871, 3877, 3, 1042, 521, 0, 3872, 3877, 3, 1022, 511, 0, 3873, 3877, 3, 1050, 525, 0, 3874, 3877, 3, 824, 412, 0, 3875, 3877, 3, 928, 464, 0, 3876, 3870, 1, 0, 0, 0, 3876, 3871, 1, 0, 0, 0, 3876, 3872, 1, 0, 0, 0, 3876, 3873, 1, 0, 0, 0, 3876, 3874, 1, 0, 0, 0, 3876, 3875, 1, 0, 0, 0, 3877, 821, 1, 0, 0, 0, 3878, 3879, 3, 818, 409, 0, 3879, 823, 1, 0, 0, 0, 3880, 3886, 3, 826, 413, 0, 3881, 3886, 3, 828, 414, 0, 3882, 3886, 3, 830, 415, 0, 3883, 3886, 3, 832, 416, 0, 3884, 3886, 3, 834, 417, 0, 3885, 3880, 1, 0, 0, 0, 3885, 3881, 1, 0, 0, 0, 3885, 3882, 1, 0, 0, 0, 3885, 3883, 1, 0, 0, 0, 3885, 3884, 1, 0, 0, 0, 3886, 825, 1, 0, 0, 0, 3887, 3888, 7, 24, 0, 0, 3888, 3889, 5, 371, 0, 0, 3889, 3890, 3, 818, 409, 0, 3890, 3891, 5, 361, 0, 0, 3891, 3892, 3, 1018, 509, 0, 3892, 3893, 5, 382, 0, 0, 3893, 827, 1, 0, 0, 0, 3894, 3895, 5, 210, 0, 0, 3895, 3896, 5, 371, 0, 0, 3896, 3897, 3, 1008, 504, 0, 3897, 3898, 5, 382, 0, 0, 3898, 829, 1, 0, 0, 0, 3899, 3900, 7, 25, 0, 0, 3900, 3901, 5, 371, 0, 0, 3901, 3902, 3, 818, 409, 0, 3902, 3903, 5, 382, 0, 0, 3903, 831, 1, 0, 0, 0, 3904, 3905, 7, 26, 0, 0, 3905, 3906, 5, 371, 0, 0, 3906, 3909, 3, 818, 409, 0, 3907, 3908, 5, 361, 0, 0, 3908, 3910, 3, 818, 409, 0, 3909, 3907, 1, 0, 0, 0, 3909, 3910, 1, 0, 0, 0, 3910, 3911, 1, 0, 0, 0, 3911, 3912, 5, 382, 0, 0, 3912, 833, 1, 0, 0, 0, 3913, 3914, 5, 151, 0, 0, 3914, 3915, 5, 371, 0, 0, 3915, 3918, 3, 818, 409, 0, 3916, 3917, 5, 361, 0, 0, 3917, 3919, 3, 1016, 508, 0, 3918, 3916, 1, 0, 0, 0, 3918, 3919, 1, 0, 0, 0, 3919, 3920, 1, 0, 0, 0, 3920, 3921, 5, 382, 0, 0, 3921, 835, 1, 0, 0, 0, 3922, 3923, 3, 842, 421, 0, 3923, 837, 1, 0, 0, 0, 3924, 3925, 3, 842, 421, 0, 3925, 839, 1, 0, 0, 0, 3926, 3927, 3, 818, 409, 0, 3927, 841, 1, 0, 0, 0, 3928, 3929, 6, 421, -1, 0, 3929, 3940, 3, 844, 422, 0, 3930, 3940, 3, 894, 447, 0, 3931, 3940, 3, 850, 425, 0, 3932, 3940, 3, 916, 458, 0, 3933, 3940, 3, 860, 430, 0, 3934, 3940, 3, 862, 431, 0, 3935, 3940, 3, 888, 444, 0, 3936, 3940, 3, 910, 455, 0, 3937, 3940, 3, 858, 429, 0, 3938, 3940, 3, 912, 456, 0, 3939, 3928, 1, 0, 0, 0, 3939, 3930, 1, 0, 0, 0, 3939, 3931, 1, 0, 0, 0, 3939, 3932, 1, 0, 0, 0, 3939, 3933, 1, 0, 0, 0, 3939, 3934, 1, 0, 0, 0, 3939, 3935, 1, 0, 0, 0, 3939, 3936, 1, 0, 0, 0, 3939, 3937, 1, 0, 0, 0, 3939, 3938, 1, 0, 0, 0, 3940, 3946, 1, 0, 0, 0, 3941, 3942, 10, 7, 0, 0, 3942, 3943, 5, 375, 0, 0, 3943, 3945, 3, 1082, 541, 0, 3944, 3941, 1, 0, 0, 0, 3945, 3948, 1, 0, 0, 0, 3946, 3944, 1, 0, 0, 0, 3946, 3947, 1, 0, 0, 0, 3947, 843, 1, 0, 0, 0, 3948, 3946, 1, 0, 0, 0, 3949, 3950, 5, 371, 0, 0, 3950, 3951, 3, 818, 409, 0, 3951, 3952, 5, 382, 0, 0, 3952, 845, 1, 0, 0, 0, 3953, 3956, 3, 848, 424, 0, 3954, 3956, 3, 912, 456, 0, 3955, 3953, 1, 0, 0, 0, 3955, 3954, 1, 0, 0, 0, 3956, 847, 1, 0, 0, 0, 3957, 3970, 3, 894, 447, 0, 3958, 3970, 3, 850, 425, 0, 3959, 3970, 3, 916, 458, 0, 3960, 3961, 3, 842, 421, 0, 3961, 3962, 5, 375, 0, 0, 3962, 3963, 3, 1082, 541, 0, 3963, 3970, 1, 0, 0, 0, 3964, 3970, 3, 860, 430, 0, 3965, 3970, 3, 862, 431, 0, 3966, 3970, 3, 888, 444, 0, 3967, 3970, 3, 910, 455, 0, 3968, 3970, 3, 858, 429, 0, 3969, 3957, 1, 0, 0, 0, 3969, 3958, 1, 0, 0, 0, 3969, 3959, 1, 0, 0, 0, 3969, 3960, 1, 0, 0, 0, 3969, 3964, 1, 0, 0, 0, 3969, 3965, 1, 0, 0, 0, 3969, 3966, 1, 0, 0, 0, 3969, 3967, 1, 0, 0, 0, 3969, 3968, 1, 0, 0, 0, 3970, 849, 1, 0, 0, 0, 3971, 3974, 3, 1094, 547, 0, 3972, 3974, 3, 854, 427, 0, 3973, 3971, 1, 0, 0, 0, 3973, 3972, 1, 0, 0, 0, 3974, 851, 1, 0, 0, 0, 3975, 3978, 3, 1124, 562, 0, 3976, 3978, 3, 856, 428, 0, 3977, 3975, 1, 0, 0, 0, 3977, 3976, 1, 0, 0, 0, 3978, 853, 1, 0, 0, 0, 3979, 3982, 3, 856, 428, 0, 3980, 3982, 5, 189, 0, 0, 3981, 3979, 1, 0, 0, 0, 3981, 3980, 1, 0, 0, 0, 3982, 855, 1, 0, 0, 0, 3983, 3984, 5, 327, 0, 0, 3984, 857, 1, 0, 0, 0, 3985, 3986, 5, 130, 0, 0, 3986, 3987, 3, 226, 113, 0, 3987, 3988, 5, 109, 0, 0, 3988, 3989, 3, 818, 409, 0, 3989, 3990, 5, 87, 0, 0, 3990, 859, 1, 0, 0, 0, 3991, 3992, 5, 225, 0, 0, 3992, 3993, 3, 56, 28, 0, 3993, 861, 1, 0, 0, 0, 3994, 3997, 3, 864, 432, 0, 3995, 3997, 3, 866, 433, 0, 3996, 3994, 1, 0, 0, 0, 3996, 3995, 1, 0, 0, 0, 3997, 863, 1, 0, 0, 0, 3998, 3999, 5, 156, 0, 0, 3999, 4000, 5, 371, 0, 0, 4000, 4001, 3, 818, 409, 0, 4001, 4002, 5, 361, 0, 0, 4002, 4003, 3, 818, 409, 0, 4003, 4004, 5, 382, 0, 0, 4004, 4017, 1, 0, 0, 0, 4005, 4006, 5, 55, 0, 0, 4006, 4007, 5, 371, 0, 0, 4007, 4010, 3, 818, 409, 0, 4008, 4009, 5, 361, 0, 0, 4009, 4011, 3, 818, 409, 0, 4010, 4008, 1, 0, 0, 0, 4011, 4012, 1, 0, 0, 0, 4012, 4010, 1, 0, 0, 0, 4012, 4013, 1, 0, 0, 0, 4013, 4014, 1, 0, 0, 0, 4014, 4015, 5, 382, 0, 0, 4015, 4017, 1, 0, 0, 0, 4016, 3998, 1, 0, 0, 0, 4016, 4005, 1, 0, 0, 0, 4017, 865, 1, 0, 0, 0, 4018, 4021, 3, 868, 434, 0, 4019, 4021, 3, 870, 435, 0, 4020, 4018, 1, 0, 0, 0, 4020, 4019, 1, 0, 0, 0, 4021, 867, 1, 0, 0, 0, 4022, 4023, 5, 46, 0, 0, 4023, 4025, 3, 878, 439, 0, 4024, 4026, 3, 872, 436, 0, 4025, 4024, 1, 0, 0, 0, 4026, 4027, 1, 0, 0, 0, 4027, 4025, 1, 0, 0, 0, 4027, 4028, 1, 0, 0, 0, 4028, 4030, 1, 0, 0, 0, 4029, 4031, 3, 876, 438, 0, 4030, 4029, 1, 0, 0, 0, 4030, 4031, 1, 0, 0, 0, 4031, 4032, 1, 0, 0, 0, 4032, 4033, 5, 87, 0, 0, 4033, 869, 1, 0, 0, 0, 4034, 4036, 5, 46, 0, 0, 4035, 4037, 3, 874, 437, 0, 4036, 4035, 1, 0, 0, 0, 4037, 4038, 1, 0, 0, 0, 4038, 4036, 1, 0, 0, 0, 4038, 4039, 1, 0, 0, 0, 4039, 4041, 1, 0, 0, 0, 4040, 4042, 3, 876, 438, 0, 4041, 4040, 1, 0, 0, 0, 4041, 4042, 1, 0, 0, 0, 4042, 4043, 1, 0, 0, 0, 4043, 4044, 5, 87, 0, 0, 4044, 871, 1, 0, 0, 0, 4045, 4046, 5, 229, 0, 0, 4046, 4047, 3, 880, 440, 0, 4047, 4048, 5, 206, 0, 0, 4048, 4049, 3, 884, 442, 0, 4049, 873, 1, 0, 0, 0, 4050, 4051, 5, 229, 0, 0, 4051, 4052, 3, 772, 386, 0, 4052, 4053, 5, 206, 0, 0, 4053, 4054, 3, 884, 442, 0, 4054, 875, 1, 0, 0, 0, 4055, 4056, 5, 86, 0, 0, 4056, 4057, 3, 884, 442, 0, 4057, 877, 1, 0, 0, 0, 4058, 4061, 3, 846, 423, 0, 4059, 4061, 3, 430, 215, 0, 4060, 4058, 1, 0, 0, 0, 4060, 4059, 1, 0, 0, 0, 4061, 879, 1, 0, 0, 0, 4062, 4067, 3, 882, 441, 0, 4063, 4064, 5, 361, 0, 0, 4064, 4066, 3, 882, 441, 0, 4065, 4063, 1, 0, 0, 0, 4066, 4069, 1, 0, 0, 0, 4067, 4065, 1, 0, 0, 0, 4067, 4068, 1, 0, 0, 0, 4068, 881, 1, 0, 0, 0, 4069, 4067, 1, 0, 0, 0, 4070, 4080, 3, 846, 423, 0, 4071, 4080, 3, 776, 388, 0, 4072, 4080, 3, 784, 392, 0, 4073, 4080, 3, 788, 394, 0, 4074, 4080, 3, 790, 395, 0, 4075, 4080, 3, 794, 397, 0, 4076, 4080, 3, 798, 399, 0, 4077, 4080, 3, 806, 403, 0, 4078, 4080, 3, 808, 404, 0, 4079, 4070, 1, 0, 0, 0, 4079, 4071, 1, 0, 0, 0, 4079, 4072, 1, 0, 0, 0, 4079, 4073, 1, 0, 0, 0, 4079, 4074, 1, 0, 0, 0, 4079, 4075, 1, 0, 0, 0, 4079, 4076, 1, 0, 0, 0, 4079, 4077, 1, 0, 0, 0, 4079, 4078, 1, 0, 0, 0, 4080, 883, 1, 0, 0, 0, 4081, 4084, 3, 886, 443, 0, 4082, 4084, 3, 1128, 564, 0, 4083, 4081, 1, 0, 0, 0, 4083, 4082, 1, 0, 0, 0, 4084, 885, 1, 0, 0, 0, 4085, 4086, 3, 818, 409, 0, 4086, 887, 1, 0, 0, 0, 4087, 4088, 5, 47, 0, 0, 4088, 4089, 5, 371, 0, 0, 4089, 4090, 3, 890, 445, 0, 4090, 4091, 5, 27, 0, 0, 4091, 4092, 3, 892, 446, 0, 4092, 4093, 5, 382, 0, 0, 4093, 889, 1, 0, 0, 0, 4094, 4097, 3, 818, 409, 0, 4095, 4097, 3, 1128, 564, 0, 4096, 4094, 1, 0, 0, 0, 4096, 4095, 1, 0, 0, 0, 4097, 891, 1, 0, 0, 0, 4098, 4099, 3, 672, 336, 0, 4099, 893, 1, 0, 0, 0, 4100, 4101, 5, 62, 0, 0, 4101, 4102, 5, 371, 0, 0, 4102, 4103, 5, 359, 0, 0, 4103, 4107, 5, 382, 0, 0, 4104, 4107, 3, 896, 448, 0, 4105, 4107, 3, 898, 449, 0, 4106, 4100, 1, 0, 0, 0, 4106, 4104, 1, 0, 0, 0, 4106, 4105, 1, 0, 0, 0, 4107, 895, 1, 0, 0, 0, 4108, 4109, 3, 900, 450, 0, 4109, 4111, 5, 371, 0, 0, 4110, 4112, 3, 902, 451, 0, 4111, 4110, 1, 0, 0, 0, 4111, 4112, 1, 0, 0, 0, 4112, 4113, 1, 0, 0, 0, 4113, 4114, 3, 818, 409, 0, 4114, 4115, 5, 382, 0, 0, 4115, 897, 1, 0, 0, 0, 4116, 4117, 3, 904, 452, 0, 4117, 4118, 5, 371, 0, 0, 4118, 4119, 3, 906, 453, 0, 4119, 4120, 5, 361, 0, 0, 4120, 4121, 3, 908, 454, 0, 4121, 4122, 5, 382, 0, 0, 4122, 899, 1, 0, 0, 0, 4123, 4124, 7, 27, 0, 0, 4124, 901, 1, 0, 0, 0, 4125, 4126, 7, 28, 0, 0, 4126, 903, 1, 0, 0, 0, 4127, 4128, 7, 29, 0, 0, 4128, 905, 1, 0, 0, 0, 4129, 4131, 3, 902, 451, 0, 4130, 4129, 1, 0, 0, 0, 4130, 4131, 1, 0, 0, 0, 4131, 4132, 1, 0, 0, 0, 4132, 4133, 3, 952, 476, 0, 4133, 907, 1, 0, 0, 0, 4134, 4135, 3, 952, 476, 0, 4135, 909, 1, 0, 0, 0, 4136, 4137, 5, 85, 0, 0, 4137, 4138, 5, 371, 0, 0, 4138, 4139, 3, 430, 215, 0, 4139, 4140, 5, 382, 0, 0, 4140, 911, 1, 0, 0, 0, 4141, 4142, 3, 1092, 546, 0, 4142, 913, 1, 0, 0, 0, 4143, 4144, 3, 818, 409, 0, 4144, 915, 1, 0, 0, 0, 4145, 4146, 3, 918, 459, 0, 4146, 917, 1, 0, 0, 0, 4147, 4148, 5, 166, 0, 0, 4148, 4149, 5, 370, 0, 0, 4149, 4150, 3, 920, 460, 0, 4150, 4151, 5, 381, 0, 0, 4151, 919, 1, 0, 0, 0, 4152, 4156, 3, 922, 461, 0, 4153, 4155, 3, 924, 462, 0, 4154, 4153, 1, 0, 0, 0, 4155, 4158, 1, 0, 0, 0, 4156, 4154, 1, 0, 0, 0, 4156, 4157, 1, 0, 0, 0, 4157, 921, 1, 0, 0, 0, 4158, 4156, 1, 0, 0, 0, 4159, 4160, 3, 836, 418, 0, 4160, 923, 1, 0, 0, 0, 4161, 4162, 5, 361, 0, 0, 4162, 4163, 3, 838, 419, 0, 4163, 4164, 5, 361, 0, 0, 4164, 4165, 3, 836, 418, 0, 4165, 925, 1, 0, 0, 0, 4166, 4167, 3, 818, 409, 0, 4167, 927, 1, 0, 0, 0, 4168, 4171, 3, 930, 465, 0, 4169, 4171, 3, 932, 466, 0, 4170, 4168, 1, 0, 0, 0, 4170, 4169, 1, 0, 0, 0, 4171, 929, 1, 0, 0, 0, 4172, 4173, 5, 210, 0, 0, 4173, 4174, 5, 371, 0, 0, 4174, 4175, 3, 926, 463, 0, 4175, 4176, 5, 361, 0, 0, 4176, 4177, 3, 952, 476, 0, 4177, 4178, 5, 382, 0, 0, 4178, 931, 1, 0, 0, 0, 4179, 4180, 5, 287, 0, 0, 4180, 4181, 5, 371, 0, 0, 4181, 4182, 3, 914, 457, 0, 4182, 4183, 5, 382, 0, 0, 4183, 933, 1, 0, 0, 0, 4184, 4185, 3, 936, 468, 0, 4185, 935, 1, 0, 0, 0, 4186, 4188, 3, 758, 379, 0, 4187, 4186, 1, 0, 0, 0, 4187, 4188, 1, 0, 0, 0, 4188, 4189, 1, 0, 0, 0, 4189, 4191, 5, 370, 0, 0, 4190, 4192, 3, 938, 469, 0, 4191, 4190, 1, 0, 0, 0, 4191, 4192, 1, 0, 0, 0, 4192, 4193, 1, 0, 0, 0, 4193, 4194, 5, 381, 0, 0, 4194, 937, 1, 0, 0, 0, 4195, 4200, 3, 940, 470, 0, 4196, 4197, 5, 361, 0, 0, 4197, 4199, 3, 940, 470, 0, 4198, 4196, 1, 0, 0, 0, 4199, 4202, 1, 0, 0, 0, 4200, 4198, 1, 0, 0, 0, 4200, 4201, 1, 0, 0, 0, 4201, 939, 1, 0, 0, 0, 4202, 4200, 1, 0, 0, 0, 4203, 4204, 3, 818, 409, 0, 4204, 941, 1, 0, 0, 0, 4205, 4207, 5, 176, 0, 0, 4206, 4205, 1, 0, 0, 0, 4206, 4207, 1, 0, 0, 0, 4207, 4208, 1, 0, 0, 0, 4208, 4209, 3, 944, 472, 0, 4209, 943, 1, 0, 0, 0, 4210, 4212, 5, 369, 0, 0, 4211, 4213, 3, 946, 473, 0, 4212, 4211, 1, 0, 0, 0, 4212, 4213, 1, 0, 0, 0, 4213, 4214, 1, 0, 0, 0, 4214, 4215, 5, 380, 0, 0, 4215, 945, 1, 0, 0, 0, 4216, 4221, 3, 948, 474, 0, 4217, 4218, 5, 361, 0, 0, 4218, 4220, 3, 948, 474, 0, 4219, 4217, 1, 0, 0, 0, 4220, 4223, 1, 0, 0, 0, 4221, 4219, 1, 0, 0, 0, 4221, 4222, 1, 0, 0, 0, 4222, 947, 1, 0, 0, 0, 4223, 4221, 1, 0, 0, 0, 4224, 4225, 3, 1084, 542, 0, 4225, 4226, 5, 360, 0, 0, 4226, 4227, 3, 818, 409, 0, 4227, 949, 1, 0, 0, 0, 4228, 4229, 5, 2, 0, 0, 4229, 951, 1, 0, 0, 0, 4230, 4231, 6, 476, -1, 0, 4231, 4232, 7, 21, 0, 0, 4232, 4236, 3, 952, 476, 5, 4233, 4236, 3, 842, 421, 0, 4234, 4236, 3, 954, 477, 0, 4235, 4230, 1, 0, 0, 0, 4235, 4233, 1, 0, 0, 0, 4235, 4234, 1, 0, 0, 0, 4236, 4245, 1, 0, 0, 0, 4237, 4238, 10, 4, 0, 0, 4238, 4239, 7, 22, 0, 0, 4239, 4244, 3, 952, 476, 5, 4240, 4241, 10, 3, 0, 0, 4241, 4242, 7, 21, 0, 0, 4242, 4244, 3, 952, 476, 4, 4243, 4237, 1, 0, 0, 0, 4243, 4240, 1, 0, 0, 0, 4244, 4247, 1, 0, 0, 0, 4245, 4243, 1, 0, 0, 0, 4245, 4246, 1, 0, 0, 0, 4246, 953, 1, 0, 0, 0, 4247, 4245, 1, 0, 0, 0, 4248, 4262, 3, 956, 478, 0, 4249, 4262, 3, 958, 479, 0, 4250, 4262, 3, 968, 484, 0, 4251, 4262, 3, 970, 485, 0, 4252, 4262, 3, 976, 488, 0, 4253, 4262, 3, 980, 490, 0, 4254, 4262, 3, 986, 493, 0, 4255, 4262, 3, 988, 494, 0, 4256, 4262, 3, 990, 495, 0, 4257, 4262, 3, 992, 496, 0, 4258, 4262, 3, 998, 499, 0, 4259, 4262, 3, 1000, 500, 0, 4260, 4262, 3, 1002, 501, 0, 4261, 4248, 1, 0, 0, 0, 4261, 4249, 1, 0, 0, 0, 4261, 4250, 1, 0, 0, 0, 4261, 4251, 1, 0, 0, 0, 4261, 4252, 1, 0, 0, 0, 4261, 4253, 1, 0, 0, 0, 4261, 4254, 1, 0, 0, 0, 4261, 4255, 1, 0, 0, 0, 4261, 4256, 1, 0, 0, 0, 4261, 4257, 1, 0, 0, 0, 4261, 4258, 1, 0, 0, 0, 4261, 4259, 1, 0, 0, 0, 4261, 4260, 1, 0, 0, 0, 4262, 955, 1, 0, 0, 0, 4263, 4267, 3, 962, 481, 0, 4264, 4267, 3, 964, 482, 0, 4265, 4267, 3, 966, 483, 0, 4266, 4263, 1, 0, 0, 0, 4266, 4264, 1, 0, 0, 0, 4266, 4265, 1, 0, 0, 0, 4267, 957, 1, 0, 0, 0, 4268, 4269, 5, 45, 0, 0, 4269, 4270, 5, 371, 0, 0, 4270, 4271, 3, 960, 480, 0, 4271, 4272, 5, 382, 0, 0, 4272, 4279, 1, 0, 0, 0, 4273, 4274, 5, 194, 0, 0, 4274, 4275, 5, 371, 0, 0, 4275, 4276, 3, 926, 463, 0, 4276, 4277, 5, 382, 0, 0, 4277, 4279, 1, 0, 0, 0, 4278, 4268, 1, 0, 0, 0, 4278, 4273, 1, 0, 0, 0, 4279, 959, 1, 0, 0, 0, 4280, 4281, 3, 818, 409, 0, 4281, 961, 1, 0, 0, 0, 4282, 4283, 7, 30, 0, 0, 4283, 4284, 5, 371, 0, 0, 4284, 4285, 3, 1004, 502, 0, 4285, 4286, 5, 382, 0, 0, 4286, 963, 1, 0, 0, 0, 4287, 4288, 7, 31, 0, 0, 4288, 4289, 5, 371, 0, 0, 4289, 4290, 3, 1006, 503, 0, 4290, 4291, 5, 382, 0, 0, 4291, 965, 1, 0, 0, 0, 4292, 4293, 5, 167, 0, 0, 4293, 4294, 5, 371, 0, 0, 4294, 4295, 3, 914, 457, 0, 4295, 4296, 5, 382, 0, 0, 4296, 967, 1, 0, 0, 0, 4297, 4298, 5, 20, 0, 0, 4298, 4299, 5, 371, 0, 0, 4299, 4300, 3, 818, 409, 0, 4300, 4301, 5, 382, 0, 0, 4301, 969, 1, 0, 0, 0, 4302, 4303, 5, 147, 0, 0, 4303, 4304, 5, 371, 0, 0, 4304, 4305, 3, 972, 486, 0, 4305, 4306, 5, 361, 0, 0, 4306, 4307, 3, 974, 487, 0, 4307, 4308, 5, 382, 0, 0, 4308, 971, 1, 0, 0, 0, 4309, 4310, 3, 952, 476, 0, 4310, 973, 1, 0, 0, 0, 4311, 4312, 3, 952, 476, 0, 4312, 975, 1, 0, 0, 0, 4313, 4314, 3, 978, 489, 0, 4314, 4315, 5, 371, 0, 0, 4315, 4316, 3, 952, 476, 0, 4316, 4317, 5, 382, 0, 0, 4317, 977, 1, 0, 0, 0, 4318, 4319, 7, 32, 0, 0, 4319, 979, 1, 0, 0, 0, 4320, 4321, 5, 139, 0, 0, 4321, 4322, 5, 371, 0, 0, 4322, 4323, 3, 982, 491, 0, 4323, 4324, 5, 361, 0, 0, 4324, 4325, 3, 984, 492, 0, 4325, 4326, 5, 382, 0, 0, 4326, 981, 1, 0, 0, 0, 4327, 4328, 3, 952, 476, 0, 4328, 983, 1, 0, 0, 0, 4329, 4330, 3, 952, 476, 0, 4330, 985, 1, 0, 0, 0, 4331, 4332, 5, 140, 0, 0, 4332, 4333, 5, 371, 0, 0, 4333, 4334, 3, 952, 476, 0, 4334, 4335, 5, 382, 0, 0, 4335, 987, 1, 0, 0, 0, 4336, 4337, 5, 134, 0, 0, 4337, 4338, 5, 371, 0, 0, 4338, 4339, 3, 952, 476, 0, 4339, 4340, 5, 382, 0, 0, 4340, 989, 1, 0, 0, 0, 4341, 4342, 5, 90, 0, 0, 4342, 4343, 5, 371, 0, 0, 4343, 4344, 3, 952, 476, 0, 4344, 4345, 5, 382, 0, 0, 4345, 991, 1, 0, 0, 0, 4346, 4347, 5, 171, 0, 0, 4347, 4348, 5, 371, 0, 0, 4348, 4349, 3, 994, 497, 0, 4349, 4350, 5, 361, 0, 0, 4350, 4351, 3, 996, 498, 0, 4351, 4352, 5, 382, 0, 0, 4352, 993, 1, 0, 0, 0, 4353, 4354, 3, 952, 476, 0, 4354, 995, 1, 0, 0, 0, 4355, 4356, 3, 952, 476, 0, 4356, 997, 1, 0, 0, 0, 4357, 4358, 5, 198, 0, 0, 4358, 4359, 5, 371, 0, 0, 4359, 4360, 3, 952, 476, 0, 4360, 4361, 5, 382, 0, 0, 4361, 999, 1, 0, 0, 0, 4362, 4363, 5, 99, 0, 0, 4363, 4364, 5, 371, 0, 0, 4364, 4365, 3, 952, 476, 0, 4365, 4366, 5, 382, 0, 0, 4366, 1001, 1, 0, 0, 0, 4367, 4368, 7, 33, 0, 0, 4368, 4369, 5, 371, 0, 0, 4369, 4370, 3, 952, 476, 0, 4370, 4371, 5, 382, 0, 0, 4371, 1003, 1, 0, 0, 0, 4372, 4373, 3, 818, 409, 0, 4373, 1005, 1, 0, 0, 0, 4374, 4375, 3, 818, 409, 0, 4375, 1007, 1, 0, 0, 0, 4376, 4378, 3, 1012, 506, 0, 4377, 4376, 1, 0, 0, 0, 4377, 4378, 1, 0, 0, 0, 4378, 4380, 1, 0, 0, 0, 4379, 4381, 3, 1014, 507, 0, 4380, 4379, 1, 0, 0, 0, 4380, 4381, 1, 0, 0, 0, 4381, 4382, 1, 0, 0, 0, 4382, 4384, 5, 101, 0, 0, 4383, 4377, 1, 0, 0, 0, 4383, 4384, 1, 0, 0, 0, 4384, 4385, 1, 0, 0, 0, 4385, 4386, 3, 1010, 505, 0, 4386, 1009, 1, 0, 0, 0, 4387, 4388, 3, 818, 409, 0, 4388, 1011, 1, 0, 0, 0, 4389, 4390, 7, 34, 0, 0, 4390, 1013, 1, 0, 0, 0, 4391, 4392, 3, 818, 409, 0, 4392, 1015, 1, 0, 0, 0, 4393, 4394, 7, 35, 0, 0, 4394, 1017, 1, 0, 0, 0, 4395, 4396, 3, 952, 476, 0, 4396, 1019, 1, 0, 0, 0, 4397, 4398, 3, 818, 409, 0, 4398, 1021, 1, 0, 0, 0, 4399, 4405, 3, 1024, 512, 0, 4400, 4405, 3, 1026, 513, 0, 4401, 4405, 3, 1030, 515, 0, 4402, 4405, 3, 1028, 514, 0, 4403, 4405, 3, 1032, 516, 0, 4404, 4399, 1, 0, 0, 0, 4404, 4400, 1, 0, 0, 0, 4404, 4401, 1, 0, 0, 0, 4404, 4402, 1, 0, 0, 0, 4404, 4403, 1, 0, 0, 0, 4405, 1023, 1, 0, 0, 0, 4406, 4414, 5, 64, 0, 0, 4407, 4408, 5, 70, 0, 0, 4408, 4410, 5, 371, 0, 0, 4409, 4411, 3, 1034, 517, 0, 4410, 4409, 1, 0, 0, 0, 4410, 4411, 1, 0, 0, 0, 4411, 4412, 1, 0, 0, 0, 4412, 4414, 5, 382, 0, 0, 4413, 4406, 1, 0, 0, 0, 4413, 4407, 1, 0, 0, 0, 4414, 1025, 1, 0, 0, 0, 4415, 4423, 5, 68, 0, 0, 4416, 4417, 5, 237, 0, 0, 4417, 4419, 5, 371, 0, 0, 4418, 4420, 3, 1036, 518, 0, 4419, 4418, 1, 0, 0, 0, 4419, 4420, 1, 0, 0, 0, 4420, 4421, 1, 0, 0, 0, 4421, 4423, 5, 382, 0, 0, 4422, 4415, 1, 0, 0, 0, 4422, 4416, 1, 0, 0, 0, 4423, 1027, 1, 0, 0, 0, 4424, 4430, 5, 137, 0, 0, 4425, 4427, 5, 371, 0, 0, 4426, 4428, 3, 1036, 518, 0, 4427, 4426, 1, 0, 0, 0, 4427, 4428, 1, 0, 0, 0, 4428, 4429, 1, 0, 0, 0, 4429, 4431, 5, 382, 0, 0, 4430, 4425, 1, 0, 0, 0, 4430, 4431, 1, 0, 0, 0, 4431, 1029, 1, 0, 0, 0, 4432, 4440, 5, 69, 0, 0, 4433, 4434, 5, 236, 0, 0, 4434, 4436, 5, 371, 0, 0, 4435, 4437, 3, 1038, 519, 0, 4436, 4435, 1, 0, 0, 0, 4436, 4437, 1, 0, 0, 0, 4437, 4438, 1, 0, 0, 0, 4438, 4440, 5, 382, 0, 0, 4439, 4432, 1, 0, 0, 0, 4439, 4433, 1, 0, 0, 0, 4440, 1031, 1, 0, 0, 0, 4441, 4449, 5, 138, 0, 0, 4442, 4443, 5, 136, 0, 0, 4443, 4445, 5, 371, 0, 0, 4444, 4446, 3, 1038, 519, 0, 4445, 4444, 1, 0, 0, 0, 4445, 4446, 1, 0, 0, 0, 4446, 4447, 1, 0, 0, 0, 4447, 4449, 5, 382, 0, 0, 4448, 4441, 1, 0, 0, 0, 4448, 4442, 1, 0, 0, 0, 4449, 1033, 1, 0, 0, 0, 4450, 4453, 3, 1130, 565, 0, 4451, 4453, 3, 942, 471, 0, 4452, 4450, 1, 0, 0, 0, 4452, 4451, 1, 0, 0, 0, 4453, 1035, 1, 0, 0, 0, 4454, 4457, 3, 1132, 566, 0, 4455, 4457, 3, 942, 471, 0, 4456, 4454, 1, 0, 0, 0, 4456, 4455, 1, 0, 0, 0, 4457, 1037, 1, 0, 0, 0, 4458, 4461, 3, 1134, 567, 0, 4459, 4461, 3, 942, 471, 0, 4460, 4458, 1, 0, 0, 0, 4460, 4459, 1, 0, 0, 0, 4461, 1039, 1, 0, 0, 0, 4462, 4463, 3, 818, 409, 0, 4463, 1041, 1, 0, 0, 0, 4464, 4465, 5, 84, 0, 0, 4465, 4466, 5, 371, 0, 0, 4466, 4467, 3, 1044, 522, 0, 4467, 4469, 5, 382, 0, 0, 4468, 4470, 3, 726, 363, 0, 4469, 4468, 1, 0, 0, 0, 4469, 4470, 1, 0, 0, 0, 4470, 1043, 1, 0, 0, 0, 4471, 4472, 3, 1046, 523, 0, 4472, 4473, 5, 361, 0, 0, 4473, 4474, 3, 1048, 524, 0, 4474, 1045, 1, 0, 0, 0, 4475, 4476, 3, 1020, 510, 0, 4476, 1047, 1, 0, 0, 0, 4477, 4478, 3, 1020, 510, 0, 4478, 1049, 1, 0, 0, 0, 4479, 4482, 3, 1052, 526, 0, 4480, 4482, 3, 968, 484, 0, 4481, 4479, 1, 0, 0, 0, 4481, 4480, 1, 0, 0, 0, 4482, 1051, 1, 0, 0, 0, 4483, 4484, 5, 83, 0, 0, 4484, 4485, 5, 371, 0, 0, 4485, 4486, 3, 1054, 527, 0, 4486, 4487, 5, 382, 0, 0, 4487, 1053, 1, 0, 0, 0, 4488, 4491, 3, 1138, 569, 0, 4489, 4491, 3, 942, 471, 0, 4490, 4488, 1, 0, 0, 0, 4490, 4489, 1, 0, 0, 0, 4491, 1055, 1, 0, 0, 0, 4492, 4493, 3, 1110, 555, 0, 4493, 1057, 1, 0, 0, 0, 4494, 4495, 3, 1112, 556, 0, 4495, 1059, 1, 0, 0, 0, 4496, 4497, 3, 1110, 555, 0, 4497, 1061, 1, 0, 0, 0, 4498, 4499, 3, 1110, 555, 0, 4499, 1063, 1, 0, 0, 0, 4500, 4503, 3, 1112, 556, 0, 4501, 4503, 3, 1066, 533, 0, 4502, 4500, 1, 0, 0, 0, 4502, 4501, 1, 0, 0, 0, 4503, 1065, 1, 0, 0, 0, 4504, 4505, 7, 36, 0, 0, 4505, 1067, 1, 0, 0, 0, 4506, 4507, 3, 1110, 555, 0, 4507, 1069, 1, 0, 0, 0, 4508, 4509, 3, 1110, 555, 0, 4509, 1071, 1, 0, 0, 0, 4510, 4511, 3, 1110, 555, 0, 4511, 1073, 1, 0, 0, 0, 4512, 4515, 3, 1112, 556, 0, 4513, 4515, 3, 1076, 538, 0, 4514, 4512, 1, 0, 0, 0, 4514, 4513, 1, 0, 0, 0, 4515, 1075, 1, 0, 0, 0, 4516, 4517, 7, 36, 0, 0, 4517, 1077, 1, 0, 0, 0, 4518, 4519, 3, 1110, 555, 0, 4519, 1079, 1, 0, 0, 0, 4520, 4521, 3, 1110, 555, 0, 4521, 1081, 1, 0, 0, 0, 4522, 4523, 3, 1110, 555, 0, 4523, 1083, 1, 0, 0, 0, 4524, 4525, 3, 1110, 555, 0, 4525, 1085, 1, 0, 0, 0, 4526, 4527, 3, 1092, 546, 0, 4527, 1087, 1, 0, 0, 0, 4528, 4529, 3, 1092, 546, 0, 4529, 1089, 1, 0, 0, 0, 4530, 4531, 3, 1112, 556, 0, 4531, 1091, 1, 0, 0, 0, 4532, 4533, 3, 1112, 556, 0, 4533, 1093, 1, 0, 0, 0, 4534, 4537, 3, 1118, 559, 0, 4535, 4537, 3, 1096, 548, 0, 4536, 4534, 1, 0, 0, 0, 4536, 4535, 1, 0, 0, 0, 4537, 1095, 1, 0, 0, 0, 4538, 4547, 5, 2, 0, 0, 4539, 4547, 3, 1116, 558, 0, 4540, 4547, 5, 7, 0, 0, 4541, 4547, 3, 1098, 549, 0, 4542, 4547, 3, 1136, 568, 0, 4543, 4547, 3, 1128, 564, 0, 4544, 4547, 3, 1106, 553, 0, 4545, 4547, 3, 1108, 554, 0, 4546, 4538, 1, 0, 0, 0, 4546, 4539, 1, 0, 0, 0, 4546, 4540, 1, 0, 0, 0, 4546, 4541, 1, 0, 0, 0, 4546, 4542, 1, 0, 0, 0, 4546, 4543, 1, 0, 0, 0, 4546, 4544, 1, 0, 0, 0, 4546, 4545, 1, 0, 0, 0, 4547, 1097, 1, 0, 0, 0, 4548, 4552, 3, 1100, 550, 0, 4549, 4552, 3, 1102, 551, 0, 4550, 4552, 3, 1104, 552, 0, 4551, 4548, 1, 0, 0, 0, 4551, 4549, 1, 0, 0, 0, 4551, 4550, 1, 0, 0, 0, 4552, 1099, 1, 0, 0, 0, 4553, 4554, 5, 70, 0, 0, 4554, 4555, 3, 1130, 565, 0, 4555, 1101, 1, 0, 0, 0, 4556, 4557, 5, 207, 0, 0, 4557, 4558, 3, 1132, 566, 0, 4558, 1103, 1, 0, 0, 0, 4559, 4560, 7, 37, 0, 0, 4560, 4561, 3, 1134, 567, 0, 4561, 1105, 1, 0, 0, 0, 4562, 4563, 3, 936, 468, 0, 4563, 1107, 1, 0, 0, 0, 4564, 4565, 3, 942, 471, 0, 4565, 1109, 1, 0, 0, 0, 4566, 4570, 3, 1112, 556, 0, 4567, 4570, 5, 4, 0, 0, 4568, 4570, 5, 5, 0, 0, 4569, 4566, 1, 0, 0, 0, 4569, 4567, 1, 0, 0, 0, 4569, 4568, 1, 0, 0, 0, 4570, 1111, 1, 0, 0, 0, 4571, 4574, 5, 325, 0, 0, 4572, 4574, 3, 1146, 573, 0, 4573, 4571, 1, 0, 0, 0, 4573, 4572, 1, 0, 0, 0, 4574, 1113, 1, 0, 0, 0, 4575, 4576, 3, 1116, 558, 0, 4576, 1115, 1, 0, 0, 0, 4577, 4578, 7, 38, 0, 0, 4578, 1117, 1, 0, 0, 0, 4579, 4582, 3, 1120, 560, 0, 4580, 4582, 3, 1122, 561, 0, 4581, 4579, 1, 0, 0, 0, 4581, 4580, 1, 0, 0, 0, 4582, 1119, 1, 0, 0, 0, 4583, 4589, 5, 8, 0, 0, 4584, 4589, 5, 11, 0, 0, 4585, 4589, 5, 12, 0, 0, 4586, 4589, 5, 14, 0, 0, 4587, 4589, 3, 1124, 562, 0, 4588, 4583, 1, 0, 0, 0, 4588, 4584, 1, 0, 0, 0, 4588, 4585, 1, 0, 0, 0, 4588, 4586, 1, 0, 0, 0, 4588, 4587, 1, 0, 0, 0, 4589, 1121, 1, 0, 0, 0, 4590, 4591, 7, 39, 0, 0, 4591, 1123, 1, 0, 0, 0, 4592, 4593, 7, 40, 0, 0, 4593, 1125, 1, 0, 0, 0, 4594, 4595, 5, 16, 0, 0, 4595, 1127, 1, 0, 0, 0, 4596, 4597, 5, 154, 0, 0, 4597, 1129, 1, 0, 0, 0, 4598, 4599, 3, 1116, 558, 0, 4599, 1131, 1, 0, 0, 0, 4600, 4601, 3, 1116, 558, 0, 4601, 1133, 1, 0, 0, 0, 4602, 4603, 3, 1116, 558, 0, 4603, 1135, 1, 0, 0, 0, 4604, 4605, 5, 83, 0, 0, 4605, 4606, 3, 1138, 569, 0, 4606, 1137, 1, 0, 0, 0, 4607, 4608, 3, 1116, 558, 0, 4608, 1139, 1, 0, 0, 0, 4609, 4610, 7, 41, 0, 0, 4610, 1141, 1, 0, 0, 0, 4611, 4612, 7, 42, 0, 0, 4612, 1143, 1, 0, 0, 0, 4613, 4614, 7, 43, 0, 0, 4614, 1145, 1, 0, 0, 0, 4615, 4616, 7, 44, 0, 0, 4616, 1147, 1, 0, 0, 0, 511, 1150, 1157, 1161, 1166, 1171, 1176, 1179, 1184, 1186, 1190, 1193, 1197, 1205, 1211, 1225, 1228, 1235, 1248, 1255, 1258, 1263, 1269, 1272, 1282, 1289, 1298, 1319, 1322, 1329, 1334, 1340, 1346, 1350, 1355, 1362, 1365, 1373, 1380, 1383, 1395, 1398, 1409, 1417, 1425, 1430, 1434, 1442, 1449, 1457, 1463, 1469, 1474, 1477, 1482, 1485, 1488, 1492, 1495, 1499, 1503, 1506, 1509, 1512, 1524, 1529, 1535, 1542, 1547, 1551, 1557, 1562, 1565, 1573, 1579, 1587, 1591, 1596, 1603, 1607, 1612, 1618, 1622, 1628, 1641, 1647, 1659, 1675, 1680, 1691, 1701, 1719, 1724, 1728, 1732, 1736, 1738, 1744, 1749, 1756, 1772, 1776, 1781, 1785, 1792, 1796, 1813, 1818, 1825, 1835, 1843, 1848, 1864, 1867, 1871, 1874, 1878, 1881, 1887, 1891, 1894, 1898, 1905, 1910, 1917, 1921, 1925, 1928, 1931, 1934, 1937, 1940, 1942, 1949, 1954, 1965, 1972, 1982, 1985, 1992, 1995, 2001, 2010, 2016, 2020, 2027, 2040, 2050, 2055, 2060, 2064, 2067, 2071, 2081, 2084, 2088, 2091, 2098, 2102, 2105, 2125, 2134, 2139, 2146, 2150, 2156, 2162, 2168, 2171, 2174, 2179, 2184, 2187, 2191, 2195, 2202, 2206, 2209, 2215, 2218, 2221, 2229, 2234, 2237, 2242, 2245, 2250, 2253, 2257, 2260, 2263, 2275, 2282, 2284, 2289, 2298, 2303, 2307, 2314, 2317, 2320, 2323, 2334, 2348, 2357, 2366, 2400, 2403, 2407, 2426, 2434, 2436, 2447, 2455, 2459, 2474, 2507, 2516, 2526, 2536, 2547, 2553, 2563, 2572, 2599, 2609, 2622, 2627, 2643, 2647, 2663, 2668, 2671, 2681, 2694, 2700, 2709, 2715, 2722, 2727, 2734, 2742, 2745, 2753, 2756, 2765, 2769, 2772, 2778, 2785, 2793, 2795, 2810, 2815, 2819, 2823, 2827, 2831, 2834, 2840, 2845, 2849, 2852, 2856, 2859, 2868, 2871, 2881, 2884, 2888, 2892, 2896, 2901, 2908, 2911, 2915, 2918, 2925, 2928, 2938, 2970, 2973, 2981, 2984, 2993, 2997, 3032, 3039, 3044, 3053, 3058, 3065, 3081, 3084, 3091, 3094, 3099, 3102, 3105, 3110, 3114, 3122, 3127, 3138, 3141, 3143, 3145, 3157, 3161, 3168, 3173, 3176, 3183, 3186, 3193, 3196, 3198, 3205, 3210, 3213, 3220, 3223, 3230, 3233, 3235, 3245, 3249, 3253, 3257, 3261, 3265, 3269, 3273, 3277, 3281, 3288, 3291, 3295, 3298, 3301, 3305, 3309, 3313, 3317, 3321, 3325, 3329, 3336, 3339, 3343, 3347, 3351, 3355, 3359, 3363, 3367, 3371, 3376, 3383, 3386, 3391, 3393, 3400, 3404, 3406, 3414, 3418, 3422, 3426, 3430, 3437, 3441, 3444, 3448, 3452, 3455, 3457, 3461, 3468, 3473, 3480, 3482, 3487, 3493, 3496, 3498, 3502, 3507, 3514, 3516, 3521, 3528, 3530, 3537, 3545, 3551, 3555, 3562, 3566, 3569, 3574, 3578, 3582, 3586, 3590, 3594, 3597, 3601, 3605, 3609, 3612, 3616, 3620, 3623, 3630, 3634, 3637, 3641, 3643, 3647, 3656, 3664, 3679, 3704, 3711, 3720, 3727, 3730, 3739, 3751, 3755, 3763, 3769, 3777, 3794, 3808, 3827, 3832, 3838, 3858, 3865, 3867, 3876, 3885, 3909, 3918, 3939, 3946, 3955, 3969, 3973, 3977, 3981, 3996, 4012, 4016, 4020, 4027, 4030, 4038, 4041, 4060, 4067, 4079, 4083, 4096, 4106, 4111, 4130, 4156, 4170, 4187, 4191, 4200, 4206, 4212, 4221, 4235, 4243, 4245, 4261, 4266, 4278, 4377, 4380, 4383, 4404, 4410, 4413, 4419, 4422, 4427, 4430, 4436, 4439, 4445, 4448, 4452, 4456, 4460, 4469, 4481, 4490, 4502, 4514, 4536, 4546, 4551, 4569, 4573, 4581, 4588] \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_20240412.tokens b/developer/javac/ANTLR/GQL_20240412.tokens new file mode 100644 index 0000000..275f4fc --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240412.tokens @@ -0,0 +1,755 @@ +IMPLIES=1 +BOOLEAN_LITERAL=2 +SINGLE_QUOTED_CHARACTER_SEQUENCE=3 +DOUBLE_QUOTED_CHARACTER_SEQUENCE=4 +ACCENT_QUOTED_CHARACTER_SEQUENCE=5 +NO_ESCAPE=6 +BYTE_STRING_LITERAL=7 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX=8 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX=9 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=10 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX=11 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX=12 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=13 +UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX=14 +UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX=15 +UNSIGNED_DECIMAL_INTEGER=16 +UNSIGNED_HEXADECIMAL_INTEGER=17 +UNSIGNED_OCTAL_INTEGER=18 +UNSIGNED_BINARY_INTEGER=19 +ABS=20 +ACOS=21 +ALL=22 +ALL_DIFFERENT=23 +AND=24 +ANY=25 +ARRAY=26 +AS=27 +ASC=28 +ASCENDING=29 +ASIN=30 +AT=31 +ATAN=32 +AVG=33 +BIG=34 +BIGINT=35 +BINARY=36 +BOOL=37 +BOOLEAN=38 +BOTH=39 +BTRIM=40 +BY=41 +BYTE_LENGTH=42 +BYTES=43 +CALL=44 +CARDINALITY=45 +CASE=46 +CAST=47 +CEIL=48 +CEILING=49 +CHAR=50 +CHAR_LENGTH=51 +CHARACTER_LENGTH=52 +CHARACTERISTICS=53 +CLOSE=54 +COALESCE=55 +COLLECT_LIST=56 +COMMIT=57 +COPY=58 +COS=59 +COSH=60 +COT=61 +COUNT=62 +CREATE=63 +CURRENT_DATE=64 +CURRENT_GRAPH=65 +CURRENT_PROPERTY_GRAPH=66 +CURRENT_SCHEMA=67 +CURRENT_TIME=68 +CURRENT_TIMESTAMP=69 +DATE=70 +DATETIME=71 +DAY=72 +DEC=73 +DECIMAL=74 +DEGREES=75 +DELETE=76 +DESC=77 +DESCENDING=78 +DETACH=79 +DISTINCT=80 +DOUBLE=81 +DROP=82 +DURATION=83 +DURATION_BETWEEN=84 +ELEMENT_ID=85 +ELSE=86 +END=87 +EXCEPT=88 +EXISTS=89 +EXP=90 +FILTER=91 +FINISH=92 +FLOAT=93 +FLOAT16=94 +FLOAT32=95 +FLOAT64=96 +FLOAT128=97 +FLOAT256=98 +FLOOR=99 +FOR=100 +FROM=101 +GROUP=102 +HAVING=103 +HOME_GRAPH=104 +HOME_PROPERTY_GRAPH=105 +HOME_SCHEMA=106 +HOUR=107 +IF=108 +IN=109 +INSERT=110 +INT=111 +INTEGER=112 +INT8=113 +INTEGER8=114 +INT16=115 +INTEGER16=116 +INT32=117 +INTEGER32=118 +INT64=119 +INTEGER64=120 +INT128=121 +INTEGER128=122 +INT256=123 +INTEGER256=124 +INTERSECT=125 +INTERVAL=126 +IS=127 +LEADING=128 +LEFT=129 +LET=130 +LIKE=131 +LIMIT=132 +LIST=133 +LN=134 +LOCAL=135 +LOCAL_DATETIME=136 +LOCAL_TIME=137 +LOCAL_TIMESTAMP=138 +LOG=139 +LOG10=140 +LOWER=141 +LTRIM=142 +MATCH=143 +MAX=144 +MIN=145 +MINUTE=146 +MOD=147 +MONTH=148 +NEXT=149 +NODETACH=150 +NORMALIZE=151 +NOT=152 +NOTHING=153 +NULL=154 +NULLS=155 +NULLIF=156 +OCTET_LENGTH=157 +OF=158 +OFFSET=159 +OPTIONAL=160 +OR=161 +ORDER=162 +OTHERWISE=163 +PARAMETER=164 +PARAMETERS=165 +PATH=166 +PATH_LENGTH=167 +PATHS=168 +PERCENTILE_CONT=169 +PERCENTILE_DISC=170 +POWER=171 +PRECISION=172 +PROPERTY_EXISTS=173 +RADIANS=174 +REAL=175 +RECORD=176 +REMOVE=177 +REPLACE=178 +RESET=179 +RETURN=180 +RIGHT=181 +ROLLBACK=182 +RTRIM=183 +SAME=184 +SCHEMA=185 +SECOND=186 +SELECT=187 +SESSION=188 +SESSION_USER=189 +SET=190 +SIGNED=191 +SIN=192 +SINH=193 +SIZE=194 +SKIP_RESERVED_WORD=195 +SMALL=196 +SMALLINT=197 +SQRT=198 +START=199 +STDDEV_POP=200 +STDDEV_SAMP=201 +STRING=202 +SUM=203 +TAN=204 +TANH=205 +THEN=206 +TIME=207 +TIMESTAMP=208 +TRAILING=209 +TRIM=210 +TYPED=211 +UBIGINT=212 +UINT=213 +UINT8=214 +UINT16=215 +UINT32=216 +UINT64=217 +UINT128=218 +UINT256=219 +UNION=220 +UNSIGNED=221 +UPPER=222 +USE=223 +USMALLINT=224 +VALUE=225 +VARBINARY=226 +VARCHAR=227 +VARIABLE=228 +WHEN=229 +WHERE=230 +WITH=231 +XOR=232 +YEAR=233 +YIELD=234 +ZONED=235 +ZONED_DATETIME=236 +ZONED_TIME=237 +ABSTRACT=238 +AGGREGATE=239 +AGGREGATES=240 +ALTER=241 +CATALOG=242 +CLEAR=243 +CLONE=244 +CONSTRAINT=245 +CURRENT_ROLE=246 +CURRENT_USER=247 +DATA=248 +DIRECTORY=249 +DRYRUN=250 +EXACT=251 +EXISTING=252 +FUNCTION=253 +GQLSTATUS=254 +GRANT=255 +INSTANT=256 +INFINITY=257 +NUMBER=258 +NUMERIC=259 +ON=260 +OPEN=261 +PARTITION=262 +PROCEDURE=263 +PRODUCT=264 +PROJECT=265 +QUERY=266 +RECORDS=267 +REFERENCE=268 +RENAME=269 +REVOKE=270 +SUBSTRING=271 +SYSTEM_USER=272 +TEMPORAL=273 +UNIQUE=274 +UNIT=275 +VALUES=276 +ACYCLIC=277 +BINDING=278 +BINDINGS=279 +CONNECTING=280 +DESTINATION=281 +DIFFERENT=282 +DIRECTED=283 +EDGE=284 +EDGES=285 +ELEMENT=286 +ELEMENTS=287 +FIRST=288 +GRAPH=289 +GROUPS=290 +KEEP=291 +LABEL=292 +LABELED=293 +LABELS=294 +LAST=295 +NFC=296 +NFD=297 +NFKC=298 +NFKD=299 +NO=300 +NODE=301 +NORMALIZED=302 +ONLY=303 +ORDINALITY=304 +PROPERTY=305 +READ=306 +RELATIONSHIP=307 +RELATIONSHIPS=308 +REPEATABLE=309 +SHORTEST=310 +SIMPLE=311 +SOURCE=312 +TABLE=313 +TEMP=314 +TO=315 +TRAIL=316 +TRANSACTION=317 +TYPE=318 +UNDIRECTED=319 +VERTEX=320 +WALK=321 +WITHOUT=322 +WRITE=323 +ZONE=324 +REGULAR_IDENTIFIER=325 +SUBSTITUTED_PARAMETER_REFERENCE=326 +GENERAL_PARAMETER_REFERENCE=327 +MULTISET_ALTERNATION_OPERATOR=328 +BRACKET_RIGHT_ARROW=329 +BRACKET_TILDE_RIGHT_ARROW=330 +CONCATENATION_OPERATOR=331 +DOUBLE_COLON=332 +DOUBLE_DOLLAR_SIGN=333 +DOUBLE_PERIOD=334 +GREATER_THAN_OR_EQUALS_OPERATOR=335 +LEFT_ARROW=336 +LEFT_ARROW_TILDE=337 +LEFT_ARROW_BRACKET=338 +LEFT_ARROW_TILDE_BRACKET=339 +LEFT_MINUS_RIGHT=340 +LEFT_MINUS_SLASH=341 +LEFT_TILDE_SLASH=342 +LESS_THAN_OR_EQUALS_OPERATOR=343 +MINUS_LEFT_BRACKET=344 +MINUS_SLASH=345 +NOT_EQUALS_OPERATOR=346 +RIGHT_ARROW=347 +RIGHT_BRACKET_MINUS=348 +RIGHT_BRACKET_TILDE=349 +RIGHT_DOUBLE_ARROW=350 +SLASH_MINUS=351 +SLASH_MINUS_RIGHT=352 +SLASH_TILDE=353 +SLASH_TILDE_RIGHT=354 +TILDE_LEFT_BRACKET=355 +TILDE_RIGHT_ARROW=356 +TILDE_SLASH=357 +AMPERSAND=358 +ASTERISK=359 +COLON=360 +COMMA=361 +COMMERCIAL_AT=362 +DOLLAR_SIGN=363 +DOUBLE_QUOTE=364 +EQUALS_OPERATOR=365 +EXCLAMATION_MARK=366 +RIGHT_ANGLE_BRACKET=367 +GRAVE_ACCENT=368 +LEFT_BRACE=369 +LEFT_BRACKET=370 +LEFT_PAREN=371 +LEFT_ANGLE_BRACKET=372 +MINUS_SIGN=373 +PERCENT=374 +PERIOD=375 +PLUS_SIGN=376 +QUESTION_MARK=377 +QUOTE=378 +REVERSE_SOLIDUS=379 +RIGHT_BRACE=380 +RIGHT_BRACKET=381 +RIGHT_PAREN=382 +SOLIDUS=383 +TILDE=384 +UNDERSCORE=385 +VERTICAL_BAR=386 +SP=387 +WHITESPACE=388 +BRACKETED_COMMENT=389 +SIMPLE_COMMENT_SOLIDUS=390 +SIMPLE_COMMENT_MINUS=391 +'ABS'=20 +'ACOS'=21 +'ALL'=22 +'ALL_DIFFERENT'=23 +'AND'=24 +'ANY'=25 +'ARRAY'=26 +'AS'=27 +'ASC'=28 +'ASCENDING'=29 +'ASIN'=30 +'AT'=31 +'ATAN'=32 +'AVG'=33 +'BIG'=34 +'BIGINT'=35 +'BINARY'=36 +'BOOL'=37 +'BOOLEAN'=38 +'BOTH'=39 +'BTRIM'=40 +'BY'=41 +'BYTE_LENGTH'=42 +'BYTES'=43 +'CALL'=44 +'CARDINALITY'=45 +'CASE'=46 +'CAST'=47 +'CEIL'=48 +'CEILING'=49 +'CHAR'=50 +'CHAR_LENGTH'=51 +'CHARACTER_LENGTH'=52 +'CHARACTERISTICS'=53 +'CLOSE'=54 +'COALESCE'=55 +'COLLECT_LIST'=56 +'COMMIT'=57 +'COPY'=58 +'COS'=59 +'COSH'=60 +'COT'=61 +'COUNT'=62 +'CREATE'=63 +'CURRENT_DATE'=64 +'CURRENT_GRAPH'=65 +'CURRENT_PROPERTY_GRAPH'=66 +'CURRENT_SCHEMA'=67 +'CURRENT_TIME'=68 +'CURRENT_TIMESTAMP'=69 +'DATE'=70 +'DATETIME'=71 +'DAY'=72 +'DEC'=73 +'DECIMAL'=74 +'DEGREES'=75 +'DELETE'=76 +'DESC'=77 +'DESCENDING'=78 +'DETACH'=79 +'DISTINCT'=80 +'DOUBLE'=81 +'DROP'=82 +'DURATION'=83 +'DURATION_BETWEEN'=84 +'ELEMENT_ID'=85 +'ELSE'=86 +'END'=87 +'EXCEPT'=88 +'EXISTS'=89 +'EXP'=90 +'FILTER'=91 +'FINISH'=92 +'FLOAT'=93 +'FLOAT16'=94 +'FLOAT32'=95 +'FLOAT64'=96 +'FLOAT128'=97 +'FLOAT256'=98 +'FLOOR'=99 +'FOR'=100 +'FROM'=101 +'GROUP'=102 +'HAVING'=103 +'HOME_GRAPH'=104 +'HOME_PROPERTY_GRAPH'=105 +'HOME_SCHEMA'=106 +'HOUR'=107 +'IF'=108 +'IN'=109 +'INSERT'=110 +'INT'=111 +'INTEGER'=112 +'INT8'=113 +'INTEGER8'=114 +'INT16'=115 +'INTEGER16'=116 +'INT32'=117 +'INTEGER32'=118 +'INT64'=119 +'INTEGER64'=120 +'INT128'=121 +'INTEGER128'=122 +'INT256'=123 +'INTEGER256'=124 +'INTERSECT'=125 +'INTERVAL'=126 +'IS'=127 +'LEADING'=128 +'LEFT'=129 +'LET'=130 +'LIKE'=131 +'LIMIT'=132 +'LIST'=133 +'LN'=134 +'LOCAL'=135 +'LOCAL_DATETIME'=136 +'LOCAL_TIME'=137 +'LOCAL_TIMESTAMP'=138 +'LOG'=139 +'LOG10'=140 +'LOWER'=141 +'LTRIM'=142 +'MATCH'=143 +'MAX'=144 +'MIN'=145 +'MINUTE'=146 +'MOD'=147 +'MONTH'=148 +'NEXT'=149 +'NODETACH'=150 +'NORMALIZE'=151 +'NOT'=152 +'NOTHING'=153 +'NULL'=154 +'NULLS'=155 +'NULLIF'=156 +'OCTET_LENGTH'=157 +'OF'=158 +'OFFSET'=159 +'OPTIONAL'=160 +'OR'=161 +'ORDER'=162 +'OTHERWISE'=163 +'PARAMETER'=164 +'PARAMETERS'=165 +'PATH'=166 +'PATH_LENGTH'=167 +'PATHS'=168 +'PERCENTILE_CONT'=169 +'PERCENTILE_DISC'=170 +'POWER'=171 +'PRECISION'=172 +'PROPERTY_EXISTS'=173 +'RADIANS'=174 +'REAL'=175 +'RECORD'=176 +'REMOVE'=177 +'REPLACE'=178 +'RESET'=179 +'RETURN'=180 +'RIGHT'=181 +'ROLLBACK'=182 +'RTRIM'=183 +'SAME'=184 +'SCHEMA'=185 +'SECOND'=186 +'SELECT'=187 +'SESSION'=188 +'SESSION_USER'=189 +'SET'=190 +'SIGNED'=191 +'SIN'=192 +'SINH'=193 +'SIZE'=194 +'SKIP'=195 +'SMALL'=196 +'SMALLINT'=197 +'SQRT'=198 +'START'=199 +'STDDEV_POP'=200 +'STDDEV_SAMP'=201 +'STRING'=202 +'SUM'=203 +'TAN'=204 +'TANH'=205 +'THEN'=206 +'TIME'=207 +'TIMESTAMP'=208 +'TRAILING'=209 +'TRIM'=210 +'TYPED'=211 +'UBIGINT'=212 +'UINT'=213 +'UINT8'=214 +'UINT16'=215 +'UINT32'=216 +'UINT64'=217 +'UINT128'=218 +'UINT256'=219 +'UNION'=220 +'UNSIGNED'=221 +'UPPER'=222 +'USE'=223 +'USMALLINT'=224 +'VALUE'=225 +'VARBINARY'=226 +'VARCHAR'=227 +'VARIABLE'=228 +'WHEN'=229 +'WHERE'=230 +'WITH'=231 +'XOR'=232 +'YEAR'=233 +'YIELD'=234 +'ZONED'=235 +'ZONED_DATETIME'=236 +'ZONED_TIME'=237 +'ABSTRACT'=238 +'AGGREGATE'=239 +'AGGREGATES'=240 +'ALTER'=241 +'CATALOG'=242 +'CLEAR'=243 +'CLONE'=244 +'CONSTRAINT'=245 +'CURRENT_ROLE'=246 +'CURRENT_USER'=247 +'DATA'=248 +'DIRECTORY'=249 +'DRYRUN'=250 +'EXACT'=251 +'EXISTING'=252 +'FUNCTION'=253 +'GQLSTATUS'=254 +'GRANT'=255 +'INSTANT'=256 +'INFINITY'=257 +'NUMBER'=258 +'NUMERIC'=259 +'ON'=260 +'OPEN'=261 +'PARTITION'=262 +'PROCEDURE'=263 +'PRODUCT'=264 +'PROJECT'=265 +'QUERY'=266 +'RECORDS'=267 +'REFERENCE'=268 +'RENAME'=269 +'REVOKE'=270 +'SUBSTRING'=271 +'SYSTEM_USER'=272 +'TEMPORAL'=273 +'UNIQUE'=274 +'UNIT'=275 +'VALUES'=276 +'ACYCLIC'=277 +'BINDING'=278 +'BINDINGS'=279 +'CONNECTING'=280 +'DESTINATION'=281 +'DIFFERENT'=282 +'DIRECTED'=283 +'EDGE'=284 +'EDGES'=285 +'ELEMENT'=286 +'ELEMENTS'=287 +'FIRST'=288 +'GRAPH'=289 +'GROUPS'=290 +'KEEP'=291 +'LABEL'=292 +'LABELED'=293 +'LABELS'=294 +'LAST'=295 +'NFC'=296 +'NFD'=297 +'NFKC'=298 +'NFKD'=299 +'NO'=300 +'NODE'=301 +'NORMALIZED'=302 +'ONLY'=303 +'ORDINALITY'=304 +'PROPERTY'=305 +'READ'=306 +'RELATIONSHIP'=307 +'RELATIONSHIPS'=308 +'REPEATABLE'=309 +'SHORTEST'=310 +'SIMPLE'=311 +'SOURCE'=312 +'TABLE'=313 +'TEMP'=314 +'TO'=315 +'TRAIL'=316 +'TRANSACTION'=317 +'TYPE'=318 +'UNDIRECTED'=319 +'VERTEX'=320 +'WALK'=321 +'WITHOUT'=322 +'WRITE'=323 +'ZONE'=324 +'|+|'=328 +']->'=329 +']~>'=330 +'||'=331 +'::'=332 +'$$'=333 +'..'=334 +'>='=335 +'<-'=336 +'<~'=337 +'<-['=338 +'<~['=339 +'<->'=340 +'<-/'=341 +'<~/'=342 +'<='=343 +'-['=344 +'-/'=345 +'<>'=346 +'->'=347 +']-'=348 +']~'=349 +'=>'=350 +'/-'=351 +'/->'=352 +'/~'=353 +'/~>'=354 +'~['=355 +'~>'=356 +'~/'=357 +'&'=358 +'*'=359 +':'=360 +','=361 +'@'=362 +'$'=363 +'"'=364 +'='=365 +'!'=366 +'>'=367 +'`'=368 +'{'=369 +'['=370 +'('=371 +'<'=372 +'-'=373 +'%'=374 +'.'=375 +'+'=376 +'?'=377 +'\''=378 +'\\'=379 +'}'=380 +']'=381 +')'=382 +'/'=383 +'~'=384 +'_'=385 +'|'=386 diff --git a/developer/javac/ANTLR/GQL_20240412BaseListener.java b/developer/javac/ANTLR/GQL_20240412BaseListener.java new file mode 100644 index 0000000..648dd01 --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240412BaseListener.java @@ -0,0 +1,7359 @@ +// Generated from java-escape by ANTLR 4.11.1 + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link GQL_20240412Listener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +@SuppressWarnings("CheckReturnValue") +public class GQL_20240412BaseListener implements GQL_20240412Listener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGqlProgram(GQL_20240412Parser.GqlProgramContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGqlProgram(GQL_20240412Parser.GqlProgramContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProgramActivity(GQL_20240412Parser.ProgramActivityContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProgramActivity(GQL_20240412Parser.ProgramActivityContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionActivity(GQL_20240412Parser.SessionActivityContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionActivity(GQL_20240412Parser.SessionActivityContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTransactionActivity(GQL_20240412Parser.TransactionActivityContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTransactionActivity(GQL_20240412Parser.TransactionActivityContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEndTransactionCommand(GQL_20240412Parser.EndTransactionCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEndTransactionCommand(GQL_20240412Parser.EndTransactionCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetCommand(GQL_20240412Parser.SessionSetCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetCommand(GQL_20240412Parser.SessionSetCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetSchemaClause(GQL_20240412Parser.SessionSetSchemaClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetSchemaClause(GQL_20240412Parser.SessionSetSchemaClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetGraphClause(GQL_20240412Parser.SessionSetGraphClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetGraphClause(GQL_20240412Parser.SessionSetGraphClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetTimeZoneClause(GQL_20240412Parser.SessionSetTimeZoneClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetTimeZoneClause(GQL_20240412Parser.SessionSetTimeZoneClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetTimeZoneValue(GQL_20240412Parser.SetTimeZoneValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetTimeZoneValue(GQL_20240412Parser.SetTimeZoneValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetParameterClause(GQL_20240412Parser.SessionSetParameterClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetParameterClause(GQL_20240412Parser.SessionSetParameterClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetGraphParameterClause(GQL_20240412Parser.SessionSetGraphParameterClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetGraphParameterClause(GQL_20240412Parser.SessionSetGraphParameterClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetBindingTableParameterClause(GQL_20240412Parser.SessionSetBindingTableParameterClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetBindingTableParameterClause(GQL_20240412Parser.SessionSetBindingTableParameterClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetValueParameterClause(GQL_20240412Parser.SessionSetValueParameterClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetValueParameterClause(GQL_20240412Parser.SessionSetValueParameterClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionSetParameterName(GQL_20240412Parser.SessionSetParameterNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionSetParameterName(GQL_20240412Parser.SessionSetParameterNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionResetCommand(GQL_20240412Parser.SessionResetCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionResetCommand(GQL_20240412Parser.SessionResetCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionResetArguments(GQL_20240412Parser.SessionResetArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionResetArguments(GQL_20240412Parser.SessionResetArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionCloseCommand(GQL_20240412Parser.SessionCloseCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionCloseCommand(GQL_20240412Parser.SessionCloseCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSessionParameterSpecification(GQL_20240412Parser.SessionParameterSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSessionParameterSpecification(GQL_20240412Parser.SessionParameterSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStartTransactionCommand(GQL_20240412Parser.StartTransactionCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStartTransactionCommand(GQL_20240412Parser.StartTransactionCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTransactionCharacteristics(GQL_20240412Parser.TransactionCharacteristicsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTransactionCharacteristics(GQL_20240412Parser.TransactionCharacteristicsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTransactionMode(GQL_20240412Parser.TransactionModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTransactionMode(GQL_20240412Parser.TransactionModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterRollbackCommand(GQL_20240412Parser.RollbackCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRollbackCommand(GQL_20240412Parser.RollbackCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCommitCommand(GQL_20240412Parser.CommitCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCommitCommand(GQL_20240412Parser.CommitCommandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNestedProcedureSpecification(GQL_20240412Parser.NestedProcedureSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNestedProcedureSpecification(GQL_20240412Parser.NestedProcedureSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProcedureSpecification(GQL_20240412Parser.ProcedureSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProcedureSpecification(GQL_20240412Parser.ProcedureSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNestedDataModifyingProcedureSpecification(GQL_20240412Parser.NestedDataModifyingProcedureSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNestedDataModifyingProcedureSpecification(GQL_20240412Parser.NestedDataModifyingProcedureSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNestedQuerySpecification(GQL_20240412Parser.NestedQuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNestedQuerySpecification(GQL_20240412Parser.NestedQuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProcedureBody(GQL_20240412Parser.ProcedureBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProcedureBody(GQL_20240412Parser.ProcedureBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingVariableDefinitionBlock(GQL_20240412Parser.BindingVariableDefinitionBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingVariableDefinitionBlock(GQL_20240412Parser.BindingVariableDefinitionBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingVariableDefinition(GQL_20240412Parser.BindingVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingVariableDefinition(GQL_20240412Parser.BindingVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatementBlock(GQL_20240412Parser.StatementBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatementBlock(GQL_20240412Parser.StatementBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatement(GQL_20240412Parser.StatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatement(GQL_20240412Parser.StatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNextStatement(GQL_20240412Parser.NextStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNextStatement(GQL_20240412Parser.NextStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphVariableDefinition(GQL_20240412Parser.GraphVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphVariableDefinition(GQL_20240412Parser.GraphVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOptTypedGraphInitializer(GQL_20240412Parser.OptTypedGraphInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOptTypedGraphInitializer(GQL_20240412Parser.OptTypedGraphInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphInitializer(GQL_20240412Parser.GraphInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphInitializer(GQL_20240412Parser.GraphInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingTableVariableDefinition(GQL_20240412Parser.BindingTableVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingTableVariableDefinition(GQL_20240412Parser.BindingTableVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOptTypedBindingTableInitializer(GQL_20240412Parser.OptTypedBindingTableInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOptTypedBindingTableInitializer(GQL_20240412Parser.OptTypedBindingTableInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingTableInitializer(GQL_20240412Parser.BindingTableInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingTableInitializer(GQL_20240412Parser.BindingTableInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueVariableDefinition(GQL_20240412Parser.ValueVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueVariableDefinition(GQL_20240412Parser.ValueVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOptTypedValueInitializer(GQL_20240412Parser.OptTypedValueInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOptTypedValueInitializer(GQL_20240412Parser.OptTypedValueInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueInitializer(GQL_20240412Parser.ValueInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueInitializer(GQL_20240412Parser.ValueInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphExpression(GQL_20240412Parser.GraphExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphExpression(GQL_20240412Parser.GraphExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCurrentGraph(GQL_20240412Parser.CurrentGraphContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCurrentGraph(GQL_20240412Parser.CurrentGraphContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingTableExpression(GQL_20240412Parser.BindingTableExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingTableExpression(GQL_20240412Parser.BindingTableExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNestedBindingTableQuerySpecification(GQL_20240412Parser.NestedBindingTableQuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNestedBindingTableQuerySpecification(GQL_20240412Parser.NestedBindingTableQuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObjectExpressionPrimary(GQL_20240412Parser.ObjectExpressionPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObjectExpressionPrimary(GQL_20240412Parser.ObjectExpressionPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLinearCatalogModifyingStatement(GQL_20240412Parser.LinearCatalogModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLinearCatalogModifyingStatement(GQL_20240412Parser.LinearCatalogModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleCatalogModifyingStatement(GQL_20240412Parser.SimpleCatalogModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleCatalogModifyingStatement(GQL_20240412Parser.SimpleCatalogModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimitiveCatalogModifyingStatement(GQL_20240412Parser.PrimitiveCatalogModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimitiveCatalogModifyingStatement(GQL_20240412Parser.PrimitiveCatalogModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateSchemaStatement(GQL_20240412Parser.CreateSchemaStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateSchemaStatement(GQL_20240412Parser.CreateSchemaStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropSchemaStatement(GQL_20240412Parser.DropSchemaStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropSchemaStatement(GQL_20240412Parser.DropSchemaStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateGraphStatement(GQL_20240412Parser.CreateGraphStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateGraphStatement(GQL_20240412Parser.CreateGraphStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOpenGraphType(GQL_20240412Parser.OpenGraphTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOpenGraphType(GQL_20240412Parser.OpenGraphTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOfGraphType(GQL_20240412Parser.OfGraphTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOfGraphType(GQL_20240412Parser.OfGraphTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphTypeLikeGraph(GQL_20240412Parser.GraphTypeLikeGraphContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphTypeLikeGraph(GQL_20240412Parser.GraphTypeLikeGraphContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphSource(GQL_20240412Parser.GraphSourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphSource(GQL_20240412Parser.GraphSourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropGraphStatement(GQL_20240412Parser.DropGraphStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropGraphStatement(GQL_20240412Parser.DropGraphStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreateGraphTypeStatement(GQL_20240412Parser.CreateGraphTypeStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreateGraphTypeStatement(GQL_20240412Parser.CreateGraphTypeStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphTypeSource(GQL_20240412Parser.GraphTypeSourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphTypeSource(GQL_20240412Parser.GraphTypeSourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCopyOfGraphType(GQL_20240412Parser.CopyOfGraphTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCopyOfGraphType(GQL_20240412Parser.CopyOfGraphTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDropGraphTypeStatement(GQL_20240412Parser.DropGraphTypeStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDropGraphTypeStatement(GQL_20240412Parser.DropGraphTypeStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCallCatalogModifyingProcedureStatement(GQL_20240412Parser.CallCatalogModifyingProcedureStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCallCatalogModifyingProcedureStatement(GQL_20240412Parser.CallCatalogModifyingProcedureStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLinearDataModifyingStatement(GQL_20240412Parser.LinearDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLinearDataModifyingStatement(GQL_20240412Parser.LinearDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFocusedLinearDataModifyingStatement(GQL_20240412Parser.FocusedLinearDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFocusedLinearDataModifyingStatement(GQL_20240412Parser.FocusedLinearDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFocusedLinearDataModifyingStatementBody(GQL_20240412Parser.FocusedLinearDataModifyingStatementBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFocusedLinearDataModifyingStatementBody(GQL_20240412Parser.FocusedLinearDataModifyingStatementBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFocusedNestedDataModifyingProcedureSpecification(GQL_20240412Parser.FocusedNestedDataModifyingProcedureSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFocusedNestedDataModifyingProcedureSpecification(GQL_20240412Parser.FocusedNestedDataModifyingProcedureSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAmbientLinearDataModifyingStatement(GQL_20240412Parser.AmbientLinearDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAmbientLinearDataModifyingStatement(GQL_20240412Parser.AmbientLinearDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAmbientLinearDataModifyingStatementBody(GQL_20240412Parser.AmbientLinearDataModifyingStatementBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAmbientLinearDataModifyingStatementBody(GQL_20240412Parser.AmbientLinearDataModifyingStatementBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleLinearDataAccessingStatement(GQL_20240412Parser.SimpleLinearDataAccessingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleLinearDataAccessingStatement(GQL_20240412Parser.SimpleLinearDataAccessingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleDataModifyingStatement(GQL_20240412Parser.SimpleDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleDataModifyingStatement(GQL_20240412Parser.SimpleDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimitiveDataModifyingStatement(GQL_20240412Parser.PrimitiveDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimitiveDataModifyingStatement(GQL_20240412Parser.PrimitiveDataModifyingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertStatement(GQL_20240412Parser.InsertStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertStatement(GQL_20240412Parser.InsertStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetStatement(GQL_20240412Parser.SetStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetStatement(GQL_20240412Parser.SetStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetItemList(GQL_20240412Parser.SetItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetItemList(GQL_20240412Parser.SetItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetItem(GQL_20240412Parser.SetItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetItem(GQL_20240412Parser.SetItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetPropertyItem(GQL_20240412Parser.SetPropertyItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetPropertyItem(GQL_20240412Parser.SetPropertyItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetAllPropertiesItem(GQL_20240412Parser.SetAllPropertiesItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetAllPropertiesItem(GQL_20240412Parser.SetAllPropertiesItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetLabelItem(GQL_20240412Parser.SetLabelItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetLabelItem(GQL_20240412Parser.SetLabelItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRemoveStatement(GQL_20240412Parser.RemoveStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRemoveStatement(GQL_20240412Parser.RemoveStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRemoveItemList(GQL_20240412Parser.RemoveItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRemoveItemList(GQL_20240412Parser.RemoveItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRemoveItem(GQL_20240412Parser.RemoveItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRemoveItem(GQL_20240412Parser.RemoveItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRemovePropertyItem(GQL_20240412Parser.RemovePropertyItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRemovePropertyItem(GQL_20240412Parser.RemovePropertyItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRemoveLabelItem(GQL_20240412Parser.RemoveLabelItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRemoveLabelItem(GQL_20240412Parser.RemoveLabelItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeleteStatement(GQL_20240412Parser.DeleteStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeleteStatement(GQL_20240412Parser.DeleteStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeleteItemList(GQL_20240412Parser.DeleteItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeleteItemList(GQL_20240412Parser.DeleteItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeleteItem(GQL_20240412Parser.DeleteItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeleteItem(GQL_20240412Parser.DeleteItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCallDataModifyingProcedureStatement(GQL_20240412Parser.CallDataModifyingProcedureStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCallDataModifyingProcedureStatement(GQL_20240412Parser.CallDataModifyingProcedureStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCompositeQueryStatement(GQL_20240412Parser.CompositeQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCompositeQueryStatement(GQL_20240412Parser.CompositeQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCompositeQueryExpression(GQL_20240412Parser.CompositeQueryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCompositeQueryExpression(GQL_20240412Parser.CompositeQueryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQueryConjunction(GQL_20240412Parser.QueryConjunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQueryConjunction(GQL_20240412Parser.QueryConjunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSetOperator(GQL_20240412Parser.SetOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSetOperator(GQL_20240412Parser.SetOperatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCompositeQueryPrimary(GQL_20240412Parser.CompositeQueryPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCompositeQueryPrimary(GQL_20240412Parser.CompositeQueryPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLinearQueryStatement(GQL_20240412Parser.LinearQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLinearQueryStatement(GQL_20240412Parser.LinearQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFocusedLinearQueryStatement(GQL_20240412Parser.FocusedLinearQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFocusedLinearQueryStatement(GQL_20240412Parser.FocusedLinearQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFocusedLinearQueryStatementPart(GQL_20240412Parser.FocusedLinearQueryStatementPartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFocusedLinearQueryStatementPart(GQL_20240412Parser.FocusedLinearQueryStatementPartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFocusedLinearQueryAndPrimitiveResultStatementPart(GQL_20240412Parser.FocusedLinearQueryAndPrimitiveResultStatementPartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFocusedLinearQueryAndPrimitiveResultStatementPart(GQL_20240412Parser.FocusedLinearQueryAndPrimitiveResultStatementPartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFocusedPrimitiveResultStatement(GQL_20240412Parser.FocusedPrimitiveResultStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFocusedPrimitiveResultStatement(GQL_20240412Parser.FocusedPrimitiveResultStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFocusedNestedQuerySpecification(GQL_20240412Parser.FocusedNestedQuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFocusedNestedQuerySpecification(GQL_20240412Parser.FocusedNestedQuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAmbientLinearQueryStatement(GQL_20240412Parser.AmbientLinearQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAmbientLinearQueryStatement(GQL_20240412Parser.AmbientLinearQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleLinearQueryStatement(GQL_20240412Parser.SimpleLinearQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleLinearQueryStatement(GQL_20240412Parser.SimpleLinearQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleQueryStatement(GQL_20240412Parser.SimpleQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleQueryStatement(GQL_20240412Parser.SimpleQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimitiveQueryStatement(GQL_20240412Parser.PrimitiveQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimitiveQueryStatement(GQL_20240412Parser.PrimitiveQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMatchStatement(GQL_20240412Parser.MatchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMatchStatement(GQL_20240412Parser.MatchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleMatchStatement(GQL_20240412Parser.SimpleMatchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleMatchStatement(GQL_20240412Parser.SimpleMatchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOptionalMatchStatement(GQL_20240412Parser.OptionalMatchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOptionalMatchStatement(GQL_20240412Parser.OptionalMatchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOptionalOperand(GQL_20240412Parser.OptionalOperandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOptionalOperand(GQL_20240412Parser.OptionalOperandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMatchStatementBlock(GQL_20240412Parser.MatchStatementBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMatchStatementBlock(GQL_20240412Parser.MatchStatementBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCallQueryStatement(GQL_20240412Parser.CallQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCallQueryStatement(GQL_20240412Parser.CallQueryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFilterStatement(GQL_20240412Parser.FilterStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFilterStatement(GQL_20240412Parser.FilterStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLetStatement(GQL_20240412Parser.LetStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLetStatement(GQL_20240412Parser.LetStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLetVariableDefinitionList(GQL_20240412Parser.LetVariableDefinitionListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLetVariableDefinitionList(GQL_20240412Parser.LetVariableDefinitionListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLetVariableDefinition(GQL_20240412Parser.LetVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLetVariableDefinition(GQL_20240412Parser.LetVariableDefinitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForStatement(GQL_20240412Parser.ForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForStatement(GQL_20240412Parser.ForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForItem(GQL_20240412Parser.ForItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForItem(GQL_20240412Parser.ForItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForItemAlias(GQL_20240412Parser.ForItemAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForItemAlias(GQL_20240412Parser.ForItemAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForItemSource(GQL_20240412Parser.ForItemSourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForItemSource(GQL_20240412Parser.ForItemSourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForOrdinalityOrOffset(GQL_20240412Parser.ForOrdinalityOrOffsetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForOrdinalityOrOffset(GQL_20240412Parser.ForOrdinalityOrOffsetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrderByAndPageStatement(GQL_20240412Parser.OrderByAndPageStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrderByAndPageStatement(GQL_20240412Parser.OrderByAndPageStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimitiveResultStatement(GQL_20240412Parser.PrimitiveResultStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimitiveResultStatement(GQL_20240412Parser.PrimitiveResultStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterReturnStatementBody(GQL_20240412Parser.ReturnStatementBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnStatementBody(GQL_20240412Parser.ReturnStatementBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturnItemList(GQL_20240412Parser.ReturnItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnItemList(GQL_20240412Parser.ReturnItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturnItem(GQL_20240412Parser.ReturnItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnItem(GQL_20240412Parser.ReturnItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturnItemAlias(GQL_20240412Parser.ReturnItemAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnItemAlias(GQL_20240412Parser.ReturnItemAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectStatement(GQL_20240412Parser.SelectStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectStatement(GQL_20240412Parser.SelectStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectItemList(GQL_20240412Parser.SelectItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectItemList(GQL_20240412Parser.SelectItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectItem(GQL_20240412Parser.SelectItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectItem(GQL_20240412Parser.SelectItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectItemAlias(GQL_20240412Parser.SelectItemAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectItemAlias(GQL_20240412Parser.SelectItemAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterHavingClause(GQL_20240412Parser.HavingClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitHavingClause(GQL_20240412Parser.HavingClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectStatementBody(GQL_20240412Parser.SelectStatementBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectStatementBody(GQL_20240412Parser.SelectStatementBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectGraphMatchList(GQL_20240412Parser.SelectGraphMatchListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectGraphMatchList(GQL_20240412Parser.SelectGraphMatchListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectGraphMatch(GQL_20240412Parser.SelectGraphMatchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectGraphMatch(GQL_20240412Parser.SelectGraphMatchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelectQuerySpecification(GQL_20240412Parser.SelectQuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelectQuerySpecification(GQL_20240412Parser.SelectQuerySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCallProcedureStatement(GQL_20240412Parser.CallProcedureStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCallProcedureStatement(GQL_20240412Parser.CallProcedureStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProcedureCall(GQL_20240412Parser.ProcedureCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProcedureCall(GQL_20240412Parser.ProcedureCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInlineProcedureCall(GQL_20240412Parser.InlineProcedureCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInlineProcedureCall(GQL_20240412Parser.InlineProcedureCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableScopeClause(GQL_20240412Parser.VariableScopeClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableScopeClause(GQL_20240412Parser.VariableScopeClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingVariableReferenceList(GQL_20240412Parser.BindingVariableReferenceListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingVariableReferenceList(GQL_20240412Parser.BindingVariableReferenceListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamedProcedureCall(GQL_20240412Parser.NamedProcedureCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamedProcedureCall(GQL_20240412Parser.NamedProcedureCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProcedureArgumentList(GQL_20240412Parser.ProcedureArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProcedureArgumentList(GQL_20240412Parser.ProcedureArgumentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProcedureArgument(GQL_20240412Parser.ProcedureArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProcedureArgument(GQL_20240412Parser.ProcedureArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAtSchemaClause(GQL_20240412Parser.AtSchemaClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAtSchemaClause(GQL_20240412Parser.AtSchemaClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUseGraphClause(GQL_20240412Parser.UseGraphClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUseGraphClause(GQL_20240412Parser.UseGraphClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphPatternBindingTable(GQL_20240412Parser.GraphPatternBindingTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphPatternBindingTable(GQL_20240412Parser.GraphPatternBindingTableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphPatternYieldClause(GQL_20240412Parser.GraphPatternYieldClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphPatternYieldClause(GQL_20240412Parser.GraphPatternYieldClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphPatternYieldItemList(GQL_20240412Parser.GraphPatternYieldItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphPatternYieldItemList(GQL_20240412Parser.GraphPatternYieldItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphPatternYieldItem(GQL_20240412Parser.GraphPatternYieldItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphPatternYieldItem(GQL_20240412Parser.GraphPatternYieldItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphPattern(GQL_20240412Parser.GraphPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphPattern(GQL_20240412Parser.GraphPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMatchMode(GQL_20240412Parser.MatchModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMatchMode(GQL_20240412Parser.MatchModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRepeatableElementsMatchMode(GQL_20240412Parser.RepeatableElementsMatchModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRepeatableElementsMatchMode(GQL_20240412Parser.RepeatableElementsMatchModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDifferentEdgesMatchMode(GQL_20240412Parser.DifferentEdgesMatchModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDifferentEdgesMatchMode(GQL_20240412Parser.DifferentEdgesMatchModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementBindingsOrElements(GQL_20240412Parser.ElementBindingsOrElementsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementBindingsOrElements(GQL_20240412Parser.ElementBindingsOrElementsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeBindingsOrEdges(GQL_20240412Parser.EdgeBindingsOrEdgesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeBindingsOrEdges(GQL_20240412Parser.EdgeBindingsOrEdgesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathPatternList(GQL_20240412Parser.PathPatternListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathPatternList(GQL_20240412Parser.PathPatternListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathPattern(GQL_20240412Parser.PathPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathPattern(GQL_20240412Parser.PathPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathVariableDeclaration(GQL_20240412Parser.PathVariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathVariableDeclaration(GQL_20240412Parser.PathVariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterKeepClause(GQL_20240412Parser.KeepClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitKeepClause(GQL_20240412Parser.KeepClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphPatternWhereClause(GQL_20240412Parser.GraphPatternWhereClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphPatternWhereClause(GQL_20240412Parser.GraphPatternWhereClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertGraphPattern(GQL_20240412Parser.InsertGraphPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertGraphPattern(GQL_20240412Parser.InsertGraphPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertPathPatternList(GQL_20240412Parser.InsertPathPatternListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertPathPatternList(GQL_20240412Parser.InsertPathPatternListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertPathPattern(GQL_20240412Parser.InsertPathPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertPathPattern(GQL_20240412Parser.InsertPathPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertNodePattern(GQL_20240412Parser.InsertNodePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertNodePattern(GQL_20240412Parser.InsertNodePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertEdgePattern(GQL_20240412Parser.InsertEdgePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertEdgePattern(GQL_20240412Parser.InsertEdgePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertEdgePointingLeft(GQL_20240412Parser.InsertEdgePointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertEdgePointingLeft(GQL_20240412Parser.InsertEdgePointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertEdgePointingRight(GQL_20240412Parser.InsertEdgePointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertEdgePointingRight(GQL_20240412Parser.InsertEdgePointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertEdgeUndirected(GQL_20240412Parser.InsertEdgeUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertEdgeUndirected(GQL_20240412Parser.InsertEdgeUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInsertElementPatternFiller(GQL_20240412Parser.InsertElementPatternFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInsertElementPatternFiller(GQL_20240412Parser.InsertElementPatternFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelAndPropertySetSpecification(GQL_20240412Parser.LabelAndPropertySetSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelAndPropertySetSpecification(GQL_20240412Parser.LabelAndPropertySetSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathPatternPrefix(GQL_20240412Parser.PathPatternPrefixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathPatternPrefix(GQL_20240412Parser.PathPatternPrefixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathModePrefix(GQL_20240412Parser.PathModePrefixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathModePrefix(GQL_20240412Parser.PathModePrefixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathMode(GQL_20240412Parser.PathModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathMode(GQL_20240412Parser.PathModeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathSearchPrefix(GQL_20240412Parser.PathSearchPrefixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathSearchPrefix(GQL_20240412Parser.PathSearchPrefixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAllPathSearch(GQL_20240412Parser.AllPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAllPathSearch(GQL_20240412Parser.AllPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathOrPaths(GQL_20240412Parser.PathOrPathsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathOrPaths(GQL_20240412Parser.PathOrPathsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnyPathSearch(GQL_20240412Parser.AnyPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnyPathSearch(GQL_20240412Parser.AnyPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumberOfPaths(GQL_20240412Parser.NumberOfPathsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumberOfPaths(GQL_20240412Parser.NumberOfPathsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShortestPathSearch(GQL_20240412Parser.ShortestPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShortestPathSearch(GQL_20240412Parser.ShortestPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAllShortestPathSearch(GQL_20240412Parser.AllShortestPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAllShortestPathSearch(GQL_20240412Parser.AllShortestPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnyShortestPathSearch(GQL_20240412Parser.AnyShortestPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnyShortestPathSearch(GQL_20240412Parser.AnyShortestPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCountedShortestPathSearch(GQL_20240412Parser.CountedShortestPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCountedShortestPathSearch(GQL_20240412Parser.CountedShortestPathSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCountedShortestGroupSearch(GQL_20240412Parser.CountedShortestGroupSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCountedShortestGroupSearch(GQL_20240412Parser.CountedShortestGroupSearchContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumberOfGroups(GQL_20240412Parser.NumberOfGroupsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumberOfGroups(GQL_20240412Parser.NumberOfGroupsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPpePathTerm(GQL_20240412Parser.PpePathTermContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPpePathTerm(GQL_20240412Parser.PpePathTermContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPpeMultisetAlternation(GQL_20240412Parser.PpeMultisetAlternationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPpeMultisetAlternation(GQL_20240412Parser.PpeMultisetAlternationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPpePatternUnion(GQL_20240412Parser.PpePatternUnionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPpePatternUnion(GQL_20240412Parser.PpePatternUnionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathTerm(GQL_20240412Parser.PathTermContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathTerm(GQL_20240412Parser.PathTermContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPfPathPrimary(GQL_20240412Parser.PfPathPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPfPathPrimary(GQL_20240412Parser.PfPathPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPfQuantifiedPathPrimary(GQL_20240412Parser.PfQuantifiedPathPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPfQuantifiedPathPrimary(GQL_20240412Parser.PfQuantifiedPathPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPfQuestionedPathPrimary(GQL_20240412Parser.PfQuestionedPathPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPfQuestionedPathPrimary(GQL_20240412Parser.PfQuestionedPathPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPpElementPattern(GQL_20240412Parser.PpElementPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPpElementPattern(GQL_20240412Parser.PpElementPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPpParenthesizedPathPatternExpression(GQL_20240412Parser.PpParenthesizedPathPatternExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPpParenthesizedPathPatternExpression(GQL_20240412Parser.PpParenthesizedPathPatternExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPpSimplifiedPathPatternExpression(GQL_20240412Parser.PpSimplifiedPathPatternExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPpSimplifiedPathPatternExpression(GQL_20240412Parser.PpSimplifiedPathPatternExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementPattern(GQL_20240412Parser.ElementPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementPattern(GQL_20240412Parser.ElementPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodePattern(GQL_20240412Parser.NodePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodePattern(GQL_20240412Parser.NodePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementPatternFiller(GQL_20240412Parser.ElementPatternFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementPatternFiller(GQL_20240412Parser.ElementPatternFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementVariableDeclaration(GQL_20240412Parser.ElementVariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementVariableDeclaration(GQL_20240412Parser.ElementVariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsLabelExpression(GQL_20240412Parser.IsLabelExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsLabelExpression(GQL_20240412Parser.IsLabelExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsOrColon(GQL_20240412Parser.IsOrColonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsOrColon(GQL_20240412Parser.IsOrColonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementPatternPredicate(GQL_20240412Parser.ElementPatternPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementPatternPredicate(GQL_20240412Parser.ElementPatternPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementPatternWhereClause(GQL_20240412Parser.ElementPatternWhereClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementPatternWhereClause(GQL_20240412Parser.ElementPatternWhereClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementPropertySpecification(GQL_20240412Parser.ElementPropertySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementPropertySpecification(GQL_20240412Parser.ElementPropertySpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyKeyValuePairList(GQL_20240412Parser.PropertyKeyValuePairListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyKeyValuePairList(GQL_20240412Parser.PropertyKeyValuePairListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyKeyValuePair(GQL_20240412Parser.PropertyKeyValuePairContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyKeyValuePair(GQL_20240412Parser.PropertyKeyValuePairContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgePattern(GQL_20240412Parser.EdgePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgePattern(GQL_20240412Parser.EdgePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFullEdgePattern(GQL_20240412Parser.FullEdgePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFullEdgePattern(GQL_20240412Parser.FullEdgePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFullEdgePointingLeft(GQL_20240412Parser.FullEdgePointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFullEdgePointingLeft(GQL_20240412Parser.FullEdgePointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFullEdgeUndirected(GQL_20240412Parser.FullEdgeUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFullEdgeUndirected(GQL_20240412Parser.FullEdgeUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFullEdgePointingRight(GQL_20240412Parser.FullEdgePointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFullEdgePointingRight(GQL_20240412Parser.FullEdgePointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFullEdgeLeftOrUndirected(GQL_20240412Parser.FullEdgeLeftOrUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFullEdgeLeftOrUndirected(GQL_20240412Parser.FullEdgeLeftOrUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFullEdgeUndirectedOrRight(GQL_20240412Parser.FullEdgeUndirectedOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFullEdgeUndirectedOrRight(GQL_20240412Parser.FullEdgeUndirectedOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFullEdgeLeftOrRight(GQL_20240412Parser.FullEdgeLeftOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFullEdgeLeftOrRight(GQL_20240412Parser.FullEdgeLeftOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFullEdgeAnyDirection(GQL_20240412Parser.FullEdgeAnyDirectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFullEdgeAnyDirection(GQL_20240412Parser.FullEdgeAnyDirectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbbreviatedEdgePattern(GQL_20240412Parser.AbbreviatedEdgePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbbreviatedEdgePattern(GQL_20240412Parser.AbbreviatedEdgePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParenthesizedPathPatternExpression(GQL_20240412Parser.ParenthesizedPathPatternExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParenthesizedPathPatternExpression(GQL_20240412Parser.ParenthesizedPathPatternExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubpathVariableDeclaration(GQL_20240412Parser.SubpathVariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubpathVariableDeclaration(GQL_20240412Parser.SubpathVariableDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParenthesizedPathPatternWhereClause(GQL_20240412Parser.ParenthesizedPathPatternWhereClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParenthesizedPathPatternWhereClause(GQL_20240412Parser.ParenthesizedPathPatternWhereClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelExpressionNegation(GQL_20240412Parser.LabelExpressionNegationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelExpressionNegation(GQL_20240412Parser.LabelExpressionNegationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelExpressionDisjunction(GQL_20240412Parser.LabelExpressionDisjunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelExpressionDisjunction(GQL_20240412Parser.LabelExpressionDisjunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelExpressionParenthesized(GQL_20240412Parser.LabelExpressionParenthesizedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelExpressionParenthesized(GQL_20240412Parser.LabelExpressionParenthesizedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelExpressionWildcard(GQL_20240412Parser.LabelExpressionWildcardContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelExpressionWildcard(GQL_20240412Parser.LabelExpressionWildcardContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelExpressionConjunction(GQL_20240412Parser.LabelExpressionConjunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelExpressionConjunction(GQL_20240412Parser.LabelExpressionConjunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelExpressionName(GQL_20240412Parser.LabelExpressionNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelExpressionName(GQL_20240412Parser.LabelExpressionNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathVariableReference(GQL_20240412Parser.PathVariableReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathVariableReference(GQL_20240412Parser.PathVariableReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementVariableReference(GQL_20240412Parser.ElementVariableReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementVariableReference(GQL_20240412Parser.ElementVariableReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphPatternQuantifier(GQL_20240412Parser.GraphPatternQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphPatternQuantifier(GQL_20240412Parser.GraphPatternQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixedQuantifier(GQL_20240412Parser.FixedQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixedQuantifier(GQL_20240412Parser.FixedQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneralQuantifier(GQL_20240412Parser.GeneralQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneralQuantifier(GQL_20240412Parser.GeneralQuantifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLowerBound(GQL_20240412Parser.LowerBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLowerBound(GQL_20240412Parser.LowerBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUpperBound(GQL_20240412Parser.UpperBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUpperBound(GQL_20240412Parser.UpperBoundContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedPathPatternExpression(GQL_20240412Parser.SimplifiedPathPatternExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedPathPatternExpression(GQL_20240412Parser.SimplifiedPathPatternExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedDefaultingLeft(GQL_20240412Parser.SimplifiedDefaultingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedDefaultingLeft(GQL_20240412Parser.SimplifiedDefaultingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedDefaultingUndirected(GQL_20240412Parser.SimplifiedDefaultingUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedDefaultingUndirected(GQL_20240412Parser.SimplifiedDefaultingUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedDefaultingRight(GQL_20240412Parser.SimplifiedDefaultingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedDefaultingRight(GQL_20240412Parser.SimplifiedDefaultingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedDefaultingLeftOrUndirected(GQL_20240412Parser.SimplifiedDefaultingLeftOrUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedDefaultingLeftOrUndirected(GQL_20240412Parser.SimplifiedDefaultingLeftOrUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedDefaultingUndirectedOrRight(GQL_20240412Parser.SimplifiedDefaultingUndirectedOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedDefaultingUndirectedOrRight(GQL_20240412Parser.SimplifiedDefaultingUndirectedOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedDefaultingLeftOrRight(GQL_20240412Parser.SimplifiedDefaultingLeftOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedDefaultingLeftOrRight(GQL_20240412Parser.SimplifiedDefaultingLeftOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedDefaultingAnyDirection(GQL_20240412Parser.SimplifiedDefaultingAnyDirectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedDefaultingAnyDirection(GQL_20240412Parser.SimplifiedDefaultingAnyDirectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedContents(GQL_20240412Parser.SimplifiedContentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedContents(GQL_20240412Parser.SimplifiedContentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedPathUnion(GQL_20240412Parser.SimplifiedPathUnionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedPathUnion(GQL_20240412Parser.SimplifiedPathUnionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedMultisetAlternation(GQL_20240412Parser.SimplifiedMultisetAlternationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedMultisetAlternation(GQL_20240412Parser.SimplifiedMultisetAlternationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedFactorLowLabel(GQL_20240412Parser.SimplifiedFactorLowLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedFactorLowLabel(GQL_20240412Parser.SimplifiedFactorLowLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedConcatenationLabel(GQL_20240412Parser.SimplifiedConcatenationLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedConcatenationLabel(GQL_20240412Parser.SimplifiedConcatenationLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedConjunctionLabel(GQL_20240412Parser.SimplifiedConjunctionLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedConjunctionLabel(GQL_20240412Parser.SimplifiedConjunctionLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedFactorHighLabel(GQL_20240412Parser.SimplifiedFactorHighLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedFactorHighLabel(GQL_20240412Parser.SimplifiedFactorHighLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedFactorHigh(GQL_20240412Parser.SimplifiedFactorHighContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedFactorHigh(GQL_20240412Parser.SimplifiedFactorHighContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedQuantified(GQL_20240412Parser.SimplifiedQuantifiedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedQuantified(GQL_20240412Parser.SimplifiedQuantifiedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedQuestioned(GQL_20240412Parser.SimplifiedQuestionedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedQuestioned(GQL_20240412Parser.SimplifiedQuestionedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedTertiary(GQL_20240412Parser.SimplifiedTertiaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedTertiary(GQL_20240412Parser.SimplifiedTertiaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedDirectionOverride(GQL_20240412Parser.SimplifiedDirectionOverrideContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedDirectionOverride(GQL_20240412Parser.SimplifiedDirectionOverrideContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedOverrideLeft(GQL_20240412Parser.SimplifiedOverrideLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedOverrideLeft(GQL_20240412Parser.SimplifiedOverrideLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedOverrideUndirected(GQL_20240412Parser.SimplifiedOverrideUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedOverrideUndirected(GQL_20240412Parser.SimplifiedOverrideUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedOverrideRight(GQL_20240412Parser.SimplifiedOverrideRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedOverrideRight(GQL_20240412Parser.SimplifiedOverrideRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedOverrideLeftOrUndirected(GQL_20240412Parser.SimplifiedOverrideLeftOrUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedOverrideLeftOrUndirected(GQL_20240412Parser.SimplifiedOverrideLeftOrUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedOverrideUndirectedOrRight(GQL_20240412Parser.SimplifiedOverrideUndirectedOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedOverrideUndirectedOrRight(GQL_20240412Parser.SimplifiedOverrideUndirectedOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedOverrideLeftOrRight(GQL_20240412Parser.SimplifiedOverrideLeftOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedOverrideLeftOrRight(GQL_20240412Parser.SimplifiedOverrideLeftOrRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedOverrideAnyDirection(GQL_20240412Parser.SimplifiedOverrideAnyDirectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedOverrideAnyDirection(GQL_20240412Parser.SimplifiedOverrideAnyDirectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedSecondary(GQL_20240412Parser.SimplifiedSecondaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedSecondary(GQL_20240412Parser.SimplifiedSecondaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedNegation(GQL_20240412Parser.SimplifiedNegationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedNegation(GQL_20240412Parser.SimplifiedNegationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimplifiedPrimary(GQL_20240412Parser.SimplifiedPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimplifiedPrimary(GQL_20240412Parser.SimplifiedPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhereClause(GQL_20240412Parser.WhereClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhereClause(GQL_20240412Parser.WhereClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldClause(GQL_20240412Parser.YieldClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldClause(GQL_20240412Parser.YieldClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldItemList(GQL_20240412Parser.YieldItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldItemList(GQL_20240412Parser.YieldItemListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldItem(GQL_20240412Parser.YieldItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldItem(GQL_20240412Parser.YieldItemContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldItemName(GQL_20240412Parser.YieldItemNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldItemName(GQL_20240412Parser.YieldItemNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldItemAlias(GQL_20240412Parser.YieldItemAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldItemAlias(GQL_20240412Parser.YieldItemAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGroupByClause(GQL_20240412Parser.GroupByClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGroupByClause(GQL_20240412Parser.GroupByClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGroupingElementList(GQL_20240412Parser.GroupingElementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGroupingElementList(GQL_20240412Parser.GroupingElementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGroupingElement(GQL_20240412Parser.GroupingElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGroupingElement(GQL_20240412Parser.GroupingElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmptyGroupingSet(GQL_20240412Parser.EmptyGroupingSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptyGroupingSet(GQL_20240412Parser.EmptyGroupingSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrderByClause(GQL_20240412Parser.OrderByClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrderByClause(GQL_20240412Parser.OrderByClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSortSpecificationList(GQL_20240412Parser.SortSpecificationListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSortSpecificationList(GQL_20240412Parser.SortSpecificationListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSortSpecification(GQL_20240412Parser.SortSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSortSpecification(GQL_20240412Parser.SortSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSortKey(GQL_20240412Parser.SortKeyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSortKey(GQL_20240412Parser.SortKeyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrderingSpecification(GQL_20240412Parser.OrderingSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrderingSpecification(GQL_20240412Parser.OrderingSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNullOrdering(GQL_20240412Parser.NullOrderingContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNullOrdering(GQL_20240412Parser.NullOrderingContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLimitClause(GQL_20240412Parser.LimitClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLimitClause(GQL_20240412Parser.LimitClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOffsetClause(GQL_20240412Parser.OffsetClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOffsetClause(GQL_20240412Parser.OffsetClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOffsetSynonym(GQL_20240412Parser.OffsetSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOffsetSynonym(GQL_20240412Parser.OffsetSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSchemaReference(GQL_20240412Parser.SchemaReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSchemaReference(GQL_20240412Parser.SchemaReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbsoluteCatalogSchemaReference(GQL_20240412Parser.AbsoluteCatalogSchemaReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbsoluteCatalogSchemaReference(GQL_20240412Parser.AbsoluteCatalogSchemaReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatalogSchemaParentAndName(GQL_20240412Parser.CatalogSchemaParentAndNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatalogSchemaParentAndName(GQL_20240412Parser.CatalogSchemaParentAndNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelativeCatalogSchemaReference(GQL_20240412Parser.RelativeCatalogSchemaReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelativeCatalogSchemaReference(GQL_20240412Parser.RelativeCatalogSchemaReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredefinedSchemaReference(GQL_20240412Parser.PredefinedSchemaReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredefinedSchemaReference(GQL_20240412Parser.PredefinedSchemaReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbsoluteDirectoryPath(GQL_20240412Parser.AbsoluteDirectoryPathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbsoluteDirectoryPath(GQL_20240412Parser.AbsoluteDirectoryPathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelativeDirectoryPath(GQL_20240412Parser.RelativeDirectoryPathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelativeDirectoryPath(GQL_20240412Parser.RelativeDirectoryPathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleDirectoryPath(GQL_20240412Parser.SimpleDirectoryPathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleDirectoryPath(GQL_20240412Parser.SimpleDirectoryPathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphReference(GQL_20240412Parser.GraphReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphReference(GQL_20240412Parser.GraphReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatalogGraphParentAndName(GQL_20240412Parser.CatalogGraphParentAndNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatalogGraphParentAndName(GQL_20240412Parser.CatalogGraphParentAndNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterHomeGraph(GQL_20240412Parser.HomeGraphContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitHomeGraph(GQL_20240412Parser.HomeGraphContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphTypeReference(GQL_20240412Parser.GraphTypeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphTypeReference(GQL_20240412Parser.GraphTypeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatalogGraphTypeParentAndName(GQL_20240412Parser.CatalogGraphTypeParentAndNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatalogGraphTypeParentAndName(GQL_20240412Parser.CatalogGraphTypeParentAndNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingTableReference(GQL_20240412Parser.BindingTableReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingTableReference(GQL_20240412Parser.BindingTableReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProcedureReference(GQL_20240412Parser.ProcedureReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProcedureReference(GQL_20240412Parser.ProcedureReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatalogProcedureParentAndName(GQL_20240412Parser.CatalogProcedureParentAndNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatalogProcedureParentAndName(GQL_20240412Parser.CatalogProcedureParentAndNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatalogObjectParentReference(GQL_20240412Parser.CatalogObjectParentReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatalogObjectParentReference(GQL_20240412Parser.CatalogObjectParentReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReferenceParameterSpecification(GQL_20240412Parser.ReferenceParameterSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReferenceParameterSpecification(GQL_20240412Parser.ReferenceParameterSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNestedGraphTypeSpecification(GQL_20240412Parser.NestedGraphTypeSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNestedGraphTypeSpecification(GQL_20240412Parser.NestedGraphTypeSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphTypeSpecificationBody(GQL_20240412Parser.GraphTypeSpecificationBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphTypeSpecificationBody(GQL_20240412Parser.GraphTypeSpecificationBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementTypeList(GQL_20240412Parser.ElementTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementTypeList(GQL_20240412Parser.ElementTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementTypeSpecification(GQL_20240412Parser.ElementTypeSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementTypeSpecification(GQL_20240412Parser.ElementTypeSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypeSpecification(GQL_20240412Parser.NodeTypeSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypeSpecification(GQL_20240412Parser.NodeTypeSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypePattern(GQL_20240412Parser.NodeTypePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypePattern(GQL_20240412Parser.NodeTypePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypePhrase(GQL_20240412Parser.NodeTypePhraseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypePhrase(GQL_20240412Parser.NodeTypePhraseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypePhraseFiller(GQL_20240412Parser.NodeTypePhraseFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypePhraseFiller(GQL_20240412Parser.NodeTypePhraseFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypeFiller(GQL_20240412Parser.NodeTypeFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypeFiller(GQL_20240412Parser.NodeTypeFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocalNodeTypeAlias(GQL_20240412Parser.LocalNodeTypeAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocalNodeTypeAlias(GQL_20240412Parser.LocalNodeTypeAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypeImpliedContent(GQL_20240412Parser.NodeTypeImpliedContentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypeImpliedContent(GQL_20240412Parser.NodeTypeImpliedContentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypeKeyLabelSet(GQL_20240412Parser.NodeTypeKeyLabelSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypeKeyLabelSet(GQL_20240412Parser.NodeTypeKeyLabelSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypeLabelSet(GQL_20240412Parser.NodeTypeLabelSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypeLabelSet(GQL_20240412Parser.NodeTypeLabelSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypePropertyTypes(GQL_20240412Parser.NodeTypePropertyTypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypePropertyTypes(GQL_20240412Parser.NodeTypePropertyTypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypeSpecification(GQL_20240412Parser.EdgeTypeSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypeSpecification(GQL_20240412Parser.EdgeTypeSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypePattern(GQL_20240412Parser.EdgeTypePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypePattern(GQL_20240412Parser.EdgeTypePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypePhrase(GQL_20240412Parser.EdgeTypePhraseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypePhrase(GQL_20240412Parser.EdgeTypePhraseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypePhraseFiller(GQL_20240412Parser.EdgeTypePhraseFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypePhraseFiller(GQL_20240412Parser.EdgeTypePhraseFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypeFiller(GQL_20240412Parser.EdgeTypeFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypeFiller(GQL_20240412Parser.EdgeTypeFillerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypeImpliedContent(GQL_20240412Parser.EdgeTypeImpliedContentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypeImpliedContent(GQL_20240412Parser.EdgeTypeImpliedContentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypeKeyLabelSet(GQL_20240412Parser.EdgeTypeKeyLabelSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypeKeyLabelSet(GQL_20240412Parser.EdgeTypeKeyLabelSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypeLabelSet(GQL_20240412Parser.EdgeTypeLabelSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypeLabelSet(GQL_20240412Parser.EdgeTypeLabelSetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypePropertyTypes(GQL_20240412Parser.EdgeTypePropertyTypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypePropertyTypes(GQL_20240412Parser.EdgeTypePropertyTypesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypePatternDirected(GQL_20240412Parser.EdgeTypePatternDirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypePatternDirected(GQL_20240412Parser.EdgeTypePatternDirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypePatternPointingRight(GQL_20240412Parser.EdgeTypePatternPointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypePatternPointingRight(GQL_20240412Parser.EdgeTypePatternPointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypePatternPointingLeft(GQL_20240412Parser.EdgeTypePatternPointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypePatternPointingLeft(GQL_20240412Parser.EdgeTypePatternPointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypePatternUndirected(GQL_20240412Parser.EdgeTypePatternUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypePatternUndirected(GQL_20240412Parser.EdgeTypePatternUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArcTypePointingRight(GQL_20240412Parser.ArcTypePointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArcTypePointingRight(GQL_20240412Parser.ArcTypePointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArcTypePointingLeft(GQL_20240412Parser.ArcTypePointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArcTypePointingLeft(GQL_20240412Parser.ArcTypePointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArcTypeUndirected(GQL_20240412Parser.ArcTypeUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArcTypeUndirected(GQL_20240412Parser.ArcTypeUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSourceNodeTypeReference(GQL_20240412Parser.SourceNodeTypeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSourceNodeTypeReference(GQL_20240412Parser.SourceNodeTypeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDestinationNodeTypeReference(GQL_20240412Parser.DestinationNodeTypeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDestinationNodeTypeReference(GQL_20240412Parser.DestinationNodeTypeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeKind(GQL_20240412Parser.EdgeKindContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeKind(GQL_20240412Parser.EdgeKindContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEndpointPairPhrase(GQL_20240412Parser.EndpointPairPhraseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEndpointPairPhrase(GQL_20240412Parser.EndpointPairPhraseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEndpointPair(GQL_20240412Parser.EndpointPairContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEndpointPair(GQL_20240412Parser.EndpointPairContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEndpointPairDirected(GQL_20240412Parser.EndpointPairDirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEndpointPairDirected(GQL_20240412Parser.EndpointPairDirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEndpointPairPointingRight(GQL_20240412Parser.EndpointPairPointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEndpointPairPointingRight(GQL_20240412Parser.EndpointPairPointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEndpointPairPointingLeft(GQL_20240412Parser.EndpointPairPointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEndpointPairPointingLeft(GQL_20240412Parser.EndpointPairPointingLeftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEndpointPairUndirected(GQL_20240412Parser.EndpointPairUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEndpointPairUndirected(GQL_20240412Parser.EndpointPairUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConnectorPointingRight(GQL_20240412Parser.ConnectorPointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConnectorPointingRight(GQL_20240412Parser.ConnectorPointingRightContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConnectorUndirected(GQL_20240412Parser.ConnectorUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConnectorUndirected(GQL_20240412Parser.ConnectorUndirectedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSourceNodeTypeAlias(GQL_20240412Parser.SourceNodeTypeAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSourceNodeTypeAlias(GQL_20240412Parser.SourceNodeTypeAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDestinationNodeTypeAlias(GQL_20240412Parser.DestinationNodeTypeAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDestinationNodeTypeAlias(GQL_20240412Parser.DestinationNodeTypeAliasContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelSetPhrase(GQL_20240412Parser.LabelSetPhraseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelSetPhrase(GQL_20240412Parser.LabelSetPhraseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelSetSpecification(GQL_20240412Parser.LabelSetSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelSetSpecification(GQL_20240412Parser.LabelSetSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyTypesSpecification(GQL_20240412Parser.PropertyTypesSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyTypesSpecification(GQL_20240412Parser.PropertyTypesSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyTypeList(GQL_20240412Parser.PropertyTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyTypeList(GQL_20240412Parser.PropertyTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyType(GQL_20240412Parser.PropertyTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyType(GQL_20240412Parser.PropertyTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyValueType(GQL_20240412Parser.PropertyValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyValueType(GQL_20240412Parser.PropertyValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingTableType(GQL_20240412Parser.BindingTableTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingTableType(GQL_20240412Parser.BindingTableTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDynamicPropertyValueTypeLabel(GQL_20240412Parser.DynamicPropertyValueTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDynamicPropertyValueTypeLabel(GQL_20240412Parser.DynamicPropertyValueTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClosedDynamicUnionTypeAtl1(GQL_20240412Parser.ClosedDynamicUnionTypeAtl1Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClosedDynamicUnionTypeAtl1(GQL_20240412Parser.ClosedDynamicUnionTypeAtl1Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClosedDynamicUnionTypeAtl2(GQL_20240412Parser.ClosedDynamicUnionTypeAtl2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClosedDynamicUnionTypeAtl2(GQL_20240412Parser.ClosedDynamicUnionTypeAtl2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathValueTypeLabel(GQL_20240412Parser.PathValueTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathValueTypeLabel(GQL_20240412Parser.PathValueTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueTypeAlt3(GQL_20240412Parser.ListValueTypeAlt3Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueTypeAlt3(GQL_20240412Parser.ListValueTypeAlt3Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueTypeAlt2(GQL_20240412Parser.ListValueTypeAlt2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueTypeAlt2(GQL_20240412Parser.ListValueTypeAlt2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueTypeAlt1(GQL_20240412Parser.ListValueTypeAlt1Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueTypeAlt1(GQL_20240412Parser.ListValueTypeAlt1Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredefinedTypeLabel(GQL_20240412Parser.PredefinedTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredefinedTypeLabel(GQL_20240412Parser.PredefinedTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordTypeLabel(GQL_20240412Parser.RecordTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordTypeLabel(GQL_20240412Parser.RecordTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOpenDynamicUnionTypeLabel(GQL_20240412Parser.OpenDynamicUnionTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOpenDynamicUnionTypeLabel(GQL_20240412Parser.OpenDynamicUnionTypeLabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTyped(GQL_20240412Parser.TypedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTyped(GQL_20240412Parser.TypedContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredefinedType(GQL_20240412Parser.PredefinedTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredefinedType(GQL_20240412Parser.PredefinedTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBooleanType(GQL_20240412Parser.BooleanTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBooleanType(GQL_20240412Parser.BooleanTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCharacterStringType(GQL_20240412Parser.CharacterStringTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCharacterStringType(GQL_20240412Parser.CharacterStringTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterByteStringType(GQL_20240412Parser.ByteStringTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitByteStringType(GQL_20240412Parser.ByteStringTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMinLength(GQL_20240412Parser.MinLengthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMinLength(GQL_20240412Parser.MinLengthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMaxLength(GQL_20240412Parser.MaxLengthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMaxLength(GQL_20240412Parser.MaxLengthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixedLength(GQL_20240412Parser.FixedLengthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixedLength(GQL_20240412Parser.FixedLengthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericType(GQL_20240412Parser.NumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericType(GQL_20240412Parser.NumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExactNumericType(GQL_20240412Parser.ExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExactNumericType(GQL_20240412Parser.ExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBinaryExactNumericType(GQL_20240412Parser.BinaryExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBinaryExactNumericType(GQL_20240412Parser.BinaryExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSignedBinaryExactNumericType(GQL_20240412Parser.SignedBinaryExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSignedBinaryExactNumericType(GQL_20240412Parser.SignedBinaryExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnsignedBinaryExactNumericType(GQL_20240412Parser.UnsignedBinaryExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnsignedBinaryExactNumericType(GQL_20240412Parser.UnsignedBinaryExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVerboseBinaryExactNumericType(GQL_20240412Parser.VerboseBinaryExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVerboseBinaryExactNumericType(GQL_20240412Parser.VerboseBinaryExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDecimalExactNumericType(GQL_20240412Parser.DecimalExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDecimalExactNumericType(GQL_20240412Parser.DecimalExactNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrecision(GQL_20240412Parser.PrecisionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrecision(GQL_20240412Parser.PrecisionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterScale(GQL_20240412Parser.ScaleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitScale(GQL_20240412Parser.ScaleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterApproximateNumericType(GQL_20240412Parser.ApproximateNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitApproximateNumericType(GQL_20240412Parser.ApproximateNumericTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemporalType(GQL_20240412Parser.TemporalTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemporalType(GQL_20240412Parser.TemporalTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemporalInstantType(GQL_20240412Parser.TemporalInstantTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemporalInstantType(GQL_20240412Parser.TemporalInstantTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeType(GQL_20240412Parser.DatetimeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeType(GQL_20240412Parser.DatetimeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocaldatetimeType(GQL_20240412Parser.LocaldatetimeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocaldatetimeType(GQL_20240412Parser.LocaldatetimeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDateType(GQL_20240412Parser.DateTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDateType(GQL_20240412Parser.DateTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTimeType(GQL_20240412Parser.TimeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTimeType(GQL_20240412Parser.TimeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocaltimeType(GQL_20240412Parser.LocaltimeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocaltimeType(GQL_20240412Parser.LocaltimeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemporalDurationType(GQL_20240412Parser.TemporalDurationTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemporalDurationType(GQL_20240412Parser.TemporalDurationTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemporalDurationQualifier(GQL_20240412Parser.TemporalDurationQualifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemporalDurationQualifier(GQL_20240412Parser.TemporalDurationQualifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReferenceValueType(GQL_20240412Parser.ReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReferenceValueType(GQL_20240412Parser.ReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImmaterialValueType(GQL_20240412Parser.ImmaterialValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImmaterialValueType(GQL_20240412Parser.ImmaterialValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNullType(GQL_20240412Parser.NullTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNullType(GQL_20240412Parser.NullTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmptyType(GQL_20240412Parser.EmptyTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptyType(GQL_20240412Parser.EmptyTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphReferenceValueType(GQL_20240412Parser.GraphReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphReferenceValueType(GQL_20240412Parser.GraphReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClosedGraphReferenceValueType(GQL_20240412Parser.ClosedGraphReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClosedGraphReferenceValueType(GQL_20240412Parser.ClosedGraphReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOpenGraphReferenceValueType(GQL_20240412Parser.OpenGraphReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOpenGraphReferenceValueType(GQL_20240412Parser.OpenGraphReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingTableReferenceValueType(GQL_20240412Parser.BindingTableReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingTableReferenceValueType(GQL_20240412Parser.BindingTableReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeReferenceValueType(GQL_20240412Parser.NodeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeReferenceValueType(GQL_20240412Parser.NodeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClosedNodeReferenceValueType(GQL_20240412Parser.ClosedNodeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClosedNodeReferenceValueType(GQL_20240412Parser.ClosedNodeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOpenNodeReferenceValueType(GQL_20240412Parser.OpenNodeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOpenNodeReferenceValueType(GQL_20240412Parser.OpenNodeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeReferenceValueType(GQL_20240412Parser.EdgeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeReferenceValueType(GQL_20240412Parser.EdgeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClosedEdgeReferenceValueType(GQL_20240412Parser.ClosedEdgeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClosedEdgeReferenceValueType(GQL_20240412Parser.ClosedEdgeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOpenEdgeReferenceValueType(GQL_20240412Parser.OpenEdgeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOpenEdgeReferenceValueType(GQL_20240412Parser.OpenEdgeReferenceValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathValueType(GQL_20240412Parser.PathValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathValueType(GQL_20240412Parser.PathValueTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueTypeName(GQL_20240412Parser.ListValueTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueTypeName(GQL_20240412Parser.ListValueTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueTypeNameSynonym(GQL_20240412Parser.ListValueTypeNameSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueTypeNameSynonym(GQL_20240412Parser.ListValueTypeNameSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordType(GQL_20240412Parser.RecordTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordType(GQL_20240412Parser.RecordTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldTypesSpecification(GQL_20240412Parser.FieldTypesSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldTypesSpecification(GQL_20240412Parser.FieldTypesSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldTypeList(GQL_20240412Parser.FieldTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldTypeList(GQL_20240412Parser.FieldTypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNotNull(GQL_20240412Parser.NotNullContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNotNull(GQL_20240412Parser.NotNullContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldType(GQL_20240412Parser.FieldTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldType(GQL_20240412Parser.FieldTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSearchCondition(GQL_20240412Parser.SearchConditionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSearchCondition(GQL_20240412Parser.SearchConditionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredicate(GQL_20240412Parser.PredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredicate(GQL_20240412Parser.PredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComparisonPredicatePart2(GQL_20240412Parser.ComparisonPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComparisonPredicatePart2(GQL_20240412Parser.ComparisonPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCompOp(GQL_20240412Parser.CompOpContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCompOp(GQL_20240412Parser.CompOpContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExistsPredicate(GQL_20240412Parser.ExistsPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExistsPredicate(GQL_20240412Parser.ExistsPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterNullPredicatePart2(GQL_20240412Parser.NullPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNullPredicatePart2(GQL_20240412Parser.NullPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueTypePredicate(GQL_20240412Parser.ValueTypePredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueTypePredicate(GQL_20240412Parser.ValueTypePredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueTypePredicatePart2(GQL_20240412Parser.ValueTypePredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueTypePredicatePart2(GQL_20240412Parser.ValueTypePredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNormalizedPredicatePart2(GQL_20240412Parser.NormalizedPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNormalizedPredicatePart2(GQL_20240412Parser.NormalizedPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDirectedPredicate(GQL_20240412Parser.DirectedPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDirectedPredicate(GQL_20240412Parser.DirectedPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDirectedPredicatePart2(GQL_20240412Parser.DirectedPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDirectedPredicatePart2(GQL_20240412Parser.DirectedPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledPredicate(GQL_20240412Parser.LabeledPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledPredicate(GQL_20240412Parser.LabeledPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledPredicatePart2(GQL_20240412Parser.LabeledPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledPredicatePart2(GQL_20240412Parser.LabeledPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsLabeledOrColon(GQL_20240412Parser.IsLabeledOrColonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsLabeledOrColon(GQL_20240412Parser.IsLabeledOrColonContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSourceDestinationPredicate(GQL_20240412Parser.SourceDestinationPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSourceDestinationPredicate(GQL_20240412Parser.SourceDestinationPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeReference(GQL_20240412Parser.NodeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeReference(GQL_20240412Parser.NodeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSourcePredicatePart2(GQL_20240412Parser.SourcePredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSourcePredicatePart2(GQL_20240412Parser.SourcePredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDestinationPredicatePart2(GQL_20240412Parser.DestinationPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDestinationPredicatePart2(GQL_20240412Parser.DestinationPredicatePart2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeReference(GQL_20240412Parser.EdgeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeReference(GQL_20240412Parser.EdgeReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAll_differentPredicate(GQL_20240412Parser.All_differentPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAll_differentPredicate(GQL_20240412Parser.All_differentPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSamePredicate(GQL_20240412Parser.SamePredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSamePredicate(GQL_20240412Parser.SamePredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProperty_existsPredicate(GQL_20240412Parser.Property_existsPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProperty_existsPredicate(GQL_20240412Parser.Property_existsPredicateContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConjunctiveExprAlt(GQL_20240412Parser.ConjunctiveExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConjunctiveExprAlt(GQL_20240412Parser.ConjunctiveExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyGraphExprAlt(GQL_20240412Parser.PropertyGraphExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyGraphExprAlt(GQL_20240412Parser.PropertyGraphExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMultDivExprAlt(GQL_20240412Parser.MultDivExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMultDivExprAlt(GQL_20240412Parser.MultDivExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingTableExprAlt(GQL_20240412Parser.BindingTableExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingTableExprAlt(GQL_20240412Parser.BindingTableExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSignedExprAlt(GQL_20240412Parser.SignedExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSignedExprAlt(GQL_20240412Parser.SignedExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsNotExprAlt(GQL_20240412Parser.IsNotExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsNotExprAlt(GQL_20240412Parser.IsNotExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNormalizedPredicateExprAlt(GQL_20240412Parser.NormalizedPredicateExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNormalizedPredicateExprAlt(GQL_20240412Parser.NormalizedPredicateExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNotExprAlt(GQL_20240412Parser.NotExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNotExprAlt(GQL_20240412Parser.NotExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueFunctionExprAlt(GQL_20240412Parser.ValueFunctionExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueFunctionExprAlt(GQL_20240412Parser.ValueFunctionExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConcatenationExprAlt(GQL_20240412Parser.ConcatenationExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConcatenationExprAlt(GQL_20240412Parser.ConcatenationExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDisjunctiveExprAlt(GQL_20240412Parser.DisjunctiveExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDisjunctiveExprAlt(GQL_20240412Parser.DisjunctiveExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComparisonExprAlt(GQL_20240412Parser.ComparisonExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComparisonExprAlt(GQL_20240412Parser.ComparisonExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryExprAlt(GQL_20240412Parser.PrimaryExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryExprAlt(GQL_20240412Parser.PrimaryExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAddSubtractExprAlt(GQL_20240412Parser.AddSubtractExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAddSubtractExprAlt(GQL_20240412Parser.AddSubtractExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredicateExprAlt(GQL_20240412Parser.PredicateExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredicateExprAlt(GQL_20240412Parser.PredicateExprAltContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueFunction(GQL_20240412Parser.ValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueFunction(GQL_20240412Parser.ValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBooleanValueExpression(GQL_20240412Parser.BooleanValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBooleanValueExpression(GQL_20240412Parser.BooleanValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCharacterOrByteStringFunction(GQL_20240412Parser.CharacterOrByteStringFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCharacterOrByteStringFunction(GQL_20240412Parser.CharacterOrByteStringFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubCharacterOrByteString(GQL_20240412Parser.SubCharacterOrByteStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubCharacterOrByteString(GQL_20240412Parser.SubCharacterOrByteStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrimSingleCharacterOrByteString(GQL_20240412Parser.TrimSingleCharacterOrByteStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrimSingleCharacterOrByteString(GQL_20240412Parser.TrimSingleCharacterOrByteStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFoldCharacterString(GQL_20240412Parser.FoldCharacterStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFoldCharacterString(GQL_20240412Parser.FoldCharacterStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrimMultiCharacterCharacterString(GQL_20240412Parser.TrimMultiCharacterCharacterStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrimMultiCharacterCharacterString(GQL_20240412Parser.TrimMultiCharacterCharacterStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNormalizeCharacterString(GQL_20240412Parser.NormalizeCharacterStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNormalizeCharacterString(GQL_20240412Parser.NormalizeCharacterStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeReferenceValueExpression(GQL_20240412Parser.NodeReferenceValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeReferenceValueExpression(GQL_20240412Parser.NodeReferenceValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeReferenceValueExpression(GQL_20240412Parser.EdgeReferenceValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeReferenceValueExpression(GQL_20240412Parser.EdgeReferenceValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAggregatingValueExpression(GQL_20240412Parser.AggregatingValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAggregatingValueExpression(GQL_20240412Parser.AggregatingValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueExpressionPrimary(GQL_20240412Parser.ValueExpressionPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueExpressionPrimary(GQL_20240412Parser.ValueExpressionPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParenthesizedValueExpression(GQL_20240412Parser.ParenthesizedValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParenthesizedValueExpression(GQL_20240412Parser.ParenthesizedValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNonParenthesizedValueExpressionPrimary(GQL_20240412Parser.NonParenthesizedValueExpressionPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNonParenthesizedValueExpressionPrimary(GQL_20240412Parser.NonParenthesizedValueExpressionPrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNonParenthesizedValueExpressionPrimarySpecialCase(GQL_20240412Parser.NonParenthesizedValueExpressionPrimarySpecialCaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNonParenthesizedValueExpressionPrimarySpecialCase(GQL_20240412Parser.NonParenthesizedValueExpressionPrimarySpecialCaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnsignedValueSpecification(GQL_20240412Parser.UnsignedValueSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnsignedValueSpecification(GQL_20240412Parser.UnsignedValueSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNonNegativeIntegerSpecification(GQL_20240412Parser.NonNegativeIntegerSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNonNegativeIntegerSpecification(GQL_20240412Parser.NonNegativeIntegerSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneralValueSpecification(GQL_20240412Parser.GeneralValueSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneralValueSpecification(GQL_20240412Parser.GeneralValueSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDynamicParameterSpecification(GQL_20240412Parser.DynamicParameterSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDynamicParameterSpecification(GQL_20240412Parser.DynamicParameterSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLetValueExpression(GQL_20240412Parser.LetValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLetValueExpression(GQL_20240412Parser.LetValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValueQueryExpression(GQL_20240412Parser.ValueQueryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValueQueryExpression(GQL_20240412Parser.ValueQueryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCaseExpression(GQL_20240412Parser.CaseExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCaseExpression(GQL_20240412Parser.CaseExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCaseAbbreviation(GQL_20240412Parser.CaseAbbreviationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCaseAbbreviation(GQL_20240412Parser.CaseAbbreviationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCaseSpecification(GQL_20240412Parser.CaseSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCaseSpecification(GQL_20240412Parser.CaseSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterSimpleWhenClause(GQL_20240412Parser.SimpleWhenClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleWhenClause(GQL_20240412Parser.SimpleWhenClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSearchedWhenClause(GQL_20240412Parser.SearchedWhenClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSearchedWhenClause(GQL_20240412Parser.SearchedWhenClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElseClause(GQL_20240412Parser.ElseClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElseClause(GQL_20240412Parser.ElseClauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCaseOperand(GQL_20240412Parser.CaseOperandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCaseOperand(GQL_20240412Parser.CaseOperandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhenOperandList(GQL_20240412Parser.WhenOperandListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhenOperandList(GQL_20240412Parser.WhenOperandListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhenOperand(GQL_20240412Parser.WhenOperandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhenOperand(GQL_20240412Parser.WhenOperandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResult(GQL_20240412Parser.ResultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResult(GQL_20240412Parser.ResultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResultExpression(GQL_20240412Parser.ResultExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResultExpression(GQL_20240412Parser.ResultExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCastSpecification(GQL_20240412Parser.CastSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCastSpecification(GQL_20240412Parser.CastSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCastOperand(GQL_20240412Parser.CastOperandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCastOperand(GQL_20240412Parser.CastOperandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCastTarget(GQL_20240412Parser.CastTargetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCastTarget(GQL_20240412Parser.CastTargetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAggregateFunction(GQL_20240412Parser.AggregateFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAggregateFunction(GQL_20240412Parser.AggregateFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneralSetFunction(GQL_20240412Parser.GeneralSetFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneralSetFunction(GQL_20240412Parser.GeneralSetFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBinarySetFunction(GQL_20240412Parser.BinarySetFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBinarySetFunction(GQL_20240412Parser.BinarySetFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneralSetFunctionType(GQL_20240412Parser.GeneralSetFunctionTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneralSetFunctionType(GQL_20240412Parser.GeneralSetFunctionTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterBinarySetFunctionType(GQL_20240412Parser.BinarySetFunctionTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBinarySetFunctionType(GQL_20240412Parser.BinarySetFunctionTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDependentValueExpression(GQL_20240412Parser.DependentValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDependentValueExpression(GQL_20240412Parser.DependentValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIndependentValueExpression(GQL_20240412Parser.IndependentValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIndependentValueExpression(GQL_20240412Parser.IndependentValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElement_idFunction(GQL_20240412Parser.Element_idFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElement_idFunction(GQL_20240412Parser.Element_idFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingVariableReference(GQL_20240412Parser.BindingVariableReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingVariableReference(GQL_20240412Parser.BindingVariableReferenceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathValueExpression(GQL_20240412Parser.PathValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathValueExpression(GQL_20240412Parser.PathValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathValueConstructor(GQL_20240412Parser.PathValueConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathValueConstructor(GQL_20240412Parser.PathValueConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathValueConstructorByEnumeration(GQL_20240412Parser.PathValueConstructorByEnumerationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathValueConstructorByEnumeration(GQL_20240412Parser.PathValueConstructorByEnumerationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathElementList(GQL_20240412Parser.PathElementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathElementList(GQL_20240412Parser.PathElementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathElementListStart(GQL_20240412Parser.PathElementListStartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathElementListStart(GQL_20240412Parser.PathElementListStartContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathElementListStep(GQL_20240412Parser.PathElementListStepContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathElementListStep(GQL_20240412Parser.PathElementListStepContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueExpression(GQL_20240412Parser.ListValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueExpression(GQL_20240412Parser.ListValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueFunction(GQL_20240412Parser.ListValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueFunction(GQL_20240412Parser.ListValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrimListFunction(GQL_20240412Parser.TrimListFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrimListFunction(GQL_20240412Parser.TrimListFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementsFunction(GQL_20240412Parser.ElementsFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementsFunction(GQL_20240412Parser.ElementsFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueConstructor(GQL_20240412Parser.ListValueConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueConstructor(GQL_20240412Parser.ListValueConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListValueConstructorByEnumeration(GQL_20240412Parser.ListValueConstructorByEnumerationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListValueConstructorByEnumeration(GQL_20240412Parser.ListValueConstructorByEnumerationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListElementList(GQL_20240412Parser.ListElementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListElementList(GQL_20240412Parser.ListElementListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListElement(GQL_20240412Parser.ListElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListElement(GQL_20240412Parser.ListElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordConstructor(GQL_20240412Parser.RecordConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordConstructor(GQL_20240412Parser.RecordConstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldsSpecification(GQL_20240412Parser.FieldsSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldsSpecification(GQL_20240412Parser.FieldsSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldList(GQL_20240412Parser.FieldListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldList(GQL_20240412Parser.FieldListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterField(GQL_20240412Parser.FieldContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitField(GQL_20240412Parser.FieldContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTruthValue(GQL_20240412Parser.TruthValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTruthValue(GQL_20240412Parser.TruthValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericValueExpression(GQL_20240412Parser.NumericValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericValueExpression(GQL_20240412Parser.NumericValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericValueFunction(GQL_20240412Parser.NumericValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericValueFunction(GQL_20240412Parser.NumericValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLengthExpression(GQL_20240412Parser.LengthExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLengthExpression(GQL_20240412Parser.LengthExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCardinalityExpression(GQL_20240412Parser.CardinalityExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCardinalityExpression(GQL_20240412Parser.CardinalityExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCardinalityExpressionArgument(GQL_20240412Parser.CardinalityExpressionArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCardinalityExpressionArgument(GQL_20240412Parser.CardinalityExpressionArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCharLengthExpression(GQL_20240412Parser.CharLengthExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCharLengthExpression(GQL_20240412Parser.CharLengthExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterByteLengthExpression(GQL_20240412Parser.ByteLengthExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitByteLengthExpression(GQL_20240412Parser.ByteLengthExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathLengthExpression(GQL_20240412Parser.PathLengthExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathLengthExpression(GQL_20240412Parser.PathLengthExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAbsoluteValueExpression(GQL_20240412Parser.AbsoluteValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAbsoluteValueExpression(GQL_20240412Parser.AbsoluteValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterModulusExpression(GQL_20240412Parser.ModulusExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitModulusExpression(GQL_20240412Parser.ModulusExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericValueExpressionDividend(GQL_20240412Parser.NumericValueExpressionDividendContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericValueExpressionDividend(GQL_20240412Parser.NumericValueExpressionDividendContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericValueExpressionDivisor(GQL_20240412Parser.NumericValueExpressionDivisorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericValueExpressionDivisor(GQL_20240412Parser.NumericValueExpressionDivisorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrigonometricFunction(GQL_20240412Parser.TrigonometricFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrigonometricFunction(GQL_20240412Parser.TrigonometricFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrigonometricFunctionName(GQL_20240412Parser.TrigonometricFunctionNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrigonometricFunctionName(GQL_20240412Parser.TrigonometricFunctionNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneralLogarithmFunction(GQL_20240412Parser.GeneralLogarithmFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneralLogarithmFunction(GQL_20240412Parser.GeneralLogarithmFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneralLogarithmBase(GQL_20240412Parser.GeneralLogarithmBaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneralLogarithmBase(GQL_20240412Parser.GeneralLogarithmBaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneralLogarithmArgument(GQL_20240412Parser.GeneralLogarithmArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneralLogarithmArgument(GQL_20240412Parser.GeneralLogarithmArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCommonLogarithm(GQL_20240412Parser.CommonLogarithmContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCommonLogarithm(GQL_20240412Parser.CommonLogarithmContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNaturalLogarithm(GQL_20240412Parser.NaturalLogarithmContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNaturalLogarithm(GQL_20240412Parser.NaturalLogarithmContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExponentialFunction(GQL_20240412Parser.ExponentialFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExponentialFunction(GQL_20240412Parser.ExponentialFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPowerFunction(GQL_20240412Parser.PowerFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPowerFunction(GQL_20240412Parser.PowerFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericValueExpressionBase(GQL_20240412Parser.NumericValueExpressionBaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericValueExpressionBase(GQL_20240412Parser.NumericValueExpressionBaseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumericValueExpressionExponent(GQL_20240412Parser.NumericValueExpressionExponentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumericValueExpressionExponent(GQL_20240412Parser.NumericValueExpressionExponentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSquareRoot(GQL_20240412Parser.SquareRootContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSquareRoot(GQL_20240412Parser.SquareRootContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFloorFunction(GQL_20240412Parser.FloorFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFloorFunction(GQL_20240412Parser.FloorFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCeilingFunction(GQL_20240412Parser.CeilingFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCeilingFunction(GQL_20240412Parser.CeilingFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCharacterStringValueExpression(GQL_20240412Parser.CharacterStringValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCharacterStringValueExpression(GQL_20240412Parser.CharacterStringValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterByteStringValueExpression(GQL_20240412Parser.ByteStringValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitByteStringValueExpression(GQL_20240412Parser.ByteStringValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrimOperands(GQL_20240412Parser.TrimOperandsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrimOperands(GQL_20240412Parser.TrimOperandsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrimCharacterOrByteStringSource(GQL_20240412Parser.TrimCharacterOrByteStringSourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrimCharacterOrByteStringSource(GQL_20240412Parser.TrimCharacterOrByteStringSourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrimSpecification(GQL_20240412Parser.TrimSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrimSpecification(GQL_20240412Parser.TrimSpecificationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrimCharacterOrByteString(GQL_20240412Parser.TrimCharacterOrByteStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrimCharacterOrByteString(GQL_20240412Parser.TrimCharacterOrByteStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterStringLength(GQL_20240412Parser.StringLengthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStringLength(GQL_20240412Parser.StringLengthContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeValueExpression(GQL_20240412Parser.DatetimeValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeValueExpression(GQL_20240412Parser.DatetimeValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeValueFunction(GQL_20240412Parser.DatetimeValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeValueFunction(GQL_20240412Parser.DatetimeValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDateFunction(GQL_20240412Parser.DateFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDateFunction(GQL_20240412Parser.DateFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTimeFunction(GQL_20240412Parser.TimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTimeFunction(GQL_20240412Parser.TimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocaltimeFunction(GQL_20240412Parser.LocaltimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocaltimeFunction(GQL_20240412Parser.LocaltimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeFunction(GQL_20240412Parser.DatetimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeFunction(GQL_20240412Parser.DatetimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocaldatetimeFunction(GQL_20240412Parser.LocaldatetimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocaldatetimeFunction(GQL_20240412Parser.LocaldatetimeFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDateFunctionParameters(GQL_20240412Parser.DateFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDateFunctionParameters(GQL_20240412Parser.DateFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTimeFunctionParameters(GQL_20240412Parser.TimeFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTimeFunctionParameters(GQL_20240412Parser.TimeFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeFunctionParameters(GQL_20240412Parser.DatetimeFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeFunctionParameters(GQL_20240412Parser.DatetimeFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDurationValueExpression(GQL_20240412Parser.DurationValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDurationValueExpression(GQL_20240412Parser.DurationValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeSubtraction(GQL_20240412Parser.DatetimeSubtractionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeSubtraction(GQL_20240412Parser.DatetimeSubtractionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeSubtractionParameters(GQL_20240412Parser.DatetimeSubtractionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeSubtractionParameters(GQL_20240412Parser.DatetimeSubtractionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeValueExpression1(GQL_20240412Parser.DatetimeValueExpression1Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeValueExpression1(GQL_20240412Parser.DatetimeValueExpression1Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeValueExpression2(GQL_20240412Parser.DatetimeValueExpression2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeValueExpression2(GQL_20240412Parser.DatetimeValueExpression2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDurationValueFunction(GQL_20240412Parser.DurationValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDurationValueFunction(GQL_20240412Parser.DurationValueFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDurationFunction(GQL_20240412Parser.DurationFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDurationFunction(GQL_20240412Parser.DurationFunctionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDurationFunctionParameters(GQL_20240412Parser.DurationFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDurationFunctionParameters(GQL_20240412Parser.DurationFunctionParametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObjectName(GQL_20240412Parser.ObjectNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObjectName(GQL_20240412Parser.ObjectNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObjectNameOrBindingVariable(GQL_20240412Parser.ObjectNameOrBindingVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObjectNameOrBindingVariable(GQL_20240412Parser.ObjectNameOrBindingVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDirectoryName(GQL_20240412Parser.DirectoryNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDirectoryName(GQL_20240412Parser.DirectoryNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSchemaName(GQL_20240412Parser.SchemaNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSchemaName(GQL_20240412Parser.SchemaNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphName(GQL_20240412Parser.GraphNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphName(GQL_20240412Parser.GraphNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDelimitedGraphName(GQL_20240412Parser.DelimitedGraphNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDelimitedGraphName(GQL_20240412Parser.DelimitedGraphNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGraphTypeName(GQL_20240412Parser.GraphTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGraphTypeName(GQL_20240412Parser.GraphTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeTypeName(GQL_20240412Parser.NodeTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeTypeName(GQL_20240412Parser.NodeTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeTypeName(GQL_20240412Parser.EdgeTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeTypeName(GQL_20240412Parser.EdgeTypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingTableName(GQL_20240412Parser.BindingTableNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingTableName(GQL_20240412Parser.BindingTableNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDelimitedBindingTableName(GQL_20240412Parser.DelimitedBindingTableNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDelimitedBindingTableName(GQL_20240412Parser.DelimitedBindingTableNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProcedureName(GQL_20240412Parser.ProcedureNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProcedureName(GQL_20240412Parser.ProcedureNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabelName(GQL_20240412Parser.LabelNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabelName(GQL_20240412Parser.LabelNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyName(GQL_20240412Parser.PropertyNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyName(GQL_20240412Parser.PropertyNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldName(GQL_20240412Parser.FieldNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldName(GQL_20240412Parser.FieldNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElementVariable(GQL_20240412Parser.ElementVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementVariable(GQL_20240412Parser.ElementVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPathVariable(GQL_20240412Parser.PathVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPathVariable(GQL_20240412Parser.PathVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubpathVariable(GQL_20240412Parser.SubpathVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubpathVariable(GQL_20240412Parser.SubpathVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBindingVariable(GQL_20240412Parser.BindingVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBindingVariable(GQL_20240412Parser.BindingVariableContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnsignedLiteral(GQL_20240412Parser.UnsignedLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnsignedLiteral(GQL_20240412Parser.UnsignedLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneralLiteral(GQL_20240412Parser.GeneralLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneralLiteral(GQL_20240412Parser.GeneralLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTemporalLiteral(GQL_20240412Parser.TemporalLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTemporalLiteral(GQL_20240412Parser.TemporalLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDateLiteral(GQL_20240412Parser.DateLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDateLiteral(GQL_20240412Parser.DateLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTimeLiteral(GQL_20240412Parser.TimeLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTimeLiteral(GQL_20240412Parser.TimeLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeLiteral(GQL_20240412Parser.DatetimeLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeLiteral(GQL_20240412Parser.DatetimeLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListLiteral(GQL_20240412Parser.ListLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListLiteral(GQL_20240412Parser.ListLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordLiteral(GQL_20240412Parser.RecordLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordLiteral(GQL_20240412Parser.RecordLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifier(GQL_20240412Parser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifier(GQL_20240412Parser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRegularIdentifier(GQL_20240412Parser.RegularIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRegularIdentifier(GQL_20240412Parser.RegularIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterCharacterStringLiteral(GQL_20240412Parser.CharacterStringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCharacterStringLiteral(GQL_20240412Parser.CharacterStringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnsignedNumericLiteral(GQL_20240412Parser.UnsignedNumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnsignedNumericLiteral(GQL_20240412Parser.UnsignedNumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExactNumericLiteral(GQL_20240412Parser.ExactNumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExactNumericLiteral(GQL_20240412Parser.ExactNumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterApproximateNumericLiteral(GQL_20240412Parser.ApproximateNumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitApproximateNumericLiteral(GQL_20240412Parser.ApproximateNumericLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnsignedInteger(GQL_20240412Parser.UnsignedIntegerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnsignedInteger(GQL_20240412Parser.UnsignedIntegerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnsignedDecimalInteger(GQL_20240412Parser.UnsignedDecimalIntegerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnsignedDecimalInteger(GQL_20240412Parser.UnsignedDecimalIntegerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterDateString(GQL_20240412Parser.DateStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDateString(GQL_20240412Parser.DateStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTimeString(GQL_20240412Parser.TimeStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTimeString(GQL_20240412Parser.TimeStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDatetimeString(GQL_20240412Parser.DatetimeStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDatetimeString(GQL_20240412Parser.DatetimeStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDurationLiteral(GQL_20240412Parser.DurationLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDurationLiteral(GQL_20240412Parser.DurationLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDurationString(GQL_20240412Parser.DurationStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDurationString(GQL_20240412Parser.DurationStringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNodeSynonym(GQL_20240412Parser.NodeSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNodeSynonym(GQL_20240412Parser.NodeSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgesSynonym(GQL_20240412Parser.EdgesSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgesSynonym(GQL_20240412Parser.EdgesSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEdgeSynonym(GQL_20240412Parser.EdgeSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEdgeSynonym(GQL_20240412Parser.EdgeSynonymContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNonReservedWords(GQL_20240412Parser.NonReservedWordsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNonReservedWords(GQL_20240412Parser.NonReservedWordsContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_20240412Lexer.interp b/developer/javac/ANTLR/GQL_20240412Lexer.interp new file mode 100644 index 0000000..dfcdffd --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240412Lexer.interp @@ -0,0 +1,1239 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'ABS' +'ACOS' +'ALL' +'ALL_DIFFERENT' +'AND' +'ANY' +'ARRAY' +'AS' +'ASC' +'ASCENDING' +'ASIN' +'AT' +'ATAN' +'AVG' +'BIG' +'BIGINT' +'BINARY' +'BOOL' +'BOOLEAN' +'BOTH' +'BTRIM' +'BY' +'BYTE_LENGTH' +'BYTES' +'CALL' +'CARDINALITY' +'CASE' +'CAST' +'CEIL' +'CEILING' +'CHAR' +'CHAR_LENGTH' +'CHARACTER_LENGTH' +'CHARACTERISTICS' +'CLOSE' +'COALESCE' +'COLLECT_LIST' +'COMMIT' +'COPY' +'COS' +'COSH' +'COT' +'COUNT' +'CREATE' +'CURRENT_DATE' +'CURRENT_GRAPH' +'CURRENT_PROPERTY_GRAPH' +'CURRENT_SCHEMA' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'DATE' +'DATETIME' +'DAY' +'DEC' +'DECIMAL' +'DEGREES' +'DELETE' +'DESC' +'DESCENDING' +'DETACH' +'DISTINCT' +'DOUBLE' +'DROP' +'DURATION' +'DURATION_BETWEEN' +'ELEMENT_ID' +'ELSE' +'END' +'EXCEPT' +'EXISTS' +'EXP' +'FILTER' +'FINISH' +'FLOAT' +'FLOAT16' +'FLOAT32' +'FLOAT64' +'FLOAT128' +'FLOAT256' +'FLOOR' +'FOR' +'FROM' +'GROUP' +'HAVING' +'HOME_GRAPH' +'HOME_PROPERTY_GRAPH' +'HOME_SCHEMA' +'HOUR' +'IF' +'IN' +'INSERT' +'INT' +'INTEGER' +'INT8' +'INTEGER8' +'INT16' +'INTEGER16' +'INT32' +'INTEGER32' +'INT64' +'INTEGER64' +'INT128' +'INTEGER128' +'INT256' +'INTEGER256' +'INTERSECT' +'INTERVAL' +'IS' +'LEADING' +'LEFT' +'LET' +'LIKE' +'LIMIT' +'LIST' +'LN' +'LOCAL' +'LOCAL_DATETIME' +'LOCAL_TIME' +'LOCAL_TIMESTAMP' +'LOG' +'LOG10' +'LOWER' +'LTRIM' +'MATCH' +'MAX' +'MIN' +'MINUTE' +'MOD' +'MONTH' +'NEXT' +'NODETACH' +'NORMALIZE' +'NOT' +'NOTHING' +'NULL' +'NULLS' +'NULLIF' +'OCTET_LENGTH' +'OF' +'OFFSET' +'OPTIONAL' +'OR' +'ORDER' +'OTHERWISE' +'PARAMETER' +'PARAMETERS' +'PATH' +'PATH_LENGTH' +'PATHS' +'PERCENTILE_CONT' +'PERCENTILE_DISC' +'POWER' +'PRECISION' +'PROPERTY_EXISTS' +'RADIANS' +'REAL' +'RECORD' +'REMOVE' +'REPLACE' +'RESET' +'RETURN' +'RIGHT' +'ROLLBACK' +'RTRIM' +'SAME' +'SCHEMA' +'SECOND' +'SELECT' +'SESSION' +'SESSION_USER' +'SET' +'SIGNED' +'SIN' +'SINH' +'SIZE' +'SKIP' +'SMALL' +'SMALLINT' +'SQRT' +'START' +'STDDEV_POP' +'STDDEV_SAMP' +'STRING' +'SUM' +'TAN' +'TANH' +'THEN' +'TIME' +'TIMESTAMP' +'TRAILING' +'TRIM' +'TYPED' +'UBIGINT' +'UINT' +'UINT8' +'UINT16' +'UINT32' +'UINT64' +'UINT128' +'UINT256' +'UNION' +'UNSIGNED' +'UPPER' +'USE' +'USMALLINT' +'VALUE' +'VARBINARY' +'VARCHAR' +'VARIABLE' +'WHEN' +'WHERE' +'WITH' +'XOR' +'YEAR' +'YIELD' +'ZONED' +'ZONED_DATETIME' +'ZONED_TIME' +'ABSTRACT' +'AGGREGATE' +'AGGREGATES' +'ALTER' +'CATALOG' +'CLEAR' +'CLONE' +'CONSTRAINT' +'CURRENT_ROLE' +'CURRENT_USER' +'DATA' +'DIRECTORY' +'DRYRUN' +'EXACT' +'EXISTING' +'FUNCTION' +'GQLSTATUS' +'GRANT' +'INSTANT' +'INFINITY' +'NUMBER' +'NUMERIC' +'ON' +'OPEN' +'PARTITION' +'PROCEDURE' +'PRODUCT' +'PROJECT' +'QUERY' +'RECORDS' +'REFERENCE' +'RENAME' +'REVOKE' +'SUBSTRING' +'SYSTEM_USER' +'TEMPORAL' +'UNIQUE' +'UNIT' +'VALUES' +'ACYCLIC' +'BINDING' +'BINDINGS' +'CONNECTING' +'DESTINATION' +'DIFFERENT' +'DIRECTED' +'EDGE' +'EDGES' +'ELEMENT' +'ELEMENTS' +'FIRST' +'GRAPH' +'GROUPS' +'KEEP' +'LABEL' +'LABELED' +'LABELS' +'LAST' +'NFC' +'NFD' +'NFKC' +'NFKD' +'NO' +'NODE' +'NORMALIZED' +'ONLY' +'ORDINALITY' +'PROPERTY' +'READ' +'RELATIONSHIP' +'RELATIONSHIPS' +'REPEATABLE' +'SHORTEST' +'SIMPLE' +'SOURCE' +'TABLE' +'TEMP' +'TO' +'TRAIL' +'TRANSACTION' +'TYPE' +'UNDIRECTED' +'VERTEX' +'WALK' +'WITHOUT' +'WRITE' +'ZONE' +null +null +null +'|+|' +']->' +']~>' +'||' +'::' +'$$' +'..' +'>=' +'<-' +'<~' +'<-[' +'<~[' +'<->' +'<-/' +'<~/' +'<=' +'-[' +'-/' +'<>' +'->' +']-' +']~' +'=>' +'/-' +'/->' +'/~' +'/~>' +'~[' +'~>' +'~/' +'&' +'*' +':' +',' +'@' +'$' +'"' +'=' +'!' +'>' +'`' +'{' +'[' +'(' +'<' +'-' +'%' +'.' +'+' +'?' +'\'' +'\\' +'}' +']' +')' +'/' +'~' +'_' +'|' +null +null +null +null +null + +token symbolic names: +null +IMPLIES +BOOLEAN_LITERAL +SINGLE_QUOTED_CHARACTER_SEQUENCE +DOUBLE_QUOTED_CHARACTER_SEQUENCE +ACCENT_QUOTED_CHARACTER_SEQUENCE +NO_ESCAPE +BYTE_STRING_LITERAL +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER +UNSIGNED_HEXADECIMAL_INTEGER +UNSIGNED_OCTAL_INTEGER +UNSIGNED_BINARY_INTEGER +ABS +ACOS +ALL +ALL_DIFFERENT +AND +ANY +ARRAY +AS +ASC +ASCENDING +ASIN +AT +ATAN +AVG +BIG +BIGINT +BINARY +BOOL +BOOLEAN +BOTH +BTRIM +BY +BYTE_LENGTH +BYTES +CALL +CARDINALITY +CASE +CAST +CEIL +CEILING +CHAR +CHAR_LENGTH +CHARACTER_LENGTH +CHARACTERISTICS +CLOSE +COALESCE +COLLECT_LIST +COMMIT +COPY +COS +COSH +COT +COUNT +CREATE +CURRENT_DATE +CURRENT_GRAPH +CURRENT_PROPERTY_GRAPH +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +DATE +DATETIME +DAY +DEC +DECIMAL +DEGREES +DELETE +DESC +DESCENDING +DETACH +DISTINCT +DOUBLE +DROP +DURATION +DURATION_BETWEEN +ELEMENT_ID +ELSE +END +EXCEPT +EXISTS +EXP +FILTER +FINISH +FLOAT +FLOAT16 +FLOAT32 +FLOAT64 +FLOAT128 +FLOAT256 +FLOOR +FOR +FROM +GROUP +HAVING +HOME_GRAPH +HOME_PROPERTY_GRAPH +HOME_SCHEMA +HOUR +IF +IN +INSERT +INT +INTEGER +INT8 +INTEGER8 +INT16 +INTEGER16 +INT32 +INTEGER32 +INT64 +INTEGER64 +INT128 +INTEGER128 +INT256 +INTEGER256 +INTERSECT +INTERVAL +IS +LEADING +LEFT +LET +LIKE +LIMIT +LIST +LN +LOCAL +LOCAL_DATETIME +LOCAL_TIME +LOCAL_TIMESTAMP +LOG +LOG10 +LOWER +LTRIM +MATCH +MAX +MIN +MINUTE +MOD +MONTH +NEXT +NODETACH +NORMALIZE +NOT +NOTHING +NULL +NULLS +NULLIF +OCTET_LENGTH +OF +OFFSET +OPTIONAL +OR +ORDER +OTHERWISE +PARAMETER +PARAMETERS +PATH +PATH_LENGTH +PATHS +PERCENTILE_CONT +PERCENTILE_DISC +POWER +PRECISION +PROPERTY_EXISTS +RADIANS +REAL +RECORD +REMOVE +REPLACE +RESET +RETURN +RIGHT +ROLLBACK +RTRIM +SAME +SCHEMA +SECOND +SELECT +SESSION +SESSION_USER +SET +SIGNED +SIN +SINH +SIZE +SKIP_RESERVED_WORD +SMALL +SMALLINT +SQRT +START +STDDEV_POP +STDDEV_SAMP +STRING +SUM +TAN +TANH +THEN +TIME +TIMESTAMP +TRAILING +TRIM +TYPED +UBIGINT +UINT +UINT8 +UINT16 +UINT32 +UINT64 +UINT128 +UINT256 +UNION +UNSIGNED +UPPER +USE +USMALLINT +VALUE +VARBINARY +VARCHAR +VARIABLE +WHEN +WHERE +WITH +XOR +YEAR +YIELD +ZONED +ZONED_DATETIME +ZONED_TIME +ABSTRACT +AGGREGATE +AGGREGATES +ALTER +CATALOG +CLEAR +CLONE +CONSTRAINT +CURRENT_ROLE +CURRENT_USER +DATA +DIRECTORY +DRYRUN +EXACT +EXISTING +FUNCTION +GQLSTATUS +GRANT +INSTANT +INFINITY +NUMBER +NUMERIC +ON +OPEN +PARTITION +PROCEDURE +PRODUCT +PROJECT +QUERY +RECORDS +REFERENCE +RENAME +REVOKE +SUBSTRING +SYSTEM_USER +TEMPORAL +UNIQUE +UNIT +VALUES +ACYCLIC +BINDING +BINDINGS +CONNECTING +DESTINATION +DIFFERENT +DIRECTED +EDGE +EDGES +ELEMENT +ELEMENTS +FIRST +GRAPH +GROUPS +KEEP +LABEL +LABELED +LABELS +LAST +NFC +NFD +NFKC +NFKD +NO +NODE +NORMALIZED +ONLY +ORDINALITY +PROPERTY +READ +RELATIONSHIP +RELATIONSHIPS +REPEATABLE +SHORTEST +SIMPLE +SOURCE +TABLE +TEMP +TO +TRAIL +TRANSACTION +TYPE +UNDIRECTED +VERTEX +WALK +WITHOUT +WRITE +ZONE +REGULAR_IDENTIFIER +SUBSTITUTED_PARAMETER_REFERENCE +GENERAL_PARAMETER_REFERENCE +MULTISET_ALTERNATION_OPERATOR +BRACKET_RIGHT_ARROW +BRACKET_TILDE_RIGHT_ARROW +CONCATENATION_OPERATOR +DOUBLE_COLON +DOUBLE_DOLLAR_SIGN +DOUBLE_PERIOD +GREATER_THAN_OR_EQUALS_OPERATOR +LEFT_ARROW +LEFT_ARROW_TILDE +LEFT_ARROW_BRACKET +LEFT_ARROW_TILDE_BRACKET +LEFT_MINUS_RIGHT +LEFT_MINUS_SLASH +LEFT_TILDE_SLASH +LESS_THAN_OR_EQUALS_OPERATOR +MINUS_LEFT_BRACKET +MINUS_SLASH +NOT_EQUALS_OPERATOR +RIGHT_ARROW +RIGHT_BRACKET_MINUS +RIGHT_BRACKET_TILDE +RIGHT_DOUBLE_ARROW +SLASH_MINUS +SLASH_MINUS_RIGHT +SLASH_TILDE +SLASH_TILDE_RIGHT +TILDE_LEFT_BRACKET +TILDE_RIGHT_ARROW +TILDE_SLASH +AMPERSAND +ASTERISK +COLON +COMMA +COMMERCIAL_AT +DOLLAR_SIGN +DOUBLE_QUOTE +EQUALS_OPERATOR +EXCLAMATION_MARK +RIGHT_ANGLE_BRACKET +GRAVE_ACCENT +LEFT_BRACE +LEFT_BRACKET +LEFT_PAREN +LEFT_ANGLE_BRACKET +MINUS_SIGN +PERCENT +PERIOD +PLUS_SIGN +QUESTION_MARK +QUOTE +REVERSE_SOLIDUS +RIGHT_BRACE +RIGHT_BRACKET +RIGHT_PAREN +SOLIDUS +TILDE +UNDERSCORE +VERTICAL_BAR +SP +WHITESPACE +BRACKETED_COMMENT +SIMPLE_COMMENT_SOLIDUS +SIMPLE_COMMENT_MINUS + +rule names: +IMPLIES +PARAMETER_NAME +BOOLEAN_LITERAL +SINGLE_QUOTED_CHARACTER_SEQUENCE +DOUBLE_QUOTED_CHARACTER_SEQUENCE +ACCENT_QUOTED_CHARACTER_SEQUENCE +NO_ESCAPE +UNBROKEN_SINGLE_QUOTED_CHARACTER_SEQUENCE +UNBROKEN_DOUBLE_QUOTED_CHARACTER_SEQUENCE +UNBROKEN_ACCENT_QUOTED_CHARACTER_SEQUENCE +SINGLE_QUOTED_CHARACTER_REPRESENTATION +DOUBLE_QUOTED_CHARACTER_REPRESENTATION +ACCENT_QUOTED_CHARACTER_REPRESENTATION +ESCAPED_CHARACTER +ESCAPED_REVERSE_SOLIDUS +ESCAPED_QUOTE +ESCAPED_DOUBLE_QUOTE +ESCAPED_GRAVE_ACCENT +ESCAPED_TAB +ESCAPED_BACKSPACE +ESCAPED_NEW_LINE +ESCAPED_CARRIAGE_RETURN +ESCAPED_FORM_FEED +ESCAPED_UNICODE4_DIGIT_VALUE +ESCAPED_UNICODE6_DIGIT_VALUE +BYTE_STRING_LITERAL +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER +EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION +MANTISSA +EXPONENT +UNSIGNED_DECIMAL_IN_COMMON_NOTATION +SIGNED_DECIMAL_INTEGER +UNSIGNED_HEXADECIMAL_INTEGER +UNSIGNED_OCTAL_INTEGER +UNSIGNED_BINARY_INTEGER +APPROXIMATE_NUMBER_SUFFIX +ABS +ACOS +ALL +ALL_DIFFERENT +AND +ANY +ARRAY +AS +ASC +ASCENDING +ASIN +AT +ATAN +AVG +BIG +BIGINT +BINARY +BOOL +BOOLEAN +BOTH +BTRIM +BY +BYTE_LENGTH +BYTES +CALL +CARDINALITY +CASE +CAST +CEIL +CEILING +CHAR +CHAR_LENGTH +CHARACTER_LENGTH +CHARACTERISTICS +CLOSE +COALESCE +COLLECT_LIST +COMMIT +COPY +COS +COSH +COT +COUNT +CREATE +CURRENT_DATE +CURRENT_GRAPH +CURRENT_PROPERTY_GRAPH +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +DATE +DATETIME +DAY +DEC +DECIMAL +DEGREES +DELETE +DESC +DESCENDING +DETACH +DISTINCT +DOUBLE +DROP +DURATION +DURATION_BETWEEN +ELEMENT_ID +ELSE +END +EXCEPT +EXISTS +EXP +FILTER +FINISH +FLOAT +FLOAT16 +FLOAT32 +FLOAT64 +FLOAT128 +FLOAT256 +FLOOR +FOR +FROM +GROUP +HAVING +HOME_GRAPH +HOME_PROPERTY_GRAPH +HOME_SCHEMA +HOUR +IF +IN +INSERT +INT +INTEGER +INT8 +INTEGER8 +INT16 +INTEGER16 +INT32 +INTEGER32 +INT64 +INTEGER64 +INT128 +INTEGER128 +INT256 +INTEGER256 +INTERSECT +INTERVAL +IS +LEADING +LEFT +LET +LIKE +LIMIT +LIST +LN +LOCAL +LOCAL_DATETIME +LOCAL_TIME +LOCAL_TIMESTAMP +LOG +LOG10 +LOWER +LTRIM +MATCH +MAX +MIN +MINUTE +MOD +MONTH +NEXT +NODETACH +NORMALIZE +NOT +NOTHING +NULL +NULLS +NULLIF +OCTET_LENGTH +OF +OFFSET +OPTIONAL +OR +ORDER +OTHERWISE +PARAMETER +PARAMETERS +PATH +PATH_LENGTH +PATHS +PERCENTILE_CONT +PERCENTILE_DISC +POWER +PRECISION +PROPERTY_EXISTS +RADIANS +REAL +RECORD +REMOVE +REPLACE +RESET +RETURN +RIGHT +ROLLBACK +RTRIM +SAME +SCHEMA +SECOND +SELECT +SESSION +SESSION_USER +SET +SIGNED +SIN +SINH +SIZE +SKIP_RESERVED_WORD +SMALL +SMALLINT +SQRT +START +STDDEV_POP +STDDEV_SAMP +STRING +SUM +TAN +TANH +THEN +TIME +TIMESTAMP +TRAILING +TRIM +TYPED +UBIGINT +UINT +UINT8 +UINT16 +UINT32 +UINT64 +UINT128 +UINT256 +UNION +UNSIGNED +UPPER +USE +USMALLINT +VALUE +VARBINARY +VARCHAR +VARIABLE +WHEN +WHERE +WITH +XOR +YEAR +YIELD +ZONED +ZONED_DATETIME +ZONED_TIME +ABSTRACT +AGGREGATE +AGGREGATES +ALTER +CATALOG +CLEAR +CLONE +CONSTRAINT +CURRENT_ROLE +CURRENT_USER +DATA +DIRECTORY +DRYRUN +EXACT +EXISTING +FUNCTION +GQLSTATUS +GRANT +INSTANT +INFINITY +NUMBER +NUMERIC +ON +OPEN +PARTITION +PROCEDURE +PRODUCT +PROJECT +QUERY +RECORDS +REFERENCE +RENAME +REVOKE +SUBSTRING +SYSTEM_USER +TEMPORAL +UNIQUE +UNIT +VALUES +ACYCLIC +BINDING +BINDINGS +CONNECTING +DESTINATION +DIFFERENT +DIRECTED +EDGE +EDGES +ELEMENT +ELEMENTS +FIRST +GRAPH +GROUPS +KEEP +LABEL +LABELED +LABELS +LAST +NFC +NFD +NFKC +NFKD +NO +NODE +NORMALIZED +ONLY +ORDINALITY +PROPERTY +READ +RELATIONSHIP +RELATIONSHIPS +REPEATABLE +SHORTEST +SIMPLE +SOURCE +TABLE +TEMP +TO +TRAIL +TRANSACTION +TYPE +UNDIRECTED +VERTEX +WALK +WITHOUT +WRITE +ZONE +SEPARATED_IDENTIFIER +REGULAR_IDENTIFIER +EXTENDED_IDENTIFIER +DELIMITED_IDENTIFIER +SUBSTITUTED_PARAMETER_REFERENCE +GENERAL_PARAMETER_REFERENCE +IDENTIFIER_START +IDENTIFIER_EXTEND +ID_Start +ID_Continue +MULTISET_ALTERNATION_OPERATOR +BRACKET_RIGHT_ARROW +BRACKET_TILDE_RIGHT_ARROW +CONCATENATION_OPERATOR +DOUBLE_COLON +DOUBLE_DOLLAR_SIGN +DOUBLE_PERIOD +GREATER_THAN_OR_EQUALS_OPERATOR +LEFT_ARROW +LEFT_ARROW_TILDE +LEFT_ARROW_BRACKET +LEFT_ARROW_TILDE_BRACKET +LEFT_MINUS_RIGHT +LEFT_MINUS_SLASH +LEFT_TILDE_SLASH +LESS_THAN_OR_EQUALS_OPERATOR +MINUS_LEFT_BRACKET +MINUS_SLASH +NOT_EQUALS_OPERATOR +RIGHT_ARROW +RIGHT_BRACKET_MINUS +RIGHT_BRACKET_TILDE +RIGHT_DOUBLE_ARROW +SLASH_MINUS +SLASH_MINUS_RIGHT +SLASH_TILDE +SLASH_TILDE_RIGHT +TILDE_LEFT_BRACKET +TILDE_RIGHT_ARROW +TILDE_SLASH +AMPERSAND +ASTERISK +COLON +COMMA +COMMERCIAL_AT +DOLLAR_SIGN +DOUBLE_QUOTE +EQUALS_OPERATOR +EXCLAMATION_MARK +RIGHT_ANGLE_BRACKET +GRAVE_ACCENT +LEFT_BRACE +LEFT_BRACKET +LEFT_PAREN +LEFT_ANGLE_BRACKET +MINUS_SIGN +PERCENT +PERIOD +PLUS_SIGN +QUESTION_MARK +QUOTE +REVERSE_SOLIDUS +RIGHT_BRACE +RIGHT_BRACKET +RIGHT_PAREN +SOLIDUS +TILDE +UNDERSCORE +VERTICAL_BAR +HEX_DIGIT +DIGIT +OCTAL_DIGIT +BINARY_DIGIT +SP +WHITESPACE +BRACKETED_COMMENT +SIMPLE_COMMENT_SOLIDUS +SIMPLE_COMMENT_MINUS +GS +FS +CR +Sc +SPACE +Pc +TAB +LF +VT +US +FF +RS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 391, 3724, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 890, 8, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 910, 8, 2, 1, 3, 3, 3, 913, 8, 3, 1, 3, 1, 3, 1, 4, 3, 4, 918, 8, 4, 1, 4, 1, 4, 1, 5, 3, 5, 923, 8, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 5, 7, 931, 8, 7, 10, 7, 12, 7, 934, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 5, 8, 940, 8, 8, 10, 8, 12, 8, 943, 9, 8, 1, 8, 1, 8, 1, 9, 1, 9, 5, 9, 949, 8, 9, 10, 9, 12, 9, 952, 9, 9, 1, 9, 1, 9, 1, 10, 1, 10, 4, 10, 958, 8, 10, 11, 10, 12, 10, 959, 1, 11, 1, 11, 4, 11, 964, 8, 11, 11, 11, 12, 11, 965, 1, 12, 1, 12, 4, 12, 970, 8, 12, 11, 12, 12, 12, 971, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 985, 8, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 5, 25, 1033, 8, 25, 10, 25, 12, 25, 1036, 9, 25, 1, 25, 1, 25, 5, 25, 1040, 8, 25, 10, 25, 12, 25, 1043, 9, 25, 1, 25, 1, 25, 5, 25, 1047, 8, 25, 10, 25, 12, 25, 1050, 9, 25, 5, 25, 1052, 8, 25, 10, 25, 12, 25, 1055, 9, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 3, 34, 1083, 8, 34, 1, 34, 5, 34, 1086, 8, 34, 10, 34, 12, 34, 1089, 9, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 1099, 8, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 3, 39, 1106, 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 1111, 8, 39, 1, 40, 1, 40, 3, 40, 1115, 8, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 1123, 8, 41, 1, 41, 4, 41, 1126, 8, 41, 11, 41, 12, 41, 1127, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1134, 8, 42, 1, 42, 4, 42, 1137, 8, 42, 11, 42, 12, 42, 1138, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1145, 8, 43, 1, 43, 4, 43, 1148, 8, 43, 11, 43, 12, 43, 1149, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 3, 350, 3445, 8, 350, 1, 351, 1, 351, 5, 351, 3449, 8, 351, 10, 351, 12, 351, 3452, 9, 351, 1, 352, 4, 352, 3455, 8, 352, 11, 352, 12, 352, 3456, 1, 353, 1, 353, 3, 353, 3461, 8, 353, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 3, 356, 3471, 8, 356, 1, 357, 1, 357, 1, 358, 1, 358, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 391, 1, 391, 1, 392, 1, 392, 1, 393, 1, 393, 1, 394, 1, 394, 1, 395, 1, 395, 1, 396, 1, 396, 1, 397, 1, 397, 1, 398, 1, 398, 1, 399, 1, 399, 1, 400, 1, 400, 1, 401, 1, 401, 1, 402, 1, 402, 1, 403, 1, 403, 1, 404, 1, 404, 1, 405, 1, 405, 1, 406, 1, 406, 1, 407, 1, 407, 1, 408, 1, 408, 1, 409, 1, 409, 1, 410, 1, 410, 1, 411, 1, 411, 1, 412, 1, 412, 1, 413, 1, 413, 1, 414, 1, 414, 1, 415, 1, 415, 1, 416, 1, 416, 1, 417, 1, 417, 1, 418, 1, 418, 1, 419, 1, 419, 1, 420, 1, 420, 1, 421, 1, 421, 1, 422, 1, 422, 1, 423, 4, 423, 3646, 8, 423, 11, 423, 12, 423, 3647, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 3, 424, 3663, 8, 424, 1, 425, 1, 425, 1, 425, 1, 425, 5, 425, 3669, 8, 425, 10, 425, 12, 425, 3672, 9, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 5, 426, 3683, 8, 426, 10, 426, 12, 426, 3686, 9, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 5, 427, 3694, 8, 427, 10, 427, 12, 427, 3697, 9, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 429, 1, 429, 1, 430, 1, 430, 1, 431, 1, 431, 1, 432, 1, 432, 1, 433, 1, 433, 1, 434, 1, 434, 1, 435, 1, 435, 1, 436, 1, 436, 1, 437, 1, 437, 1, 438, 1, 438, 1, 439, 1, 439, 1, 3670, 0, 440, 1, 1, 3, 0, 5, 2, 7, 3, 9, 4, 11, 5, 13, 6, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 7, 53, 8, 55, 9, 57, 10, 59, 11, 61, 12, 63, 13, 65, 14, 67, 15, 69, 16, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0, 81, 0, 83, 17, 85, 18, 87, 19, 89, 0, 91, 20, 93, 21, 95, 22, 97, 23, 99, 24, 101, 25, 103, 26, 105, 27, 107, 28, 109, 29, 111, 30, 113, 31, 115, 32, 117, 33, 119, 34, 121, 35, 123, 36, 125, 37, 127, 38, 129, 39, 131, 40, 133, 41, 135, 42, 137, 43, 139, 44, 141, 45, 143, 46, 145, 47, 147, 48, 149, 49, 151, 50, 153, 51, 155, 52, 157, 53, 159, 54, 161, 55, 163, 56, 165, 57, 167, 58, 169, 59, 171, 60, 173, 61, 175, 62, 177, 63, 179, 64, 181, 65, 183, 66, 185, 67, 187, 68, 189, 69, 191, 70, 193, 71, 195, 72, 197, 73, 199, 74, 201, 75, 203, 76, 205, 77, 207, 78, 209, 79, 211, 80, 213, 81, 215, 82, 217, 83, 219, 84, 221, 85, 223, 86, 225, 87, 227, 88, 229, 89, 231, 90, 233, 91, 235, 92, 237, 93, 239, 94, 241, 95, 243, 96, 245, 97, 247, 98, 249, 99, 251, 100, 253, 101, 255, 102, 257, 103, 259, 104, 261, 105, 263, 106, 265, 107, 267, 108, 269, 109, 271, 110, 273, 111, 275, 112, 277, 113, 279, 114, 281, 115, 283, 116, 285, 117, 287, 118, 289, 119, 291, 120, 293, 121, 295, 122, 297, 123, 299, 124, 301, 125, 303, 126, 305, 127, 307, 128, 309, 129, 311, 130, 313, 131, 315, 132, 317, 133, 319, 134, 321, 135, 323, 136, 325, 137, 327, 138, 329, 139, 331, 140, 333, 141, 335, 142, 337, 143, 339, 144, 341, 145, 343, 146, 345, 147, 347, 148, 349, 149, 351, 150, 353, 151, 355, 152, 357, 153, 359, 154, 361, 155, 363, 156, 365, 157, 367, 158, 369, 159, 371, 160, 373, 161, 375, 162, 377, 163, 379, 164, 381, 165, 383, 166, 385, 167, 387, 168, 389, 169, 391, 170, 393, 171, 395, 172, 397, 173, 399, 174, 401, 175, 403, 176, 405, 177, 407, 178, 409, 179, 411, 180, 413, 181, 415, 182, 417, 183, 419, 184, 421, 185, 423, 186, 425, 187, 427, 188, 429, 189, 431, 190, 433, 191, 435, 192, 437, 193, 439, 194, 441, 195, 443, 196, 445, 197, 447, 198, 449, 199, 451, 200, 453, 201, 455, 202, 457, 203, 459, 204, 461, 205, 463, 206, 465, 207, 467, 208, 469, 209, 471, 210, 473, 211, 475, 212, 477, 213, 479, 214, 481, 215, 483, 216, 485, 217, 487, 218, 489, 219, 491, 220, 493, 221, 495, 222, 497, 223, 499, 224, 501, 225, 503, 226, 505, 227, 507, 228, 509, 229, 511, 230, 513, 231, 515, 232, 517, 233, 519, 234, 521, 235, 523, 236, 525, 237, 527, 238, 529, 239, 531, 240, 533, 241, 535, 242, 537, 243, 539, 244, 541, 245, 543, 246, 545, 247, 547, 248, 549, 249, 551, 250, 553, 251, 555, 252, 557, 253, 559, 254, 561, 255, 563, 256, 565, 257, 567, 258, 569, 259, 571, 260, 573, 261, 575, 262, 577, 263, 579, 264, 581, 265, 583, 266, 585, 267, 587, 268, 589, 269, 591, 270, 593, 271, 595, 272, 597, 273, 599, 274, 601, 275, 603, 276, 605, 277, 607, 278, 609, 279, 611, 280, 613, 281, 615, 282, 617, 283, 619, 284, 621, 285, 623, 286, 625, 287, 627, 288, 629, 289, 631, 290, 633, 291, 635, 292, 637, 293, 639, 294, 641, 295, 643, 296, 645, 297, 647, 298, 649, 299, 651, 300, 653, 301, 655, 302, 657, 303, 659, 304, 661, 305, 663, 306, 665, 307, 667, 308, 669, 309, 671, 310, 673, 311, 675, 312, 677, 313, 679, 314, 681, 315, 683, 316, 685, 317, 687, 318, 689, 319, 691, 320, 693, 321, 695, 322, 697, 323, 699, 324, 701, 0, 703, 325, 705, 0, 707, 0, 709, 326, 711, 327, 713, 0, 715, 0, 717, 0, 719, 0, 721, 328, 723, 329, 725, 330, 727, 331, 729, 332, 731, 333, 733, 334, 735, 335, 737, 336, 739, 337, 741, 338, 743, 339, 745, 340, 747, 341, 749, 342, 751, 343, 753, 344, 755, 345, 757, 346, 759, 347, 761, 348, 763, 349, 765, 350, 767, 351, 769, 352, 771, 353, 773, 354, 775, 355, 777, 356, 779, 357, 781, 358, 783, 359, 785, 360, 787, 361, 789, 362, 791, 363, 793, 364, 795, 365, 797, 366, 799, 367, 801, 368, 803, 369, 805, 370, 807, 371, 809, 372, 811, 373, 813, 374, 815, 375, 817, 376, 819, 377, 821, 378, 823, 379, 825, 380, 827, 381, 829, 382, 831, 383, 833, 384, 835, 385, 837, 386, 839, 0, 841, 0, 843, 0, 845, 0, 847, 387, 849, 388, 851, 389, 853, 390, 855, 391, 857, 0, 859, 0, 861, 0, 863, 0, 865, 0, 867, 0, 869, 0, 871, 0, 873, 0, 875, 0, 877, 0, 879, 0, 1, 0, 50, 2, 0, 73, 73, 105, 105, 2, 0, 77, 77, 109, 109, 2, 0, 80, 80, 112, 112, 2, 0, 76, 76, 108, 108, 2, 0, 69, 69, 101, 101, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 82, 82, 114, 114, 2, 0, 85, 85, 117, 117, 2, 0, 70, 70, 102, 102, 2, 0, 65, 65, 97, 97, 2, 0, 78, 78, 110, 110, 2, 0, 75, 75, 107, 107, 2, 0, 79, 79, 111, 111, 2, 0, 87, 87, 119, 119, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 92, 92, 96, 96, 2, 0, 66, 66, 98, 98, 2, 0, 88, 88, 120, 120, 4, 0, 68, 68, 70, 70, 100, 100, 102, 102, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 89, 89, 121, 121, 2, 0, 71, 71, 103, 103, 2, 0, 86, 86, 118, 118, 2, 0, 72, 72, 104, 104, 2, 0, 90, 90, 122, 122, 2, 0, 81, 81, 113, 113, 2, 0, 74, 74, 106, 106, 648, 0, 65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2160, 2183, 2185, 2190, 2208, 2249, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3165, 3165, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3293, 3294, 3296, 3297, 3313, 3314, 3332, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5905, 5919, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6988, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69248, 69289, 69296, 69297, 69376, 69404, 69415, 69415, 69424, 69445, 69488, 69505, 69552, 69572, 69600, 69622, 69635, 69687, 69745, 69746, 69749, 69749, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69959, 69959, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70753, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71488, 71494, 71680, 71723, 71840, 71903, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71983, 71999, 71999, 72001, 72001, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92784, 92862, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 122624, 122654, 123136, 123180, 123191, 123197, 123214, 123214, 123536, 123565, 123584, 123627, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173791, 173824, 177976, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 756, 0, 48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2160, 2183, 2185, 2190, 2200, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3132, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3165, 3165, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3293, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3328, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3457, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5909, 5919, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6159, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6847, 6862, 6912, 6988, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43047, 43052, 43052, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69248, 69289, 69291, 69292, 69296, 69297, 69376, 69404, 69415, 69415, 69424, 69456, 69488, 69509, 69552, 69572, 69600, 69622, 69632, 69702, 69734, 69749, 69759, 69818, 69826, 69826, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69959, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70094, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70206, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70753, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71488, 71494, 71680, 71738, 71840, 71913, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71989, 71991, 71992, 71995, 72003, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92784, 92862, 92864, 92873, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 118528, 118573, 118576, 118598, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122624, 122654, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123536, 123566, 123584, 123641, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 130032, 130041, 131072, 173791, 173824, 177976, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 917760, 917999, 3, 0, 48, 57, 65, 70, 97, 102, 1, 0, 48, 57, 1, 0, 48, 55, 1, 0, 48, 49, 8, 0, 160, 160, 5760, 5760, 6158, 6158, 8192, 8202, 8232, 8233, 8239, 8239, 8287, 8287, 12288, 12288, 2, 0, 10, 10, 13, 13, 1, 0, 29, 29, 1, 0, 28, 28, 1, 0, 13, 13, 21, 0, 36, 36, 162, 165, 1423, 1423, 1547, 1547, 2046, 2047, 2546, 2547, 2555, 2555, 2801, 2801, 3065, 3065, 3647, 3647, 6107, 6107, 8352, 8384, 43064, 43064, 65020, 65020, 65129, 65129, 65284, 65284, 65504, 65505, 65509, 65510, 73693, 73696, 123647, 123647, 126128, 126128, 1, 0, 32, 32, 6, 0, 95, 95, 8255, 8256, 8276, 8276, 65075, 65076, 65101, 65103, 65343, 65343, 1, 0, 9, 9, 1, 0, 10, 10, 1, 0, 11, 11, 1, 0, 31, 31, 1, 0, 12, 12, 1, 0, 30, 30, 3735, 0, 1, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 1, 889, 1, 0, 0, 0, 3, 891, 1, 0, 0, 0, 5, 909, 1, 0, 0, 0, 7, 912, 1, 0, 0, 0, 9, 917, 1, 0, 0, 0, 11, 922, 1, 0, 0, 0, 13, 926, 1, 0, 0, 0, 15, 928, 1, 0, 0, 0, 17, 937, 1, 0, 0, 0, 19, 946, 1, 0, 0, 0, 21, 957, 1, 0, 0, 0, 23, 963, 1, 0, 0, 0, 25, 969, 1, 0, 0, 0, 27, 984, 1, 0, 0, 0, 29, 986, 1, 0, 0, 0, 31, 989, 1, 0, 0, 0, 33, 992, 1, 0, 0, 0, 35, 995, 1, 0, 0, 0, 37, 998, 1, 0, 0, 0, 39, 1001, 1, 0, 0, 0, 41, 1004, 1, 0, 0, 0, 43, 1007, 1, 0, 0, 0, 45, 1010, 1, 0, 0, 0, 47, 1013, 1, 0, 0, 0, 49, 1020, 1, 0, 0, 0, 51, 1029, 1, 0, 0, 0, 53, 1058, 1, 0, 0, 0, 55, 1061, 1, 0, 0, 0, 57, 1063, 1, 0, 0, 0, 59, 1066, 1, 0, 0, 0, 61, 1069, 1, 0, 0, 0, 63, 1071, 1, 0, 0, 0, 65, 1074, 1, 0, 0, 0, 67, 1077, 1, 0, 0, 0, 69, 1080, 1, 0, 0, 0, 71, 1090, 1, 0, 0, 0, 73, 1092, 1, 0, 0, 0, 75, 1098, 1, 0, 0, 0, 77, 1100, 1, 0, 0, 0, 79, 1110, 1, 0, 0, 0, 81, 1114, 1, 0, 0, 0, 83, 1118, 1, 0, 0, 0, 85, 1129, 1, 0, 0, 0, 87, 1140, 1, 0, 0, 0, 89, 1151, 1, 0, 0, 0, 91, 1153, 1, 0, 0, 0, 93, 1157, 1, 0, 0, 0, 95, 1162, 1, 0, 0, 0, 97, 1166, 1, 0, 0, 0, 99, 1180, 1, 0, 0, 0, 101, 1184, 1, 0, 0, 0, 103, 1188, 1, 0, 0, 0, 105, 1194, 1, 0, 0, 0, 107, 1197, 1, 0, 0, 0, 109, 1201, 1, 0, 0, 0, 111, 1211, 1, 0, 0, 0, 113, 1216, 1, 0, 0, 0, 115, 1219, 1, 0, 0, 0, 117, 1224, 1, 0, 0, 0, 119, 1228, 1, 0, 0, 0, 121, 1232, 1, 0, 0, 0, 123, 1239, 1, 0, 0, 0, 125, 1246, 1, 0, 0, 0, 127, 1251, 1, 0, 0, 0, 129, 1259, 1, 0, 0, 0, 131, 1264, 1, 0, 0, 0, 133, 1270, 1, 0, 0, 0, 135, 1273, 1, 0, 0, 0, 137, 1285, 1, 0, 0, 0, 139, 1291, 1, 0, 0, 0, 141, 1296, 1, 0, 0, 0, 143, 1308, 1, 0, 0, 0, 145, 1313, 1, 0, 0, 0, 147, 1318, 1, 0, 0, 0, 149, 1323, 1, 0, 0, 0, 151, 1331, 1, 0, 0, 0, 153, 1336, 1, 0, 0, 0, 155, 1348, 1, 0, 0, 0, 157, 1365, 1, 0, 0, 0, 159, 1381, 1, 0, 0, 0, 161, 1387, 1, 0, 0, 0, 163, 1396, 1, 0, 0, 0, 165, 1409, 1, 0, 0, 0, 167, 1416, 1, 0, 0, 0, 169, 1421, 1, 0, 0, 0, 171, 1425, 1, 0, 0, 0, 173, 1430, 1, 0, 0, 0, 175, 1434, 1, 0, 0, 0, 177, 1440, 1, 0, 0, 0, 179, 1447, 1, 0, 0, 0, 181, 1460, 1, 0, 0, 0, 183, 1474, 1, 0, 0, 0, 185, 1497, 1, 0, 0, 0, 187, 1512, 1, 0, 0, 0, 189, 1525, 1, 0, 0, 0, 191, 1543, 1, 0, 0, 0, 193, 1548, 1, 0, 0, 0, 195, 1557, 1, 0, 0, 0, 197, 1561, 1, 0, 0, 0, 199, 1565, 1, 0, 0, 0, 201, 1573, 1, 0, 0, 0, 203, 1581, 1, 0, 0, 0, 205, 1588, 1, 0, 0, 0, 207, 1593, 1, 0, 0, 0, 209, 1604, 1, 0, 0, 0, 211, 1611, 1, 0, 0, 0, 213, 1620, 1, 0, 0, 0, 215, 1627, 1, 0, 0, 0, 217, 1632, 1, 0, 0, 0, 219, 1641, 1, 0, 0, 0, 221, 1658, 1, 0, 0, 0, 223, 1669, 1, 0, 0, 0, 225, 1674, 1, 0, 0, 0, 227, 1678, 1, 0, 0, 0, 229, 1685, 1, 0, 0, 0, 231, 1692, 1, 0, 0, 0, 233, 1696, 1, 0, 0, 0, 235, 1703, 1, 0, 0, 0, 237, 1710, 1, 0, 0, 0, 239, 1716, 1, 0, 0, 0, 241, 1724, 1, 0, 0, 0, 243, 1732, 1, 0, 0, 0, 245, 1740, 1, 0, 0, 0, 247, 1749, 1, 0, 0, 0, 249, 1758, 1, 0, 0, 0, 251, 1764, 1, 0, 0, 0, 253, 1768, 1, 0, 0, 0, 255, 1773, 1, 0, 0, 0, 257, 1779, 1, 0, 0, 0, 259, 1786, 1, 0, 0, 0, 261, 1797, 1, 0, 0, 0, 263, 1817, 1, 0, 0, 0, 265, 1829, 1, 0, 0, 0, 267, 1834, 1, 0, 0, 0, 269, 1837, 1, 0, 0, 0, 271, 1840, 1, 0, 0, 0, 273, 1847, 1, 0, 0, 0, 275, 1851, 1, 0, 0, 0, 277, 1859, 1, 0, 0, 0, 279, 1864, 1, 0, 0, 0, 281, 1873, 1, 0, 0, 0, 283, 1879, 1, 0, 0, 0, 285, 1889, 1, 0, 0, 0, 287, 1895, 1, 0, 0, 0, 289, 1905, 1, 0, 0, 0, 291, 1911, 1, 0, 0, 0, 293, 1921, 1, 0, 0, 0, 295, 1928, 1, 0, 0, 0, 297, 1939, 1, 0, 0, 0, 299, 1946, 1, 0, 0, 0, 301, 1957, 1, 0, 0, 0, 303, 1967, 1, 0, 0, 0, 305, 1976, 1, 0, 0, 0, 307, 1979, 1, 0, 0, 0, 309, 1987, 1, 0, 0, 0, 311, 1992, 1, 0, 0, 0, 313, 1996, 1, 0, 0, 0, 315, 2001, 1, 0, 0, 0, 317, 2007, 1, 0, 0, 0, 319, 2012, 1, 0, 0, 0, 321, 2015, 1, 0, 0, 0, 323, 2021, 1, 0, 0, 0, 325, 2036, 1, 0, 0, 0, 327, 2047, 1, 0, 0, 0, 329, 2063, 1, 0, 0, 0, 331, 2067, 1, 0, 0, 0, 333, 2073, 1, 0, 0, 0, 335, 2079, 1, 0, 0, 0, 337, 2085, 1, 0, 0, 0, 339, 2091, 1, 0, 0, 0, 341, 2095, 1, 0, 0, 0, 343, 2099, 1, 0, 0, 0, 345, 2106, 1, 0, 0, 0, 347, 2110, 1, 0, 0, 0, 349, 2116, 1, 0, 0, 0, 351, 2121, 1, 0, 0, 0, 353, 2130, 1, 0, 0, 0, 355, 2140, 1, 0, 0, 0, 357, 2144, 1, 0, 0, 0, 359, 2152, 1, 0, 0, 0, 361, 2157, 1, 0, 0, 0, 363, 2163, 1, 0, 0, 0, 365, 2170, 1, 0, 0, 0, 367, 2183, 1, 0, 0, 0, 369, 2186, 1, 0, 0, 0, 371, 2193, 1, 0, 0, 0, 373, 2202, 1, 0, 0, 0, 375, 2205, 1, 0, 0, 0, 377, 2211, 1, 0, 0, 0, 379, 2221, 1, 0, 0, 0, 381, 2231, 1, 0, 0, 0, 383, 2242, 1, 0, 0, 0, 385, 2247, 1, 0, 0, 0, 387, 2259, 1, 0, 0, 0, 389, 2265, 1, 0, 0, 0, 391, 2281, 1, 0, 0, 0, 393, 2297, 1, 0, 0, 0, 395, 2303, 1, 0, 0, 0, 397, 2313, 1, 0, 0, 0, 399, 2329, 1, 0, 0, 0, 401, 2337, 1, 0, 0, 0, 403, 2342, 1, 0, 0, 0, 405, 2349, 1, 0, 0, 0, 407, 2356, 1, 0, 0, 0, 409, 2364, 1, 0, 0, 0, 411, 2370, 1, 0, 0, 0, 413, 2377, 1, 0, 0, 0, 415, 2383, 1, 0, 0, 0, 417, 2392, 1, 0, 0, 0, 419, 2398, 1, 0, 0, 0, 421, 2403, 1, 0, 0, 0, 423, 2410, 1, 0, 0, 0, 425, 2417, 1, 0, 0, 0, 427, 2424, 1, 0, 0, 0, 429, 2432, 1, 0, 0, 0, 431, 2445, 1, 0, 0, 0, 433, 2449, 1, 0, 0, 0, 435, 2456, 1, 0, 0, 0, 437, 2460, 1, 0, 0, 0, 439, 2465, 1, 0, 0, 0, 441, 2470, 1, 0, 0, 0, 443, 2475, 1, 0, 0, 0, 445, 2481, 1, 0, 0, 0, 447, 2490, 1, 0, 0, 0, 449, 2495, 1, 0, 0, 0, 451, 2501, 1, 0, 0, 0, 453, 2512, 1, 0, 0, 0, 455, 2524, 1, 0, 0, 0, 457, 2531, 1, 0, 0, 0, 459, 2535, 1, 0, 0, 0, 461, 2539, 1, 0, 0, 0, 463, 2544, 1, 0, 0, 0, 465, 2549, 1, 0, 0, 0, 467, 2554, 1, 0, 0, 0, 469, 2564, 1, 0, 0, 0, 471, 2573, 1, 0, 0, 0, 473, 2578, 1, 0, 0, 0, 475, 2584, 1, 0, 0, 0, 477, 2592, 1, 0, 0, 0, 479, 2597, 1, 0, 0, 0, 481, 2603, 1, 0, 0, 0, 483, 2610, 1, 0, 0, 0, 485, 2617, 1, 0, 0, 0, 487, 2624, 1, 0, 0, 0, 489, 2632, 1, 0, 0, 0, 491, 2640, 1, 0, 0, 0, 493, 2646, 1, 0, 0, 0, 495, 2655, 1, 0, 0, 0, 497, 2661, 1, 0, 0, 0, 499, 2665, 1, 0, 0, 0, 501, 2675, 1, 0, 0, 0, 503, 2681, 1, 0, 0, 0, 505, 2691, 1, 0, 0, 0, 507, 2699, 1, 0, 0, 0, 509, 2708, 1, 0, 0, 0, 511, 2713, 1, 0, 0, 0, 513, 2719, 1, 0, 0, 0, 515, 2724, 1, 0, 0, 0, 517, 2728, 1, 0, 0, 0, 519, 2733, 1, 0, 0, 0, 521, 2739, 1, 0, 0, 0, 523, 2745, 1, 0, 0, 0, 525, 2760, 1, 0, 0, 0, 527, 2771, 1, 0, 0, 0, 529, 2780, 1, 0, 0, 0, 531, 2790, 1, 0, 0, 0, 533, 2801, 1, 0, 0, 0, 535, 2807, 1, 0, 0, 0, 537, 2815, 1, 0, 0, 0, 539, 2821, 1, 0, 0, 0, 541, 2827, 1, 0, 0, 0, 543, 2838, 1, 0, 0, 0, 545, 2851, 1, 0, 0, 0, 547, 2864, 1, 0, 0, 0, 549, 2869, 1, 0, 0, 0, 551, 2879, 1, 0, 0, 0, 553, 2886, 1, 0, 0, 0, 555, 2892, 1, 0, 0, 0, 557, 2901, 1, 0, 0, 0, 559, 2910, 1, 0, 0, 0, 561, 2920, 1, 0, 0, 0, 563, 2926, 1, 0, 0, 0, 565, 2934, 1, 0, 0, 0, 567, 2943, 1, 0, 0, 0, 569, 2950, 1, 0, 0, 0, 571, 2958, 1, 0, 0, 0, 573, 2961, 1, 0, 0, 0, 575, 2966, 1, 0, 0, 0, 577, 2976, 1, 0, 0, 0, 579, 2986, 1, 0, 0, 0, 581, 2994, 1, 0, 0, 0, 583, 3002, 1, 0, 0, 0, 585, 3008, 1, 0, 0, 0, 587, 3016, 1, 0, 0, 0, 589, 3026, 1, 0, 0, 0, 591, 3033, 1, 0, 0, 0, 593, 3040, 1, 0, 0, 0, 595, 3050, 1, 0, 0, 0, 597, 3062, 1, 0, 0, 0, 599, 3071, 1, 0, 0, 0, 601, 3078, 1, 0, 0, 0, 603, 3083, 1, 0, 0, 0, 605, 3090, 1, 0, 0, 0, 607, 3098, 1, 0, 0, 0, 609, 3106, 1, 0, 0, 0, 611, 3115, 1, 0, 0, 0, 613, 3126, 1, 0, 0, 0, 615, 3138, 1, 0, 0, 0, 617, 3148, 1, 0, 0, 0, 619, 3157, 1, 0, 0, 0, 621, 3162, 1, 0, 0, 0, 623, 3168, 1, 0, 0, 0, 625, 3176, 1, 0, 0, 0, 627, 3185, 1, 0, 0, 0, 629, 3191, 1, 0, 0, 0, 631, 3197, 1, 0, 0, 0, 633, 3204, 1, 0, 0, 0, 635, 3209, 1, 0, 0, 0, 637, 3215, 1, 0, 0, 0, 639, 3223, 1, 0, 0, 0, 641, 3230, 1, 0, 0, 0, 643, 3235, 1, 0, 0, 0, 645, 3239, 1, 0, 0, 0, 647, 3243, 1, 0, 0, 0, 649, 3248, 1, 0, 0, 0, 651, 3253, 1, 0, 0, 0, 653, 3256, 1, 0, 0, 0, 655, 3261, 1, 0, 0, 0, 657, 3272, 1, 0, 0, 0, 659, 3277, 1, 0, 0, 0, 661, 3288, 1, 0, 0, 0, 663, 3297, 1, 0, 0, 0, 665, 3302, 1, 0, 0, 0, 667, 3315, 1, 0, 0, 0, 669, 3329, 1, 0, 0, 0, 671, 3340, 1, 0, 0, 0, 673, 3349, 1, 0, 0, 0, 675, 3356, 1, 0, 0, 0, 677, 3363, 1, 0, 0, 0, 679, 3369, 1, 0, 0, 0, 681, 3374, 1, 0, 0, 0, 683, 3377, 1, 0, 0, 0, 685, 3383, 1, 0, 0, 0, 687, 3395, 1, 0, 0, 0, 689, 3400, 1, 0, 0, 0, 691, 3411, 1, 0, 0, 0, 693, 3418, 1, 0, 0, 0, 695, 3423, 1, 0, 0, 0, 697, 3431, 1, 0, 0, 0, 699, 3437, 1, 0, 0, 0, 701, 3444, 1, 0, 0, 0, 703, 3446, 1, 0, 0, 0, 705, 3454, 1, 0, 0, 0, 707, 3460, 1, 0, 0, 0, 709, 3462, 1, 0, 0, 0, 711, 3465, 1, 0, 0, 0, 713, 3470, 1, 0, 0, 0, 715, 3472, 1, 0, 0, 0, 717, 3474, 1, 0, 0, 0, 719, 3476, 1, 0, 0, 0, 721, 3478, 1, 0, 0, 0, 723, 3482, 1, 0, 0, 0, 725, 3486, 1, 0, 0, 0, 727, 3490, 1, 0, 0, 0, 729, 3493, 1, 0, 0, 0, 731, 3496, 1, 0, 0, 0, 733, 3499, 1, 0, 0, 0, 735, 3502, 1, 0, 0, 0, 737, 3505, 1, 0, 0, 0, 739, 3508, 1, 0, 0, 0, 741, 3511, 1, 0, 0, 0, 743, 3515, 1, 0, 0, 0, 745, 3519, 1, 0, 0, 0, 747, 3523, 1, 0, 0, 0, 749, 3527, 1, 0, 0, 0, 751, 3531, 1, 0, 0, 0, 753, 3534, 1, 0, 0, 0, 755, 3537, 1, 0, 0, 0, 757, 3540, 1, 0, 0, 0, 759, 3543, 1, 0, 0, 0, 761, 3546, 1, 0, 0, 0, 763, 3549, 1, 0, 0, 0, 765, 3552, 1, 0, 0, 0, 767, 3555, 1, 0, 0, 0, 769, 3558, 1, 0, 0, 0, 771, 3562, 1, 0, 0, 0, 773, 3565, 1, 0, 0, 0, 775, 3569, 1, 0, 0, 0, 777, 3572, 1, 0, 0, 0, 779, 3575, 1, 0, 0, 0, 781, 3578, 1, 0, 0, 0, 783, 3580, 1, 0, 0, 0, 785, 3582, 1, 0, 0, 0, 787, 3584, 1, 0, 0, 0, 789, 3586, 1, 0, 0, 0, 791, 3588, 1, 0, 0, 0, 793, 3590, 1, 0, 0, 0, 795, 3592, 1, 0, 0, 0, 797, 3594, 1, 0, 0, 0, 799, 3596, 1, 0, 0, 0, 801, 3598, 1, 0, 0, 0, 803, 3600, 1, 0, 0, 0, 805, 3602, 1, 0, 0, 0, 807, 3604, 1, 0, 0, 0, 809, 3606, 1, 0, 0, 0, 811, 3608, 1, 0, 0, 0, 813, 3610, 1, 0, 0, 0, 815, 3612, 1, 0, 0, 0, 817, 3614, 1, 0, 0, 0, 819, 3616, 1, 0, 0, 0, 821, 3618, 1, 0, 0, 0, 823, 3620, 1, 0, 0, 0, 825, 3622, 1, 0, 0, 0, 827, 3624, 1, 0, 0, 0, 829, 3626, 1, 0, 0, 0, 831, 3628, 1, 0, 0, 0, 833, 3630, 1, 0, 0, 0, 835, 3632, 1, 0, 0, 0, 837, 3634, 1, 0, 0, 0, 839, 3636, 1, 0, 0, 0, 841, 3638, 1, 0, 0, 0, 843, 3640, 1, 0, 0, 0, 845, 3642, 1, 0, 0, 0, 847, 3645, 1, 0, 0, 0, 849, 3662, 1, 0, 0, 0, 851, 3664, 1, 0, 0, 0, 853, 3678, 1, 0, 0, 0, 855, 3689, 1, 0, 0, 0, 857, 3700, 1, 0, 0, 0, 859, 3702, 1, 0, 0, 0, 861, 3704, 1, 0, 0, 0, 863, 3706, 1, 0, 0, 0, 865, 3708, 1, 0, 0, 0, 867, 3710, 1, 0, 0, 0, 869, 3712, 1, 0, 0, 0, 871, 3714, 1, 0, 0, 0, 873, 3716, 1, 0, 0, 0, 875, 3718, 1, 0, 0, 0, 877, 3720, 1, 0, 0, 0, 879, 3722, 1, 0, 0, 0, 881, 890, 3, 765, 382, 0, 882, 883, 7, 0, 0, 0, 883, 884, 7, 1, 0, 0, 884, 885, 7, 2, 0, 0, 885, 886, 7, 3, 0, 0, 886, 887, 7, 0, 0, 0, 887, 888, 7, 4, 0, 0, 888, 890, 7, 5, 0, 0, 889, 881, 1, 0, 0, 0, 889, 882, 1, 0, 0, 0, 890, 2, 1, 0, 0, 0, 891, 892, 3, 701, 350, 0, 892, 4, 1, 0, 0, 0, 893, 894, 7, 6, 0, 0, 894, 895, 7, 7, 0, 0, 895, 896, 7, 8, 0, 0, 896, 910, 7, 4, 0, 0, 897, 898, 7, 9, 0, 0, 898, 899, 7, 10, 0, 0, 899, 900, 7, 3, 0, 0, 900, 901, 7, 5, 0, 0, 901, 910, 7, 4, 0, 0, 902, 903, 7, 8, 0, 0, 903, 904, 7, 11, 0, 0, 904, 905, 7, 12, 0, 0, 905, 906, 7, 11, 0, 0, 906, 907, 7, 13, 0, 0, 907, 908, 7, 14, 0, 0, 908, 910, 7, 11, 0, 0, 909, 893, 1, 0, 0, 0, 909, 897, 1, 0, 0, 0, 909, 902, 1, 0, 0, 0, 910, 6, 1, 0, 0, 0, 911, 913, 3, 13, 6, 0, 912, 911, 1, 0, 0, 0, 912, 913, 1, 0, 0, 0, 913, 914, 1, 0, 0, 0, 914, 915, 3, 15, 7, 0, 915, 8, 1, 0, 0, 0, 916, 918, 3, 13, 6, 0, 917, 916, 1, 0, 0, 0, 917, 918, 1, 0, 0, 0, 918, 919, 1, 0, 0, 0, 919, 920, 3, 17, 8, 0, 920, 10, 1, 0, 0, 0, 921, 923, 3, 13, 6, 0, 922, 921, 1, 0, 0, 0, 922, 923, 1, 0, 0, 0, 923, 924, 1, 0, 0, 0, 924, 925, 3, 19, 9, 0, 925, 12, 1, 0, 0, 0, 926, 927, 3, 789, 394, 0, 927, 14, 1, 0, 0, 0, 928, 932, 3, 821, 410, 0, 929, 931, 3, 21, 10, 0, 930, 929, 1, 0, 0, 0, 931, 934, 1, 0, 0, 0, 932, 930, 1, 0, 0, 0, 932, 933, 1, 0, 0, 0, 933, 935, 1, 0, 0, 0, 934, 932, 1, 0, 0, 0, 935, 936, 3, 821, 410, 0, 936, 16, 1, 0, 0, 0, 937, 941, 3, 793, 396, 0, 938, 940, 3, 23, 11, 0, 939, 938, 1, 0, 0, 0, 940, 943, 1, 0, 0, 0, 941, 939, 1, 0, 0, 0, 941, 942, 1, 0, 0, 0, 942, 944, 1, 0, 0, 0, 943, 941, 1, 0, 0, 0, 944, 945, 3, 793, 396, 0, 945, 18, 1, 0, 0, 0, 946, 950, 3, 801, 400, 0, 947, 949, 3, 25, 12, 0, 948, 947, 1, 0, 0, 0, 949, 952, 1, 0, 0, 0, 950, 948, 1, 0, 0, 0, 950, 951, 1, 0, 0, 0, 951, 953, 1, 0, 0, 0, 952, 950, 1, 0, 0, 0, 953, 954, 3, 801, 400, 0, 954, 20, 1, 0, 0, 0, 955, 958, 3, 27, 13, 0, 956, 958, 8, 15, 0, 0, 957, 955, 1, 0, 0, 0, 957, 956, 1, 0, 0, 0, 958, 959, 1, 0, 0, 0, 959, 957, 1, 0, 0, 0, 959, 960, 1, 0, 0, 0, 960, 22, 1, 0, 0, 0, 961, 964, 3, 27, 13, 0, 962, 964, 8, 16, 0, 0, 963, 961, 1, 0, 0, 0, 963, 962, 1, 0, 0, 0, 964, 965, 1, 0, 0, 0, 965, 963, 1, 0, 0, 0, 965, 966, 1, 0, 0, 0, 966, 24, 1, 0, 0, 0, 967, 970, 3, 27, 13, 0, 968, 970, 8, 17, 0, 0, 969, 967, 1, 0, 0, 0, 969, 968, 1, 0, 0, 0, 970, 971, 1, 0, 0, 0, 971, 969, 1, 0, 0, 0, 971, 972, 1, 0, 0, 0, 972, 26, 1, 0, 0, 0, 973, 985, 3, 29, 14, 0, 974, 985, 3, 31, 15, 0, 975, 985, 3, 33, 16, 0, 976, 985, 3, 35, 17, 0, 977, 985, 3, 37, 18, 0, 978, 985, 3, 39, 19, 0, 979, 985, 3, 41, 20, 0, 980, 985, 3, 43, 21, 0, 981, 985, 3, 45, 22, 0, 982, 985, 3, 47, 23, 0, 983, 985, 3, 49, 24, 0, 984, 973, 1, 0, 0, 0, 984, 974, 1, 0, 0, 0, 984, 975, 1, 0, 0, 0, 984, 976, 1, 0, 0, 0, 984, 977, 1, 0, 0, 0, 984, 978, 1, 0, 0, 0, 984, 979, 1, 0, 0, 0, 984, 980, 1, 0, 0, 0, 984, 981, 1, 0, 0, 0, 984, 982, 1, 0, 0, 0, 984, 983, 1, 0, 0, 0, 985, 28, 1, 0, 0, 0, 986, 987, 3, 823, 411, 0, 987, 988, 3, 823, 411, 0, 988, 30, 1, 0, 0, 0, 989, 990, 3, 823, 411, 0, 990, 991, 3, 821, 410, 0, 991, 32, 1, 0, 0, 0, 992, 993, 3, 823, 411, 0, 993, 994, 3, 793, 396, 0, 994, 34, 1, 0, 0, 0, 995, 996, 3, 823, 411, 0, 996, 997, 3, 801, 400, 0, 997, 36, 1, 0, 0, 0, 998, 999, 3, 823, 411, 0, 999, 1000, 7, 6, 0, 0, 1000, 38, 1, 0, 0, 0, 1001, 1002, 3, 823, 411, 0, 1002, 1003, 7, 18, 0, 0, 1003, 40, 1, 0, 0, 0, 1004, 1005, 3, 823, 411, 0, 1005, 1006, 7, 11, 0, 0, 1006, 42, 1, 0, 0, 0, 1007, 1008, 3, 823, 411, 0, 1008, 1009, 7, 7, 0, 0, 1009, 44, 1, 0, 0, 0, 1010, 1011, 3, 823, 411, 0, 1011, 1012, 7, 9, 0, 0, 1012, 46, 1, 0, 0, 0, 1013, 1014, 3, 823, 411, 0, 1014, 1015, 7, 8, 0, 0, 1015, 1016, 3, 839, 419, 0, 1016, 1017, 3, 839, 419, 0, 1017, 1018, 3, 839, 419, 0, 1018, 1019, 3, 839, 419, 0, 1019, 48, 1, 0, 0, 0, 1020, 1021, 3, 823, 411, 0, 1021, 1022, 7, 8, 0, 0, 1022, 1023, 3, 839, 419, 0, 1023, 1024, 3, 839, 419, 0, 1024, 1025, 3, 839, 419, 0, 1025, 1026, 3, 839, 419, 0, 1026, 1027, 3, 839, 419, 0, 1027, 1028, 3, 839, 419, 0, 1028, 50, 1, 0, 0, 0, 1029, 1030, 7, 19, 0, 0, 1030, 1034, 3, 821, 410, 0, 1031, 1033, 3, 865, 432, 0, 1032, 1031, 1, 0, 0, 0, 1033, 1036, 1, 0, 0, 0, 1034, 1032, 1, 0, 0, 0, 1034, 1035, 1, 0, 0, 0, 1035, 1053, 1, 0, 0, 0, 1036, 1034, 1, 0, 0, 0, 1037, 1041, 3, 839, 419, 0, 1038, 1040, 3, 865, 432, 0, 1039, 1038, 1, 0, 0, 0, 1040, 1043, 1, 0, 0, 0, 1041, 1039, 1, 0, 0, 0, 1041, 1042, 1, 0, 0, 0, 1042, 1044, 1, 0, 0, 0, 1043, 1041, 1, 0, 0, 0, 1044, 1048, 3, 839, 419, 0, 1045, 1047, 3, 865, 432, 0, 1046, 1045, 1, 0, 0, 0, 1047, 1050, 1, 0, 0, 0, 1048, 1046, 1, 0, 0, 0, 1048, 1049, 1, 0, 0, 0, 1049, 1052, 1, 0, 0, 0, 1050, 1048, 1, 0, 0, 0, 1051, 1037, 1, 0, 0, 0, 1052, 1055, 1, 0, 0, 0, 1053, 1051, 1, 0, 0, 0, 1053, 1054, 1, 0, 0, 0, 1054, 1056, 1, 0, 0, 0, 1055, 1053, 1, 0, 0, 0, 1056, 1057, 3, 821, 410, 0, 1057, 52, 1, 0, 0, 0, 1058, 1059, 3, 73, 36, 0, 1059, 1060, 3, 71, 35, 0, 1060, 54, 1, 0, 0, 0, 1061, 1062, 3, 73, 36, 0, 1062, 56, 1, 0, 0, 0, 1063, 1064, 3, 73, 36, 0, 1064, 1065, 3, 89, 44, 0, 1065, 58, 1, 0, 0, 0, 1066, 1067, 3, 79, 39, 0, 1067, 1068, 3, 71, 35, 0, 1068, 60, 1, 0, 0, 0, 1069, 1070, 3, 79, 39, 0, 1070, 62, 1, 0, 0, 0, 1071, 1072, 3, 79, 39, 0, 1072, 1073, 3, 89, 44, 0, 1073, 64, 1, 0, 0, 0, 1074, 1075, 3, 69, 34, 0, 1075, 1076, 3, 71, 35, 0, 1076, 66, 1, 0, 0, 0, 1077, 1078, 3, 69, 34, 0, 1078, 1079, 3, 89, 44, 0, 1079, 68, 1, 0, 0, 0, 1080, 1087, 3, 841, 420, 0, 1081, 1083, 3, 835, 417, 0, 1082, 1081, 1, 0, 0, 0, 1082, 1083, 1, 0, 0, 0, 1083, 1084, 1, 0, 0, 0, 1084, 1086, 3, 841, 420, 0, 1085, 1082, 1, 0, 0, 0, 1086, 1089, 1, 0, 0, 0, 1087, 1085, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 70, 1, 0, 0, 0, 1089, 1087, 1, 0, 0, 0, 1090, 1091, 7, 1, 0, 0, 1091, 72, 1, 0, 0, 0, 1092, 1093, 3, 75, 37, 0, 1093, 1094, 7, 4, 0, 0, 1094, 1095, 3, 77, 38, 0, 1095, 74, 1, 0, 0, 0, 1096, 1099, 3, 79, 39, 0, 1097, 1099, 3, 69, 34, 0, 1098, 1096, 1, 0, 0, 0, 1098, 1097, 1, 0, 0, 0, 1099, 76, 1, 0, 0, 0, 1100, 1101, 3, 81, 40, 0, 1101, 78, 1, 0, 0, 0, 1102, 1103, 3, 69, 34, 0, 1103, 1105, 3, 815, 407, 0, 1104, 1106, 3, 69, 34, 0, 1105, 1104, 1, 0, 0, 0, 1105, 1106, 1, 0, 0, 0, 1106, 1111, 1, 0, 0, 0, 1107, 1108, 3, 815, 407, 0, 1108, 1109, 3, 69, 34, 0, 1109, 1111, 1, 0, 0, 0, 1110, 1102, 1, 0, 0, 0, 1110, 1107, 1, 0, 0, 0, 1111, 80, 1, 0, 0, 0, 1112, 1115, 3, 817, 408, 0, 1113, 1115, 3, 811, 405, 0, 1114, 1112, 1, 0, 0, 0, 1114, 1113, 1, 0, 0, 0, 1114, 1115, 1, 0, 0, 0, 1115, 1116, 1, 0, 0, 0, 1116, 1117, 3, 69, 34, 0, 1117, 82, 1, 0, 0, 0, 1118, 1119, 5, 48, 0, 0, 1119, 1120, 7, 19, 0, 0, 1120, 1125, 1, 0, 0, 0, 1121, 1123, 5, 95, 0, 0, 1122, 1121, 1, 0, 0, 0, 1122, 1123, 1, 0, 0, 0, 1123, 1124, 1, 0, 0, 0, 1124, 1126, 3, 839, 419, 0, 1125, 1122, 1, 0, 0, 0, 1126, 1127, 1, 0, 0, 0, 1127, 1125, 1, 0, 0, 0, 1127, 1128, 1, 0, 0, 0, 1128, 84, 1, 0, 0, 0, 1129, 1130, 5, 48, 0, 0, 1130, 1131, 7, 13, 0, 0, 1131, 1136, 1, 0, 0, 0, 1132, 1134, 5, 95, 0, 0, 1133, 1132, 1, 0, 0, 0, 1133, 1134, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 1137, 3, 843, 421, 0, 1136, 1133, 1, 0, 0, 0, 1137, 1138, 1, 0, 0, 0, 1138, 1136, 1, 0, 0, 0, 1138, 1139, 1, 0, 0, 0, 1139, 86, 1, 0, 0, 0, 1140, 1141, 5, 48, 0, 0, 1141, 1142, 7, 18, 0, 0, 1142, 1147, 1, 0, 0, 0, 1143, 1145, 5, 95, 0, 0, 1144, 1143, 1, 0, 0, 0, 1144, 1145, 1, 0, 0, 0, 1145, 1146, 1, 0, 0, 0, 1146, 1148, 3, 845, 422, 0, 1147, 1144, 1, 0, 0, 0, 1148, 1149, 1, 0, 0, 0, 1149, 1147, 1, 0, 0, 0, 1149, 1150, 1, 0, 0, 0, 1150, 88, 1, 0, 0, 0, 1151, 1152, 7, 20, 0, 0, 1152, 90, 1, 0, 0, 0, 1153, 1154, 7, 10, 0, 0, 1154, 1155, 7, 18, 0, 0, 1155, 1156, 7, 5, 0, 0, 1156, 92, 1, 0, 0, 0, 1157, 1158, 7, 10, 0, 0, 1158, 1159, 7, 21, 0, 0, 1159, 1160, 7, 13, 0, 0, 1160, 1161, 7, 5, 0, 0, 1161, 94, 1, 0, 0, 0, 1162, 1163, 7, 10, 0, 0, 1163, 1164, 7, 3, 0, 0, 1164, 1165, 7, 3, 0, 0, 1165, 96, 1, 0, 0, 0, 1166, 1167, 7, 10, 0, 0, 1167, 1168, 7, 3, 0, 0, 1168, 1169, 7, 3, 0, 0, 1169, 1170, 5, 95, 0, 0, 1170, 1171, 7, 22, 0, 0, 1171, 1172, 7, 0, 0, 0, 1172, 1173, 7, 9, 0, 0, 1173, 1174, 7, 9, 0, 0, 1174, 1175, 7, 4, 0, 0, 1175, 1176, 7, 7, 0, 0, 1176, 1177, 7, 4, 0, 0, 1177, 1178, 7, 11, 0, 0, 1178, 1179, 7, 6, 0, 0, 1179, 98, 1, 0, 0, 0, 1180, 1181, 7, 10, 0, 0, 1181, 1182, 7, 11, 0, 0, 1182, 1183, 7, 22, 0, 0, 1183, 100, 1, 0, 0, 0, 1184, 1185, 7, 10, 0, 0, 1185, 1186, 7, 11, 0, 0, 1186, 1187, 7, 23, 0, 0, 1187, 102, 1, 0, 0, 0, 1188, 1189, 7, 10, 0, 0, 1189, 1190, 7, 7, 0, 0, 1190, 1191, 7, 7, 0, 0, 1191, 1192, 7, 10, 0, 0, 1192, 1193, 7, 23, 0, 0, 1193, 104, 1, 0, 0, 0, 1194, 1195, 7, 10, 0, 0, 1195, 1196, 7, 5, 0, 0, 1196, 106, 1, 0, 0, 0, 1197, 1198, 7, 10, 0, 0, 1198, 1199, 7, 5, 0, 0, 1199, 1200, 7, 21, 0, 0, 1200, 108, 1, 0, 0, 0, 1201, 1202, 7, 10, 0, 0, 1202, 1203, 7, 5, 0, 0, 1203, 1204, 7, 21, 0, 0, 1204, 1205, 7, 4, 0, 0, 1205, 1206, 7, 11, 0, 0, 1206, 1207, 7, 22, 0, 0, 1207, 1208, 7, 0, 0, 0, 1208, 1209, 7, 11, 0, 0, 1209, 1210, 7, 24, 0, 0, 1210, 110, 1, 0, 0, 0, 1211, 1212, 7, 10, 0, 0, 1212, 1213, 7, 5, 0, 0, 1213, 1214, 7, 0, 0, 0, 1214, 1215, 7, 11, 0, 0, 1215, 112, 1, 0, 0, 0, 1216, 1217, 7, 10, 0, 0, 1217, 1218, 7, 6, 0, 0, 1218, 114, 1, 0, 0, 0, 1219, 1220, 7, 10, 0, 0, 1220, 1221, 7, 6, 0, 0, 1221, 1222, 7, 10, 0, 0, 1222, 1223, 7, 11, 0, 0, 1223, 116, 1, 0, 0, 0, 1224, 1225, 7, 10, 0, 0, 1225, 1226, 7, 25, 0, 0, 1226, 1227, 7, 24, 0, 0, 1227, 118, 1, 0, 0, 0, 1228, 1229, 7, 18, 0, 0, 1229, 1230, 7, 0, 0, 0, 1230, 1231, 7, 24, 0, 0, 1231, 120, 1, 0, 0, 0, 1232, 1233, 7, 18, 0, 0, 1233, 1234, 7, 0, 0, 0, 1234, 1235, 7, 24, 0, 0, 1235, 1236, 7, 0, 0, 0, 1236, 1237, 7, 11, 0, 0, 1237, 1238, 7, 6, 0, 0, 1238, 122, 1, 0, 0, 0, 1239, 1240, 7, 18, 0, 0, 1240, 1241, 7, 0, 0, 0, 1241, 1242, 7, 11, 0, 0, 1242, 1243, 7, 10, 0, 0, 1243, 1244, 7, 7, 0, 0, 1244, 1245, 7, 23, 0, 0, 1245, 124, 1, 0, 0, 0, 1246, 1247, 7, 18, 0, 0, 1247, 1248, 7, 13, 0, 0, 1248, 1249, 7, 13, 0, 0, 1249, 1250, 7, 3, 0, 0, 1250, 126, 1, 0, 0, 0, 1251, 1252, 7, 18, 0, 0, 1252, 1253, 7, 13, 0, 0, 1253, 1254, 7, 13, 0, 0, 1254, 1255, 7, 3, 0, 0, 1255, 1256, 7, 4, 0, 0, 1256, 1257, 7, 10, 0, 0, 1257, 1258, 7, 11, 0, 0, 1258, 128, 1, 0, 0, 0, 1259, 1260, 7, 18, 0, 0, 1260, 1261, 7, 13, 0, 0, 1261, 1262, 7, 6, 0, 0, 1262, 1263, 7, 26, 0, 0, 1263, 130, 1, 0, 0, 0, 1264, 1265, 7, 18, 0, 0, 1265, 1266, 7, 6, 0, 0, 1266, 1267, 7, 7, 0, 0, 1267, 1268, 7, 0, 0, 0, 1268, 1269, 7, 1, 0, 0, 1269, 132, 1, 0, 0, 0, 1270, 1271, 7, 18, 0, 0, 1271, 1272, 7, 23, 0, 0, 1272, 134, 1, 0, 0, 0, 1273, 1274, 7, 18, 0, 0, 1274, 1275, 7, 23, 0, 0, 1275, 1276, 7, 6, 0, 0, 1276, 1277, 7, 4, 0, 0, 1277, 1278, 5, 95, 0, 0, 1278, 1279, 7, 3, 0, 0, 1279, 1280, 7, 4, 0, 0, 1280, 1281, 7, 11, 0, 0, 1281, 1282, 7, 24, 0, 0, 1282, 1283, 7, 6, 0, 0, 1283, 1284, 7, 26, 0, 0, 1284, 136, 1, 0, 0, 0, 1285, 1286, 7, 18, 0, 0, 1286, 1287, 7, 23, 0, 0, 1287, 1288, 7, 6, 0, 0, 1288, 1289, 7, 4, 0, 0, 1289, 1290, 7, 5, 0, 0, 1290, 138, 1, 0, 0, 0, 1291, 1292, 7, 21, 0, 0, 1292, 1293, 7, 10, 0, 0, 1293, 1294, 7, 3, 0, 0, 1294, 1295, 7, 3, 0, 0, 1295, 140, 1, 0, 0, 0, 1296, 1297, 7, 21, 0, 0, 1297, 1298, 7, 10, 0, 0, 1298, 1299, 7, 7, 0, 0, 1299, 1300, 7, 22, 0, 0, 1300, 1301, 7, 0, 0, 0, 1301, 1302, 7, 11, 0, 0, 1302, 1303, 7, 10, 0, 0, 1303, 1304, 7, 3, 0, 0, 1304, 1305, 7, 0, 0, 0, 1305, 1306, 7, 6, 0, 0, 1306, 1307, 7, 23, 0, 0, 1307, 142, 1, 0, 0, 0, 1308, 1309, 7, 21, 0, 0, 1309, 1310, 7, 10, 0, 0, 1310, 1311, 7, 5, 0, 0, 1311, 1312, 7, 4, 0, 0, 1312, 144, 1, 0, 0, 0, 1313, 1314, 7, 21, 0, 0, 1314, 1315, 7, 10, 0, 0, 1315, 1316, 7, 5, 0, 0, 1316, 1317, 7, 6, 0, 0, 1317, 146, 1, 0, 0, 0, 1318, 1319, 7, 21, 0, 0, 1319, 1320, 7, 4, 0, 0, 1320, 1321, 7, 0, 0, 0, 1321, 1322, 7, 3, 0, 0, 1322, 148, 1, 0, 0, 0, 1323, 1324, 7, 21, 0, 0, 1324, 1325, 7, 4, 0, 0, 1325, 1326, 7, 0, 0, 0, 1326, 1327, 7, 3, 0, 0, 1327, 1328, 7, 0, 0, 0, 1328, 1329, 7, 11, 0, 0, 1329, 1330, 7, 24, 0, 0, 1330, 150, 1, 0, 0, 0, 1331, 1332, 7, 21, 0, 0, 1332, 1333, 7, 26, 0, 0, 1333, 1334, 7, 10, 0, 0, 1334, 1335, 7, 7, 0, 0, 1335, 152, 1, 0, 0, 0, 1336, 1337, 7, 21, 0, 0, 1337, 1338, 7, 26, 0, 0, 1338, 1339, 7, 10, 0, 0, 1339, 1340, 7, 7, 0, 0, 1340, 1341, 5, 95, 0, 0, 1341, 1342, 7, 3, 0, 0, 1342, 1343, 7, 4, 0, 0, 1343, 1344, 7, 11, 0, 0, 1344, 1345, 7, 24, 0, 0, 1345, 1346, 7, 6, 0, 0, 1346, 1347, 7, 26, 0, 0, 1347, 154, 1, 0, 0, 0, 1348, 1349, 7, 21, 0, 0, 1349, 1350, 7, 26, 0, 0, 1350, 1351, 7, 10, 0, 0, 1351, 1352, 7, 7, 0, 0, 1352, 1353, 7, 10, 0, 0, 1353, 1354, 7, 21, 0, 0, 1354, 1355, 7, 6, 0, 0, 1355, 1356, 7, 4, 0, 0, 1356, 1357, 7, 7, 0, 0, 1357, 1358, 5, 95, 0, 0, 1358, 1359, 7, 3, 0, 0, 1359, 1360, 7, 4, 0, 0, 1360, 1361, 7, 11, 0, 0, 1361, 1362, 7, 24, 0, 0, 1362, 1363, 7, 6, 0, 0, 1363, 1364, 7, 26, 0, 0, 1364, 156, 1, 0, 0, 0, 1365, 1366, 7, 21, 0, 0, 1366, 1367, 7, 26, 0, 0, 1367, 1368, 7, 10, 0, 0, 1368, 1369, 7, 7, 0, 0, 1369, 1370, 7, 10, 0, 0, 1370, 1371, 7, 21, 0, 0, 1371, 1372, 7, 6, 0, 0, 1372, 1373, 7, 4, 0, 0, 1373, 1374, 7, 7, 0, 0, 1374, 1375, 7, 0, 0, 0, 1375, 1376, 7, 5, 0, 0, 1376, 1377, 7, 6, 0, 0, 1377, 1378, 7, 0, 0, 0, 1378, 1379, 7, 21, 0, 0, 1379, 1380, 7, 5, 0, 0, 1380, 158, 1, 0, 0, 0, 1381, 1382, 7, 21, 0, 0, 1382, 1383, 7, 3, 0, 0, 1383, 1384, 7, 13, 0, 0, 1384, 1385, 7, 5, 0, 0, 1385, 1386, 7, 4, 0, 0, 1386, 160, 1, 0, 0, 0, 1387, 1388, 7, 21, 0, 0, 1388, 1389, 7, 13, 0, 0, 1389, 1390, 7, 10, 0, 0, 1390, 1391, 7, 3, 0, 0, 1391, 1392, 7, 4, 0, 0, 1392, 1393, 7, 5, 0, 0, 1393, 1394, 7, 21, 0, 0, 1394, 1395, 7, 4, 0, 0, 1395, 162, 1, 0, 0, 0, 1396, 1397, 7, 21, 0, 0, 1397, 1398, 7, 13, 0, 0, 1398, 1399, 7, 3, 0, 0, 1399, 1400, 7, 3, 0, 0, 1400, 1401, 7, 4, 0, 0, 1401, 1402, 7, 21, 0, 0, 1402, 1403, 7, 6, 0, 0, 1403, 1404, 5, 95, 0, 0, 1404, 1405, 7, 3, 0, 0, 1405, 1406, 7, 0, 0, 0, 1406, 1407, 7, 5, 0, 0, 1407, 1408, 7, 6, 0, 0, 1408, 164, 1, 0, 0, 0, 1409, 1410, 7, 21, 0, 0, 1410, 1411, 7, 13, 0, 0, 1411, 1412, 7, 1, 0, 0, 1412, 1413, 7, 1, 0, 0, 1413, 1414, 7, 0, 0, 0, 1414, 1415, 7, 6, 0, 0, 1415, 166, 1, 0, 0, 0, 1416, 1417, 7, 21, 0, 0, 1417, 1418, 7, 13, 0, 0, 1418, 1419, 7, 2, 0, 0, 1419, 1420, 7, 23, 0, 0, 1420, 168, 1, 0, 0, 0, 1421, 1422, 7, 21, 0, 0, 1422, 1423, 7, 13, 0, 0, 1423, 1424, 7, 5, 0, 0, 1424, 170, 1, 0, 0, 0, 1425, 1426, 7, 21, 0, 0, 1426, 1427, 7, 13, 0, 0, 1427, 1428, 7, 5, 0, 0, 1428, 1429, 7, 26, 0, 0, 1429, 172, 1, 0, 0, 0, 1430, 1431, 7, 21, 0, 0, 1431, 1432, 7, 13, 0, 0, 1432, 1433, 7, 6, 0, 0, 1433, 174, 1, 0, 0, 0, 1434, 1435, 7, 21, 0, 0, 1435, 1436, 7, 13, 0, 0, 1436, 1437, 7, 8, 0, 0, 1437, 1438, 7, 11, 0, 0, 1438, 1439, 7, 6, 0, 0, 1439, 176, 1, 0, 0, 0, 1440, 1441, 7, 21, 0, 0, 1441, 1442, 7, 7, 0, 0, 1442, 1443, 7, 4, 0, 0, 1443, 1444, 7, 10, 0, 0, 1444, 1445, 7, 6, 0, 0, 1445, 1446, 7, 4, 0, 0, 1446, 178, 1, 0, 0, 0, 1447, 1448, 7, 21, 0, 0, 1448, 1449, 7, 8, 0, 0, 1449, 1450, 7, 7, 0, 0, 1450, 1451, 7, 7, 0, 0, 1451, 1452, 7, 4, 0, 0, 1452, 1453, 7, 11, 0, 0, 1453, 1454, 7, 6, 0, 0, 1454, 1455, 5, 95, 0, 0, 1455, 1456, 7, 22, 0, 0, 1456, 1457, 7, 10, 0, 0, 1457, 1458, 7, 6, 0, 0, 1458, 1459, 7, 4, 0, 0, 1459, 180, 1, 0, 0, 0, 1460, 1461, 7, 21, 0, 0, 1461, 1462, 7, 8, 0, 0, 1462, 1463, 7, 7, 0, 0, 1463, 1464, 7, 7, 0, 0, 1464, 1465, 7, 4, 0, 0, 1465, 1466, 7, 11, 0, 0, 1466, 1467, 7, 6, 0, 0, 1467, 1468, 5, 95, 0, 0, 1468, 1469, 7, 24, 0, 0, 1469, 1470, 7, 7, 0, 0, 1470, 1471, 7, 10, 0, 0, 1471, 1472, 7, 2, 0, 0, 1472, 1473, 7, 26, 0, 0, 1473, 182, 1, 0, 0, 0, 1474, 1475, 7, 21, 0, 0, 1475, 1476, 7, 8, 0, 0, 1476, 1477, 7, 7, 0, 0, 1477, 1478, 7, 7, 0, 0, 1478, 1479, 7, 4, 0, 0, 1479, 1480, 7, 11, 0, 0, 1480, 1481, 7, 6, 0, 0, 1481, 1482, 5, 95, 0, 0, 1482, 1483, 7, 2, 0, 0, 1483, 1484, 7, 7, 0, 0, 1484, 1485, 7, 13, 0, 0, 1485, 1486, 7, 2, 0, 0, 1486, 1487, 7, 4, 0, 0, 1487, 1488, 7, 7, 0, 0, 1488, 1489, 7, 6, 0, 0, 1489, 1490, 7, 23, 0, 0, 1490, 1491, 5, 95, 0, 0, 1491, 1492, 7, 24, 0, 0, 1492, 1493, 7, 7, 0, 0, 1493, 1494, 7, 10, 0, 0, 1494, 1495, 7, 2, 0, 0, 1495, 1496, 7, 26, 0, 0, 1496, 184, 1, 0, 0, 0, 1497, 1498, 7, 21, 0, 0, 1498, 1499, 7, 8, 0, 0, 1499, 1500, 7, 7, 0, 0, 1500, 1501, 7, 7, 0, 0, 1501, 1502, 7, 4, 0, 0, 1502, 1503, 7, 11, 0, 0, 1503, 1504, 7, 6, 0, 0, 1504, 1505, 5, 95, 0, 0, 1505, 1506, 7, 5, 0, 0, 1506, 1507, 7, 21, 0, 0, 1507, 1508, 7, 26, 0, 0, 1508, 1509, 7, 4, 0, 0, 1509, 1510, 7, 1, 0, 0, 1510, 1511, 7, 10, 0, 0, 1511, 186, 1, 0, 0, 0, 1512, 1513, 7, 21, 0, 0, 1513, 1514, 7, 8, 0, 0, 1514, 1515, 7, 7, 0, 0, 1515, 1516, 7, 7, 0, 0, 1516, 1517, 7, 4, 0, 0, 1517, 1518, 7, 11, 0, 0, 1518, 1519, 7, 6, 0, 0, 1519, 1520, 5, 95, 0, 0, 1520, 1521, 7, 6, 0, 0, 1521, 1522, 7, 0, 0, 0, 1522, 1523, 7, 1, 0, 0, 1523, 1524, 7, 4, 0, 0, 1524, 188, 1, 0, 0, 0, 1525, 1526, 7, 21, 0, 0, 1526, 1527, 7, 8, 0, 0, 1527, 1528, 7, 7, 0, 0, 1528, 1529, 7, 7, 0, 0, 1529, 1530, 7, 4, 0, 0, 1530, 1531, 7, 11, 0, 0, 1531, 1532, 7, 6, 0, 0, 1532, 1533, 5, 95, 0, 0, 1533, 1534, 7, 6, 0, 0, 1534, 1535, 7, 0, 0, 0, 1535, 1536, 7, 1, 0, 0, 1536, 1537, 7, 4, 0, 0, 1537, 1538, 7, 5, 0, 0, 1538, 1539, 7, 6, 0, 0, 1539, 1540, 7, 10, 0, 0, 1540, 1541, 7, 1, 0, 0, 1541, 1542, 7, 2, 0, 0, 1542, 190, 1, 0, 0, 0, 1543, 1544, 7, 22, 0, 0, 1544, 1545, 7, 10, 0, 0, 1545, 1546, 7, 6, 0, 0, 1546, 1547, 7, 4, 0, 0, 1547, 192, 1, 0, 0, 0, 1548, 1549, 7, 22, 0, 0, 1549, 1550, 7, 10, 0, 0, 1550, 1551, 7, 6, 0, 0, 1551, 1552, 7, 4, 0, 0, 1552, 1553, 7, 6, 0, 0, 1553, 1554, 7, 0, 0, 0, 1554, 1555, 7, 1, 0, 0, 1555, 1556, 7, 4, 0, 0, 1556, 194, 1, 0, 0, 0, 1557, 1558, 7, 22, 0, 0, 1558, 1559, 7, 10, 0, 0, 1559, 1560, 7, 23, 0, 0, 1560, 196, 1, 0, 0, 0, 1561, 1562, 7, 22, 0, 0, 1562, 1563, 7, 4, 0, 0, 1563, 1564, 7, 21, 0, 0, 1564, 198, 1, 0, 0, 0, 1565, 1566, 7, 22, 0, 0, 1566, 1567, 7, 4, 0, 0, 1567, 1568, 7, 21, 0, 0, 1568, 1569, 7, 0, 0, 0, 1569, 1570, 7, 1, 0, 0, 1570, 1571, 7, 10, 0, 0, 1571, 1572, 7, 3, 0, 0, 1572, 200, 1, 0, 0, 0, 1573, 1574, 7, 22, 0, 0, 1574, 1575, 7, 4, 0, 0, 1575, 1576, 7, 24, 0, 0, 1576, 1577, 7, 7, 0, 0, 1577, 1578, 7, 4, 0, 0, 1578, 1579, 7, 4, 0, 0, 1579, 1580, 7, 5, 0, 0, 1580, 202, 1, 0, 0, 0, 1581, 1582, 7, 22, 0, 0, 1582, 1583, 7, 4, 0, 0, 1583, 1584, 7, 3, 0, 0, 1584, 1585, 7, 4, 0, 0, 1585, 1586, 7, 6, 0, 0, 1586, 1587, 7, 4, 0, 0, 1587, 204, 1, 0, 0, 0, 1588, 1589, 7, 22, 0, 0, 1589, 1590, 7, 4, 0, 0, 1590, 1591, 7, 5, 0, 0, 1591, 1592, 7, 21, 0, 0, 1592, 206, 1, 0, 0, 0, 1593, 1594, 7, 22, 0, 0, 1594, 1595, 7, 4, 0, 0, 1595, 1596, 7, 5, 0, 0, 1596, 1597, 7, 21, 0, 0, 1597, 1598, 7, 4, 0, 0, 1598, 1599, 7, 11, 0, 0, 1599, 1600, 7, 22, 0, 0, 1600, 1601, 7, 0, 0, 0, 1601, 1602, 7, 11, 0, 0, 1602, 1603, 7, 24, 0, 0, 1603, 208, 1, 0, 0, 0, 1604, 1605, 7, 22, 0, 0, 1605, 1606, 7, 4, 0, 0, 1606, 1607, 7, 6, 0, 0, 1607, 1608, 7, 10, 0, 0, 1608, 1609, 7, 21, 0, 0, 1609, 1610, 7, 26, 0, 0, 1610, 210, 1, 0, 0, 0, 1611, 1612, 7, 22, 0, 0, 1612, 1613, 7, 0, 0, 0, 1613, 1614, 7, 5, 0, 0, 1614, 1615, 7, 6, 0, 0, 1615, 1616, 7, 0, 0, 0, 1616, 1617, 7, 11, 0, 0, 1617, 1618, 7, 21, 0, 0, 1618, 1619, 7, 6, 0, 0, 1619, 212, 1, 0, 0, 0, 1620, 1621, 7, 22, 0, 0, 1621, 1622, 7, 13, 0, 0, 1622, 1623, 7, 8, 0, 0, 1623, 1624, 7, 18, 0, 0, 1624, 1625, 7, 3, 0, 0, 1625, 1626, 7, 4, 0, 0, 1626, 214, 1, 0, 0, 0, 1627, 1628, 7, 22, 0, 0, 1628, 1629, 7, 7, 0, 0, 1629, 1630, 7, 13, 0, 0, 1630, 1631, 7, 2, 0, 0, 1631, 216, 1, 0, 0, 0, 1632, 1633, 7, 22, 0, 0, 1633, 1634, 7, 8, 0, 0, 1634, 1635, 7, 7, 0, 0, 1635, 1636, 7, 10, 0, 0, 1636, 1637, 7, 6, 0, 0, 1637, 1638, 7, 0, 0, 0, 1638, 1639, 7, 13, 0, 0, 1639, 1640, 7, 11, 0, 0, 1640, 218, 1, 0, 0, 0, 1641, 1642, 7, 22, 0, 0, 1642, 1643, 7, 8, 0, 0, 1643, 1644, 7, 7, 0, 0, 1644, 1645, 7, 10, 0, 0, 1645, 1646, 7, 6, 0, 0, 1646, 1647, 7, 0, 0, 0, 1647, 1648, 7, 13, 0, 0, 1648, 1649, 7, 11, 0, 0, 1649, 1650, 5, 95, 0, 0, 1650, 1651, 7, 18, 0, 0, 1651, 1652, 7, 4, 0, 0, 1652, 1653, 7, 6, 0, 0, 1653, 1654, 7, 14, 0, 0, 1654, 1655, 7, 4, 0, 0, 1655, 1656, 7, 4, 0, 0, 1656, 1657, 7, 11, 0, 0, 1657, 220, 1, 0, 0, 0, 1658, 1659, 7, 4, 0, 0, 1659, 1660, 7, 3, 0, 0, 1660, 1661, 7, 4, 0, 0, 1661, 1662, 7, 1, 0, 0, 1662, 1663, 7, 4, 0, 0, 1663, 1664, 7, 11, 0, 0, 1664, 1665, 7, 6, 0, 0, 1665, 1666, 5, 95, 0, 0, 1666, 1667, 7, 0, 0, 0, 1667, 1668, 7, 22, 0, 0, 1668, 222, 1, 0, 0, 0, 1669, 1670, 7, 4, 0, 0, 1670, 1671, 7, 3, 0, 0, 1671, 1672, 7, 5, 0, 0, 1672, 1673, 7, 4, 0, 0, 1673, 224, 1, 0, 0, 0, 1674, 1675, 7, 4, 0, 0, 1675, 1676, 7, 11, 0, 0, 1676, 1677, 7, 22, 0, 0, 1677, 226, 1, 0, 0, 0, 1678, 1679, 7, 4, 0, 0, 1679, 1680, 7, 19, 0, 0, 1680, 1681, 7, 21, 0, 0, 1681, 1682, 7, 4, 0, 0, 1682, 1683, 7, 2, 0, 0, 1683, 1684, 7, 6, 0, 0, 1684, 228, 1, 0, 0, 0, 1685, 1686, 7, 4, 0, 0, 1686, 1687, 7, 19, 0, 0, 1687, 1688, 7, 0, 0, 0, 1688, 1689, 7, 5, 0, 0, 1689, 1690, 7, 6, 0, 0, 1690, 1691, 7, 5, 0, 0, 1691, 230, 1, 0, 0, 0, 1692, 1693, 7, 4, 0, 0, 1693, 1694, 7, 19, 0, 0, 1694, 1695, 7, 2, 0, 0, 1695, 232, 1, 0, 0, 0, 1696, 1697, 7, 9, 0, 0, 1697, 1698, 7, 0, 0, 0, 1698, 1699, 7, 3, 0, 0, 1699, 1700, 7, 6, 0, 0, 1700, 1701, 7, 4, 0, 0, 1701, 1702, 7, 7, 0, 0, 1702, 234, 1, 0, 0, 0, 1703, 1704, 7, 9, 0, 0, 1704, 1705, 7, 0, 0, 0, 1705, 1706, 7, 11, 0, 0, 1706, 1707, 7, 0, 0, 0, 1707, 1708, 7, 5, 0, 0, 1708, 1709, 7, 26, 0, 0, 1709, 236, 1, 0, 0, 0, 1710, 1711, 7, 9, 0, 0, 1711, 1712, 7, 3, 0, 0, 1712, 1713, 7, 13, 0, 0, 1713, 1714, 7, 10, 0, 0, 1714, 1715, 7, 6, 0, 0, 1715, 238, 1, 0, 0, 0, 1716, 1717, 7, 9, 0, 0, 1717, 1718, 7, 3, 0, 0, 1718, 1719, 7, 13, 0, 0, 1719, 1720, 7, 10, 0, 0, 1720, 1721, 7, 6, 0, 0, 1721, 1722, 5, 49, 0, 0, 1722, 1723, 5, 54, 0, 0, 1723, 240, 1, 0, 0, 0, 1724, 1725, 7, 9, 0, 0, 1725, 1726, 7, 3, 0, 0, 1726, 1727, 7, 13, 0, 0, 1727, 1728, 7, 10, 0, 0, 1728, 1729, 7, 6, 0, 0, 1729, 1730, 5, 51, 0, 0, 1730, 1731, 5, 50, 0, 0, 1731, 242, 1, 0, 0, 0, 1732, 1733, 7, 9, 0, 0, 1733, 1734, 7, 3, 0, 0, 1734, 1735, 7, 13, 0, 0, 1735, 1736, 7, 10, 0, 0, 1736, 1737, 7, 6, 0, 0, 1737, 1738, 5, 54, 0, 0, 1738, 1739, 5, 52, 0, 0, 1739, 244, 1, 0, 0, 0, 1740, 1741, 7, 9, 0, 0, 1741, 1742, 7, 3, 0, 0, 1742, 1743, 7, 13, 0, 0, 1743, 1744, 7, 10, 0, 0, 1744, 1745, 7, 6, 0, 0, 1745, 1746, 5, 49, 0, 0, 1746, 1747, 5, 50, 0, 0, 1747, 1748, 5, 56, 0, 0, 1748, 246, 1, 0, 0, 0, 1749, 1750, 7, 9, 0, 0, 1750, 1751, 7, 3, 0, 0, 1751, 1752, 7, 13, 0, 0, 1752, 1753, 7, 10, 0, 0, 1753, 1754, 7, 6, 0, 0, 1754, 1755, 5, 50, 0, 0, 1755, 1756, 5, 53, 0, 0, 1756, 1757, 5, 54, 0, 0, 1757, 248, 1, 0, 0, 0, 1758, 1759, 7, 9, 0, 0, 1759, 1760, 7, 3, 0, 0, 1760, 1761, 7, 13, 0, 0, 1761, 1762, 7, 13, 0, 0, 1762, 1763, 7, 7, 0, 0, 1763, 250, 1, 0, 0, 0, 1764, 1765, 7, 9, 0, 0, 1765, 1766, 7, 13, 0, 0, 1766, 1767, 7, 7, 0, 0, 1767, 252, 1, 0, 0, 0, 1768, 1769, 7, 9, 0, 0, 1769, 1770, 7, 7, 0, 0, 1770, 1771, 7, 13, 0, 0, 1771, 1772, 7, 1, 0, 0, 1772, 254, 1, 0, 0, 0, 1773, 1774, 7, 24, 0, 0, 1774, 1775, 7, 7, 0, 0, 1775, 1776, 7, 13, 0, 0, 1776, 1777, 7, 8, 0, 0, 1777, 1778, 7, 2, 0, 0, 1778, 256, 1, 0, 0, 0, 1779, 1780, 7, 26, 0, 0, 1780, 1781, 7, 10, 0, 0, 1781, 1782, 7, 25, 0, 0, 1782, 1783, 7, 0, 0, 0, 1783, 1784, 7, 11, 0, 0, 1784, 1785, 7, 24, 0, 0, 1785, 258, 1, 0, 0, 0, 1786, 1787, 7, 26, 0, 0, 1787, 1788, 7, 13, 0, 0, 1788, 1789, 7, 1, 0, 0, 1789, 1790, 7, 4, 0, 0, 1790, 1791, 5, 95, 0, 0, 1791, 1792, 7, 24, 0, 0, 1792, 1793, 7, 7, 0, 0, 1793, 1794, 7, 10, 0, 0, 1794, 1795, 7, 2, 0, 0, 1795, 1796, 7, 26, 0, 0, 1796, 260, 1, 0, 0, 0, 1797, 1798, 7, 26, 0, 0, 1798, 1799, 7, 13, 0, 0, 1799, 1800, 7, 1, 0, 0, 1800, 1801, 7, 4, 0, 0, 1801, 1802, 5, 95, 0, 0, 1802, 1803, 7, 2, 0, 0, 1803, 1804, 7, 7, 0, 0, 1804, 1805, 7, 13, 0, 0, 1805, 1806, 7, 2, 0, 0, 1806, 1807, 7, 4, 0, 0, 1807, 1808, 7, 7, 0, 0, 1808, 1809, 7, 6, 0, 0, 1809, 1810, 7, 23, 0, 0, 1810, 1811, 5, 95, 0, 0, 1811, 1812, 7, 24, 0, 0, 1812, 1813, 7, 7, 0, 0, 1813, 1814, 7, 10, 0, 0, 1814, 1815, 7, 2, 0, 0, 1815, 1816, 7, 26, 0, 0, 1816, 262, 1, 0, 0, 0, 1817, 1818, 7, 26, 0, 0, 1818, 1819, 7, 13, 0, 0, 1819, 1820, 7, 1, 0, 0, 1820, 1821, 7, 4, 0, 0, 1821, 1822, 5, 95, 0, 0, 1822, 1823, 7, 5, 0, 0, 1823, 1824, 7, 21, 0, 0, 1824, 1825, 7, 26, 0, 0, 1825, 1826, 7, 4, 0, 0, 1826, 1827, 7, 1, 0, 0, 1827, 1828, 7, 10, 0, 0, 1828, 264, 1, 0, 0, 0, 1829, 1830, 7, 26, 0, 0, 1830, 1831, 7, 13, 0, 0, 1831, 1832, 7, 8, 0, 0, 1832, 1833, 7, 7, 0, 0, 1833, 266, 1, 0, 0, 0, 1834, 1835, 7, 0, 0, 0, 1835, 1836, 7, 9, 0, 0, 1836, 268, 1, 0, 0, 0, 1837, 1838, 7, 0, 0, 0, 1838, 1839, 7, 11, 0, 0, 1839, 270, 1, 0, 0, 0, 1840, 1841, 7, 0, 0, 0, 1841, 1842, 7, 11, 0, 0, 1842, 1843, 7, 5, 0, 0, 1843, 1844, 7, 4, 0, 0, 1844, 1845, 7, 7, 0, 0, 1845, 1846, 7, 6, 0, 0, 1846, 272, 1, 0, 0, 0, 1847, 1848, 7, 0, 0, 0, 1848, 1849, 7, 11, 0, 0, 1849, 1850, 7, 6, 0, 0, 1850, 274, 1, 0, 0, 0, 1851, 1852, 7, 0, 0, 0, 1852, 1853, 7, 11, 0, 0, 1853, 1854, 7, 6, 0, 0, 1854, 1855, 7, 4, 0, 0, 1855, 1856, 7, 24, 0, 0, 1856, 1857, 7, 4, 0, 0, 1857, 1858, 7, 7, 0, 0, 1858, 276, 1, 0, 0, 0, 1859, 1860, 7, 0, 0, 0, 1860, 1861, 7, 11, 0, 0, 1861, 1862, 7, 6, 0, 0, 1862, 1863, 5, 56, 0, 0, 1863, 278, 1, 0, 0, 0, 1864, 1865, 7, 0, 0, 0, 1865, 1866, 7, 11, 0, 0, 1866, 1867, 7, 6, 0, 0, 1867, 1868, 7, 4, 0, 0, 1868, 1869, 7, 24, 0, 0, 1869, 1870, 7, 4, 0, 0, 1870, 1871, 7, 7, 0, 0, 1871, 1872, 5, 56, 0, 0, 1872, 280, 1, 0, 0, 0, 1873, 1874, 7, 0, 0, 0, 1874, 1875, 7, 11, 0, 0, 1875, 1876, 7, 6, 0, 0, 1876, 1877, 5, 49, 0, 0, 1877, 1878, 5, 54, 0, 0, 1878, 282, 1, 0, 0, 0, 1879, 1880, 7, 0, 0, 0, 1880, 1881, 7, 11, 0, 0, 1881, 1882, 7, 6, 0, 0, 1882, 1883, 7, 4, 0, 0, 1883, 1884, 7, 24, 0, 0, 1884, 1885, 7, 4, 0, 0, 1885, 1886, 7, 7, 0, 0, 1886, 1887, 5, 49, 0, 0, 1887, 1888, 5, 54, 0, 0, 1888, 284, 1, 0, 0, 0, 1889, 1890, 7, 0, 0, 0, 1890, 1891, 7, 11, 0, 0, 1891, 1892, 7, 6, 0, 0, 1892, 1893, 5, 51, 0, 0, 1893, 1894, 5, 50, 0, 0, 1894, 286, 1, 0, 0, 0, 1895, 1896, 7, 0, 0, 0, 1896, 1897, 7, 11, 0, 0, 1897, 1898, 7, 6, 0, 0, 1898, 1899, 7, 4, 0, 0, 1899, 1900, 7, 24, 0, 0, 1900, 1901, 7, 4, 0, 0, 1901, 1902, 7, 7, 0, 0, 1902, 1903, 5, 51, 0, 0, 1903, 1904, 5, 50, 0, 0, 1904, 288, 1, 0, 0, 0, 1905, 1906, 7, 0, 0, 0, 1906, 1907, 7, 11, 0, 0, 1907, 1908, 7, 6, 0, 0, 1908, 1909, 5, 54, 0, 0, 1909, 1910, 5, 52, 0, 0, 1910, 290, 1, 0, 0, 0, 1911, 1912, 7, 0, 0, 0, 1912, 1913, 7, 11, 0, 0, 1913, 1914, 7, 6, 0, 0, 1914, 1915, 7, 4, 0, 0, 1915, 1916, 7, 24, 0, 0, 1916, 1917, 7, 4, 0, 0, 1917, 1918, 7, 7, 0, 0, 1918, 1919, 5, 54, 0, 0, 1919, 1920, 5, 52, 0, 0, 1920, 292, 1, 0, 0, 0, 1921, 1922, 7, 0, 0, 0, 1922, 1923, 7, 11, 0, 0, 1923, 1924, 7, 6, 0, 0, 1924, 1925, 5, 49, 0, 0, 1925, 1926, 5, 50, 0, 0, 1926, 1927, 5, 56, 0, 0, 1927, 294, 1, 0, 0, 0, 1928, 1929, 7, 0, 0, 0, 1929, 1930, 7, 11, 0, 0, 1930, 1931, 7, 6, 0, 0, 1931, 1932, 7, 4, 0, 0, 1932, 1933, 7, 24, 0, 0, 1933, 1934, 7, 4, 0, 0, 1934, 1935, 7, 7, 0, 0, 1935, 1936, 5, 49, 0, 0, 1936, 1937, 5, 50, 0, 0, 1937, 1938, 5, 56, 0, 0, 1938, 296, 1, 0, 0, 0, 1939, 1940, 7, 0, 0, 0, 1940, 1941, 7, 11, 0, 0, 1941, 1942, 7, 6, 0, 0, 1942, 1943, 5, 50, 0, 0, 1943, 1944, 5, 53, 0, 0, 1944, 1945, 5, 54, 0, 0, 1945, 298, 1, 0, 0, 0, 1946, 1947, 7, 0, 0, 0, 1947, 1948, 7, 11, 0, 0, 1948, 1949, 7, 6, 0, 0, 1949, 1950, 7, 4, 0, 0, 1950, 1951, 7, 24, 0, 0, 1951, 1952, 7, 4, 0, 0, 1952, 1953, 7, 7, 0, 0, 1953, 1954, 5, 50, 0, 0, 1954, 1955, 5, 53, 0, 0, 1955, 1956, 5, 54, 0, 0, 1956, 300, 1, 0, 0, 0, 1957, 1958, 7, 0, 0, 0, 1958, 1959, 7, 11, 0, 0, 1959, 1960, 7, 6, 0, 0, 1960, 1961, 7, 4, 0, 0, 1961, 1962, 7, 7, 0, 0, 1962, 1963, 7, 5, 0, 0, 1963, 1964, 7, 4, 0, 0, 1964, 1965, 7, 21, 0, 0, 1965, 1966, 7, 6, 0, 0, 1966, 302, 1, 0, 0, 0, 1967, 1968, 7, 0, 0, 0, 1968, 1969, 7, 11, 0, 0, 1969, 1970, 7, 6, 0, 0, 1970, 1971, 7, 4, 0, 0, 1971, 1972, 7, 7, 0, 0, 1972, 1973, 7, 25, 0, 0, 1973, 1974, 7, 10, 0, 0, 1974, 1975, 7, 3, 0, 0, 1975, 304, 1, 0, 0, 0, 1976, 1977, 7, 0, 0, 0, 1977, 1978, 7, 5, 0, 0, 1978, 306, 1, 0, 0, 0, 1979, 1980, 7, 3, 0, 0, 1980, 1981, 7, 4, 0, 0, 1981, 1982, 7, 10, 0, 0, 1982, 1983, 7, 22, 0, 0, 1983, 1984, 7, 0, 0, 0, 1984, 1985, 7, 11, 0, 0, 1985, 1986, 7, 24, 0, 0, 1986, 308, 1, 0, 0, 0, 1987, 1988, 7, 3, 0, 0, 1988, 1989, 7, 4, 0, 0, 1989, 1990, 7, 9, 0, 0, 1990, 1991, 7, 6, 0, 0, 1991, 310, 1, 0, 0, 0, 1992, 1993, 7, 3, 0, 0, 1993, 1994, 7, 4, 0, 0, 1994, 1995, 7, 6, 0, 0, 1995, 312, 1, 0, 0, 0, 1996, 1997, 7, 3, 0, 0, 1997, 1998, 7, 0, 0, 0, 1998, 1999, 7, 12, 0, 0, 1999, 2000, 7, 4, 0, 0, 2000, 314, 1, 0, 0, 0, 2001, 2002, 7, 3, 0, 0, 2002, 2003, 7, 0, 0, 0, 2003, 2004, 7, 1, 0, 0, 2004, 2005, 7, 0, 0, 0, 2005, 2006, 7, 6, 0, 0, 2006, 316, 1, 0, 0, 0, 2007, 2008, 7, 3, 0, 0, 2008, 2009, 7, 0, 0, 0, 2009, 2010, 7, 5, 0, 0, 2010, 2011, 7, 6, 0, 0, 2011, 318, 1, 0, 0, 0, 2012, 2013, 7, 3, 0, 0, 2013, 2014, 7, 11, 0, 0, 2014, 320, 1, 0, 0, 0, 2015, 2016, 7, 3, 0, 0, 2016, 2017, 7, 13, 0, 0, 2017, 2018, 7, 21, 0, 0, 2018, 2019, 7, 10, 0, 0, 2019, 2020, 7, 3, 0, 0, 2020, 322, 1, 0, 0, 0, 2021, 2022, 7, 3, 0, 0, 2022, 2023, 7, 13, 0, 0, 2023, 2024, 7, 21, 0, 0, 2024, 2025, 7, 10, 0, 0, 2025, 2026, 7, 3, 0, 0, 2026, 2027, 5, 95, 0, 0, 2027, 2028, 7, 22, 0, 0, 2028, 2029, 7, 10, 0, 0, 2029, 2030, 7, 6, 0, 0, 2030, 2031, 7, 4, 0, 0, 2031, 2032, 7, 6, 0, 0, 2032, 2033, 7, 0, 0, 0, 2033, 2034, 7, 1, 0, 0, 2034, 2035, 7, 4, 0, 0, 2035, 324, 1, 0, 0, 0, 2036, 2037, 7, 3, 0, 0, 2037, 2038, 7, 13, 0, 0, 2038, 2039, 7, 21, 0, 0, 2039, 2040, 7, 10, 0, 0, 2040, 2041, 7, 3, 0, 0, 2041, 2042, 5, 95, 0, 0, 2042, 2043, 7, 6, 0, 0, 2043, 2044, 7, 0, 0, 0, 2044, 2045, 7, 1, 0, 0, 2045, 2046, 7, 4, 0, 0, 2046, 326, 1, 0, 0, 0, 2047, 2048, 7, 3, 0, 0, 2048, 2049, 7, 13, 0, 0, 2049, 2050, 7, 21, 0, 0, 2050, 2051, 7, 10, 0, 0, 2051, 2052, 7, 3, 0, 0, 2052, 2053, 5, 95, 0, 0, 2053, 2054, 7, 6, 0, 0, 2054, 2055, 7, 0, 0, 0, 2055, 2056, 7, 1, 0, 0, 2056, 2057, 7, 4, 0, 0, 2057, 2058, 7, 5, 0, 0, 2058, 2059, 7, 6, 0, 0, 2059, 2060, 7, 10, 0, 0, 2060, 2061, 7, 1, 0, 0, 2061, 2062, 7, 2, 0, 0, 2062, 328, 1, 0, 0, 0, 2063, 2064, 7, 3, 0, 0, 2064, 2065, 7, 13, 0, 0, 2065, 2066, 7, 24, 0, 0, 2066, 330, 1, 0, 0, 0, 2067, 2068, 7, 3, 0, 0, 2068, 2069, 7, 13, 0, 0, 2069, 2070, 7, 24, 0, 0, 2070, 2071, 5, 49, 0, 0, 2071, 2072, 5, 48, 0, 0, 2072, 332, 1, 0, 0, 0, 2073, 2074, 7, 3, 0, 0, 2074, 2075, 7, 13, 0, 0, 2075, 2076, 7, 14, 0, 0, 2076, 2077, 7, 4, 0, 0, 2077, 2078, 7, 7, 0, 0, 2078, 334, 1, 0, 0, 0, 2079, 2080, 7, 3, 0, 0, 2080, 2081, 7, 6, 0, 0, 2081, 2082, 7, 7, 0, 0, 2082, 2083, 7, 0, 0, 0, 2083, 2084, 7, 1, 0, 0, 2084, 336, 1, 0, 0, 0, 2085, 2086, 7, 1, 0, 0, 2086, 2087, 7, 10, 0, 0, 2087, 2088, 7, 6, 0, 0, 2088, 2089, 7, 21, 0, 0, 2089, 2090, 7, 26, 0, 0, 2090, 338, 1, 0, 0, 0, 2091, 2092, 7, 1, 0, 0, 2092, 2093, 7, 10, 0, 0, 2093, 2094, 7, 19, 0, 0, 2094, 340, 1, 0, 0, 0, 2095, 2096, 7, 1, 0, 0, 2096, 2097, 7, 0, 0, 0, 2097, 2098, 7, 11, 0, 0, 2098, 342, 1, 0, 0, 0, 2099, 2100, 7, 1, 0, 0, 2100, 2101, 7, 0, 0, 0, 2101, 2102, 7, 11, 0, 0, 2102, 2103, 7, 8, 0, 0, 2103, 2104, 7, 6, 0, 0, 2104, 2105, 7, 4, 0, 0, 2105, 344, 1, 0, 0, 0, 2106, 2107, 7, 1, 0, 0, 2107, 2108, 7, 13, 0, 0, 2108, 2109, 7, 22, 0, 0, 2109, 346, 1, 0, 0, 0, 2110, 2111, 7, 1, 0, 0, 2111, 2112, 7, 13, 0, 0, 2112, 2113, 7, 11, 0, 0, 2113, 2114, 7, 6, 0, 0, 2114, 2115, 7, 26, 0, 0, 2115, 348, 1, 0, 0, 0, 2116, 2117, 7, 11, 0, 0, 2117, 2118, 7, 4, 0, 0, 2118, 2119, 7, 19, 0, 0, 2119, 2120, 7, 6, 0, 0, 2120, 350, 1, 0, 0, 0, 2121, 2122, 7, 11, 0, 0, 2122, 2123, 7, 13, 0, 0, 2123, 2124, 7, 22, 0, 0, 2124, 2125, 7, 4, 0, 0, 2125, 2126, 7, 6, 0, 0, 2126, 2127, 7, 10, 0, 0, 2127, 2128, 7, 21, 0, 0, 2128, 2129, 7, 26, 0, 0, 2129, 352, 1, 0, 0, 0, 2130, 2131, 7, 11, 0, 0, 2131, 2132, 7, 13, 0, 0, 2132, 2133, 7, 7, 0, 0, 2133, 2134, 7, 1, 0, 0, 2134, 2135, 7, 10, 0, 0, 2135, 2136, 7, 3, 0, 0, 2136, 2137, 7, 0, 0, 0, 2137, 2138, 7, 27, 0, 0, 2138, 2139, 7, 4, 0, 0, 2139, 354, 1, 0, 0, 0, 2140, 2141, 7, 11, 0, 0, 2141, 2142, 7, 13, 0, 0, 2142, 2143, 7, 6, 0, 0, 2143, 356, 1, 0, 0, 0, 2144, 2145, 7, 11, 0, 0, 2145, 2146, 7, 13, 0, 0, 2146, 2147, 7, 6, 0, 0, 2147, 2148, 7, 26, 0, 0, 2148, 2149, 7, 0, 0, 0, 2149, 2150, 7, 11, 0, 0, 2150, 2151, 7, 24, 0, 0, 2151, 358, 1, 0, 0, 0, 2152, 2153, 7, 11, 0, 0, 2153, 2154, 7, 8, 0, 0, 2154, 2155, 7, 3, 0, 0, 2155, 2156, 7, 3, 0, 0, 2156, 360, 1, 0, 0, 0, 2157, 2158, 7, 11, 0, 0, 2158, 2159, 7, 8, 0, 0, 2159, 2160, 7, 3, 0, 0, 2160, 2161, 7, 3, 0, 0, 2161, 2162, 7, 5, 0, 0, 2162, 362, 1, 0, 0, 0, 2163, 2164, 7, 11, 0, 0, 2164, 2165, 7, 8, 0, 0, 2165, 2166, 7, 3, 0, 0, 2166, 2167, 7, 3, 0, 0, 2167, 2168, 7, 0, 0, 0, 2168, 2169, 7, 9, 0, 0, 2169, 364, 1, 0, 0, 0, 2170, 2171, 7, 13, 0, 0, 2171, 2172, 7, 21, 0, 0, 2172, 2173, 7, 6, 0, 0, 2173, 2174, 7, 4, 0, 0, 2174, 2175, 7, 6, 0, 0, 2175, 2176, 5, 95, 0, 0, 2176, 2177, 7, 3, 0, 0, 2177, 2178, 7, 4, 0, 0, 2178, 2179, 7, 11, 0, 0, 2179, 2180, 7, 24, 0, 0, 2180, 2181, 7, 6, 0, 0, 2181, 2182, 7, 26, 0, 0, 2182, 366, 1, 0, 0, 0, 2183, 2184, 7, 13, 0, 0, 2184, 2185, 7, 9, 0, 0, 2185, 368, 1, 0, 0, 0, 2186, 2187, 7, 13, 0, 0, 2187, 2188, 7, 9, 0, 0, 2188, 2189, 7, 9, 0, 0, 2189, 2190, 7, 5, 0, 0, 2190, 2191, 7, 4, 0, 0, 2191, 2192, 7, 6, 0, 0, 2192, 370, 1, 0, 0, 0, 2193, 2194, 7, 13, 0, 0, 2194, 2195, 7, 2, 0, 0, 2195, 2196, 7, 6, 0, 0, 2196, 2197, 7, 0, 0, 0, 2197, 2198, 7, 13, 0, 0, 2198, 2199, 7, 11, 0, 0, 2199, 2200, 7, 10, 0, 0, 2200, 2201, 7, 3, 0, 0, 2201, 372, 1, 0, 0, 0, 2202, 2203, 7, 13, 0, 0, 2203, 2204, 7, 7, 0, 0, 2204, 374, 1, 0, 0, 0, 2205, 2206, 7, 13, 0, 0, 2206, 2207, 7, 7, 0, 0, 2207, 2208, 7, 22, 0, 0, 2208, 2209, 7, 4, 0, 0, 2209, 2210, 7, 7, 0, 0, 2210, 376, 1, 0, 0, 0, 2211, 2212, 7, 13, 0, 0, 2212, 2213, 7, 6, 0, 0, 2213, 2214, 7, 26, 0, 0, 2214, 2215, 7, 4, 0, 0, 2215, 2216, 7, 7, 0, 0, 2216, 2217, 7, 14, 0, 0, 2217, 2218, 7, 0, 0, 0, 2218, 2219, 7, 5, 0, 0, 2219, 2220, 7, 4, 0, 0, 2220, 378, 1, 0, 0, 0, 2221, 2222, 7, 2, 0, 0, 2222, 2223, 7, 10, 0, 0, 2223, 2224, 7, 7, 0, 0, 2224, 2225, 7, 10, 0, 0, 2225, 2226, 7, 1, 0, 0, 2226, 2227, 7, 4, 0, 0, 2227, 2228, 7, 6, 0, 0, 2228, 2229, 7, 4, 0, 0, 2229, 2230, 7, 7, 0, 0, 2230, 380, 1, 0, 0, 0, 2231, 2232, 7, 2, 0, 0, 2232, 2233, 7, 10, 0, 0, 2233, 2234, 7, 7, 0, 0, 2234, 2235, 7, 10, 0, 0, 2235, 2236, 7, 1, 0, 0, 2236, 2237, 7, 4, 0, 0, 2237, 2238, 7, 6, 0, 0, 2238, 2239, 7, 4, 0, 0, 2239, 2240, 7, 7, 0, 0, 2240, 2241, 7, 5, 0, 0, 2241, 382, 1, 0, 0, 0, 2242, 2243, 7, 2, 0, 0, 2243, 2244, 7, 10, 0, 0, 2244, 2245, 7, 6, 0, 0, 2245, 2246, 7, 26, 0, 0, 2246, 384, 1, 0, 0, 0, 2247, 2248, 7, 2, 0, 0, 2248, 2249, 7, 10, 0, 0, 2249, 2250, 7, 6, 0, 0, 2250, 2251, 7, 26, 0, 0, 2251, 2252, 5, 95, 0, 0, 2252, 2253, 7, 3, 0, 0, 2253, 2254, 7, 4, 0, 0, 2254, 2255, 7, 11, 0, 0, 2255, 2256, 7, 24, 0, 0, 2256, 2257, 7, 6, 0, 0, 2257, 2258, 7, 26, 0, 0, 2258, 386, 1, 0, 0, 0, 2259, 2260, 7, 2, 0, 0, 2260, 2261, 7, 10, 0, 0, 2261, 2262, 7, 6, 0, 0, 2262, 2263, 7, 26, 0, 0, 2263, 2264, 7, 5, 0, 0, 2264, 388, 1, 0, 0, 0, 2265, 2266, 7, 2, 0, 0, 2266, 2267, 7, 4, 0, 0, 2267, 2268, 7, 7, 0, 0, 2268, 2269, 7, 21, 0, 0, 2269, 2270, 7, 4, 0, 0, 2270, 2271, 7, 11, 0, 0, 2271, 2272, 7, 6, 0, 0, 2272, 2273, 7, 0, 0, 0, 2273, 2274, 7, 3, 0, 0, 2274, 2275, 7, 4, 0, 0, 2275, 2276, 5, 95, 0, 0, 2276, 2277, 7, 21, 0, 0, 2277, 2278, 7, 13, 0, 0, 2278, 2279, 7, 11, 0, 0, 2279, 2280, 7, 6, 0, 0, 2280, 390, 1, 0, 0, 0, 2281, 2282, 7, 2, 0, 0, 2282, 2283, 7, 4, 0, 0, 2283, 2284, 7, 7, 0, 0, 2284, 2285, 7, 21, 0, 0, 2285, 2286, 7, 4, 0, 0, 2286, 2287, 7, 11, 0, 0, 2287, 2288, 7, 6, 0, 0, 2288, 2289, 7, 0, 0, 0, 2289, 2290, 7, 3, 0, 0, 2290, 2291, 7, 4, 0, 0, 2291, 2292, 5, 95, 0, 0, 2292, 2293, 7, 22, 0, 0, 2293, 2294, 7, 0, 0, 0, 2294, 2295, 7, 5, 0, 0, 2295, 2296, 7, 21, 0, 0, 2296, 392, 1, 0, 0, 0, 2297, 2298, 7, 2, 0, 0, 2298, 2299, 7, 13, 0, 0, 2299, 2300, 7, 14, 0, 0, 2300, 2301, 7, 4, 0, 0, 2301, 2302, 7, 7, 0, 0, 2302, 394, 1, 0, 0, 0, 2303, 2304, 7, 2, 0, 0, 2304, 2305, 7, 7, 0, 0, 2305, 2306, 7, 4, 0, 0, 2306, 2307, 7, 21, 0, 0, 2307, 2308, 7, 0, 0, 0, 2308, 2309, 7, 5, 0, 0, 2309, 2310, 7, 0, 0, 0, 2310, 2311, 7, 13, 0, 0, 2311, 2312, 7, 11, 0, 0, 2312, 396, 1, 0, 0, 0, 2313, 2314, 7, 2, 0, 0, 2314, 2315, 7, 7, 0, 0, 2315, 2316, 7, 13, 0, 0, 2316, 2317, 7, 2, 0, 0, 2317, 2318, 7, 4, 0, 0, 2318, 2319, 7, 7, 0, 0, 2319, 2320, 7, 6, 0, 0, 2320, 2321, 7, 23, 0, 0, 2321, 2322, 5, 95, 0, 0, 2322, 2323, 7, 4, 0, 0, 2323, 2324, 7, 19, 0, 0, 2324, 2325, 7, 0, 0, 0, 2325, 2326, 7, 5, 0, 0, 2326, 2327, 7, 6, 0, 0, 2327, 2328, 7, 5, 0, 0, 2328, 398, 1, 0, 0, 0, 2329, 2330, 7, 7, 0, 0, 2330, 2331, 7, 10, 0, 0, 2331, 2332, 7, 22, 0, 0, 2332, 2333, 7, 0, 0, 0, 2333, 2334, 7, 10, 0, 0, 2334, 2335, 7, 11, 0, 0, 2335, 2336, 7, 5, 0, 0, 2336, 400, 1, 0, 0, 0, 2337, 2338, 7, 7, 0, 0, 2338, 2339, 7, 4, 0, 0, 2339, 2340, 7, 10, 0, 0, 2340, 2341, 7, 3, 0, 0, 2341, 402, 1, 0, 0, 0, 2342, 2343, 7, 7, 0, 0, 2343, 2344, 7, 4, 0, 0, 2344, 2345, 7, 21, 0, 0, 2345, 2346, 7, 13, 0, 0, 2346, 2347, 7, 7, 0, 0, 2347, 2348, 7, 22, 0, 0, 2348, 404, 1, 0, 0, 0, 2349, 2350, 7, 7, 0, 0, 2350, 2351, 7, 4, 0, 0, 2351, 2352, 7, 1, 0, 0, 2352, 2353, 7, 13, 0, 0, 2353, 2354, 7, 25, 0, 0, 2354, 2355, 7, 4, 0, 0, 2355, 406, 1, 0, 0, 0, 2356, 2357, 7, 7, 0, 0, 2357, 2358, 7, 4, 0, 0, 2358, 2359, 7, 2, 0, 0, 2359, 2360, 7, 3, 0, 0, 2360, 2361, 7, 10, 0, 0, 2361, 2362, 7, 21, 0, 0, 2362, 2363, 7, 4, 0, 0, 2363, 408, 1, 0, 0, 0, 2364, 2365, 7, 7, 0, 0, 2365, 2366, 7, 4, 0, 0, 2366, 2367, 7, 5, 0, 0, 2367, 2368, 7, 4, 0, 0, 2368, 2369, 7, 6, 0, 0, 2369, 410, 1, 0, 0, 0, 2370, 2371, 7, 7, 0, 0, 2371, 2372, 7, 4, 0, 0, 2372, 2373, 7, 6, 0, 0, 2373, 2374, 7, 8, 0, 0, 2374, 2375, 7, 7, 0, 0, 2375, 2376, 7, 11, 0, 0, 2376, 412, 1, 0, 0, 0, 2377, 2378, 7, 7, 0, 0, 2378, 2379, 7, 0, 0, 0, 2379, 2380, 7, 24, 0, 0, 2380, 2381, 7, 26, 0, 0, 2381, 2382, 7, 6, 0, 0, 2382, 414, 1, 0, 0, 0, 2383, 2384, 7, 7, 0, 0, 2384, 2385, 7, 13, 0, 0, 2385, 2386, 7, 3, 0, 0, 2386, 2387, 7, 3, 0, 0, 2387, 2388, 7, 18, 0, 0, 2388, 2389, 7, 10, 0, 0, 2389, 2390, 7, 21, 0, 0, 2390, 2391, 7, 12, 0, 0, 2391, 416, 1, 0, 0, 0, 2392, 2393, 7, 7, 0, 0, 2393, 2394, 7, 6, 0, 0, 2394, 2395, 7, 7, 0, 0, 2395, 2396, 7, 0, 0, 0, 2396, 2397, 7, 1, 0, 0, 2397, 418, 1, 0, 0, 0, 2398, 2399, 7, 5, 0, 0, 2399, 2400, 7, 10, 0, 0, 2400, 2401, 7, 1, 0, 0, 2401, 2402, 7, 4, 0, 0, 2402, 420, 1, 0, 0, 0, 2403, 2404, 7, 5, 0, 0, 2404, 2405, 7, 21, 0, 0, 2405, 2406, 7, 26, 0, 0, 2406, 2407, 7, 4, 0, 0, 2407, 2408, 7, 1, 0, 0, 2408, 2409, 7, 10, 0, 0, 2409, 422, 1, 0, 0, 0, 2410, 2411, 7, 5, 0, 0, 2411, 2412, 7, 4, 0, 0, 2412, 2413, 7, 21, 0, 0, 2413, 2414, 7, 13, 0, 0, 2414, 2415, 7, 11, 0, 0, 2415, 2416, 7, 22, 0, 0, 2416, 424, 1, 0, 0, 0, 2417, 2418, 7, 5, 0, 0, 2418, 2419, 7, 4, 0, 0, 2419, 2420, 7, 3, 0, 0, 2420, 2421, 7, 4, 0, 0, 2421, 2422, 7, 21, 0, 0, 2422, 2423, 7, 6, 0, 0, 2423, 426, 1, 0, 0, 0, 2424, 2425, 7, 5, 0, 0, 2425, 2426, 7, 4, 0, 0, 2426, 2427, 7, 5, 0, 0, 2427, 2428, 7, 5, 0, 0, 2428, 2429, 7, 0, 0, 0, 2429, 2430, 7, 13, 0, 0, 2430, 2431, 7, 11, 0, 0, 2431, 428, 1, 0, 0, 0, 2432, 2433, 7, 5, 0, 0, 2433, 2434, 7, 4, 0, 0, 2434, 2435, 7, 5, 0, 0, 2435, 2436, 7, 5, 0, 0, 2436, 2437, 7, 0, 0, 0, 2437, 2438, 7, 13, 0, 0, 2438, 2439, 7, 11, 0, 0, 2439, 2440, 5, 95, 0, 0, 2440, 2441, 7, 8, 0, 0, 2441, 2442, 7, 5, 0, 0, 2442, 2443, 7, 4, 0, 0, 2443, 2444, 7, 7, 0, 0, 2444, 430, 1, 0, 0, 0, 2445, 2446, 7, 5, 0, 0, 2446, 2447, 7, 4, 0, 0, 2447, 2448, 7, 6, 0, 0, 2448, 432, 1, 0, 0, 0, 2449, 2450, 7, 5, 0, 0, 2450, 2451, 7, 0, 0, 0, 2451, 2452, 7, 24, 0, 0, 2452, 2453, 7, 11, 0, 0, 2453, 2454, 7, 4, 0, 0, 2454, 2455, 7, 22, 0, 0, 2455, 434, 1, 0, 0, 0, 2456, 2457, 7, 5, 0, 0, 2457, 2458, 7, 0, 0, 0, 2458, 2459, 7, 11, 0, 0, 2459, 436, 1, 0, 0, 0, 2460, 2461, 7, 5, 0, 0, 2461, 2462, 7, 0, 0, 0, 2462, 2463, 7, 11, 0, 0, 2463, 2464, 7, 26, 0, 0, 2464, 438, 1, 0, 0, 0, 2465, 2466, 7, 5, 0, 0, 2466, 2467, 7, 0, 0, 0, 2467, 2468, 7, 27, 0, 0, 2468, 2469, 7, 4, 0, 0, 2469, 440, 1, 0, 0, 0, 2470, 2471, 7, 5, 0, 0, 2471, 2472, 7, 12, 0, 0, 2472, 2473, 7, 0, 0, 0, 2473, 2474, 7, 2, 0, 0, 2474, 442, 1, 0, 0, 0, 2475, 2476, 7, 5, 0, 0, 2476, 2477, 7, 1, 0, 0, 2477, 2478, 7, 10, 0, 0, 2478, 2479, 7, 3, 0, 0, 2479, 2480, 7, 3, 0, 0, 2480, 444, 1, 0, 0, 0, 2481, 2482, 7, 5, 0, 0, 2482, 2483, 7, 1, 0, 0, 2483, 2484, 7, 10, 0, 0, 2484, 2485, 7, 3, 0, 0, 2485, 2486, 7, 3, 0, 0, 2486, 2487, 7, 0, 0, 0, 2487, 2488, 7, 11, 0, 0, 2488, 2489, 7, 6, 0, 0, 2489, 446, 1, 0, 0, 0, 2490, 2491, 7, 5, 0, 0, 2491, 2492, 7, 28, 0, 0, 2492, 2493, 7, 7, 0, 0, 2493, 2494, 7, 6, 0, 0, 2494, 448, 1, 0, 0, 0, 2495, 2496, 7, 5, 0, 0, 2496, 2497, 7, 6, 0, 0, 2497, 2498, 7, 10, 0, 0, 2498, 2499, 7, 7, 0, 0, 2499, 2500, 7, 6, 0, 0, 2500, 450, 1, 0, 0, 0, 2501, 2502, 7, 5, 0, 0, 2502, 2503, 7, 6, 0, 0, 2503, 2504, 7, 22, 0, 0, 2504, 2505, 7, 22, 0, 0, 2505, 2506, 7, 4, 0, 0, 2506, 2507, 7, 25, 0, 0, 2507, 2508, 5, 95, 0, 0, 2508, 2509, 7, 2, 0, 0, 2509, 2510, 7, 13, 0, 0, 2510, 2511, 7, 2, 0, 0, 2511, 452, 1, 0, 0, 0, 2512, 2513, 7, 5, 0, 0, 2513, 2514, 7, 6, 0, 0, 2514, 2515, 7, 22, 0, 0, 2515, 2516, 7, 22, 0, 0, 2516, 2517, 7, 4, 0, 0, 2517, 2518, 7, 25, 0, 0, 2518, 2519, 5, 95, 0, 0, 2519, 2520, 7, 5, 0, 0, 2520, 2521, 7, 10, 0, 0, 2521, 2522, 7, 1, 0, 0, 2522, 2523, 7, 2, 0, 0, 2523, 454, 1, 0, 0, 0, 2524, 2525, 7, 5, 0, 0, 2525, 2526, 7, 6, 0, 0, 2526, 2527, 7, 7, 0, 0, 2527, 2528, 7, 0, 0, 0, 2528, 2529, 7, 11, 0, 0, 2529, 2530, 7, 24, 0, 0, 2530, 456, 1, 0, 0, 0, 2531, 2532, 7, 5, 0, 0, 2532, 2533, 7, 8, 0, 0, 2533, 2534, 7, 1, 0, 0, 2534, 458, 1, 0, 0, 0, 2535, 2536, 7, 6, 0, 0, 2536, 2537, 7, 10, 0, 0, 2537, 2538, 7, 11, 0, 0, 2538, 460, 1, 0, 0, 0, 2539, 2540, 7, 6, 0, 0, 2540, 2541, 7, 10, 0, 0, 2541, 2542, 7, 11, 0, 0, 2542, 2543, 7, 26, 0, 0, 2543, 462, 1, 0, 0, 0, 2544, 2545, 7, 6, 0, 0, 2545, 2546, 7, 26, 0, 0, 2546, 2547, 7, 4, 0, 0, 2547, 2548, 7, 11, 0, 0, 2548, 464, 1, 0, 0, 0, 2549, 2550, 7, 6, 0, 0, 2550, 2551, 7, 0, 0, 0, 2551, 2552, 7, 1, 0, 0, 2552, 2553, 7, 4, 0, 0, 2553, 466, 1, 0, 0, 0, 2554, 2555, 7, 6, 0, 0, 2555, 2556, 7, 0, 0, 0, 2556, 2557, 7, 1, 0, 0, 2557, 2558, 7, 4, 0, 0, 2558, 2559, 7, 5, 0, 0, 2559, 2560, 7, 6, 0, 0, 2560, 2561, 7, 10, 0, 0, 2561, 2562, 7, 1, 0, 0, 2562, 2563, 7, 2, 0, 0, 2563, 468, 1, 0, 0, 0, 2564, 2565, 7, 6, 0, 0, 2565, 2566, 7, 7, 0, 0, 2566, 2567, 7, 10, 0, 0, 2567, 2568, 7, 0, 0, 0, 2568, 2569, 7, 3, 0, 0, 2569, 2570, 7, 0, 0, 0, 2570, 2571, 7, 11, 0, 0, 2571, 2572, 7, 24, 0, 0, 2572, 470, 1, 0, 0, 0, 2573, 2574, 7, 6, 0, 0, 2574, 2575, 7, 7, 0, 0, 2575, 2576, 7, 0, 0, 0, 2576, 2577, 7, 1, 0, 0, 2577, 472, 1, 0, 0, 0, 2578, 2579, 7, 6, 0, 0, 2579, 2580, 7, 23, 0, 0, 2580, 2581, 7, 2, 0, 0, 2581, 2582, 7, 4, 0, 0, 2582, 2583, 7, 22, 0, 0, 2583, 474, 1, 0, 0, 0, 2584, 2585, 7, 8, 0, 0, 2585, 2586, 7, 18, 0, 0, 2586, 2587, 7, 0, 0, 0, 2587, 2588, 7, 24, 0, 0, 2588, 2589, 7, 0, 0, 0, 2589, 2590, 7, 11, 0, 0, 2590, 2591, 7, 6, 0, 0, 2591, 476, 1, 0, 0, 0, 2592, 2593, 7, 8, 0, 0, 2593, 2594, 7, 0, 0, 0, 2594, 2595, 7, 11, 0, 0, 2595, 2596, 7, 6, 0, 0, 2596, 478, 1, 0, 0, 0, 2597, 2598, 7, 8, 0, 0, 2598, 2599, 7, 0, 0, 0, 2599, 2600, 7, 11, 0, 0, 2600, 2601, 7, 6, 0, 0, 2601, 2602, 5, 56, 0, 0, 2602, 480, 1, 0, 0, 0, 2603, 2604, 7, 8, 0, 0, 2604, 2605, 7, 0, 0, 0, 2605, 2606, 7, 11, 0, 0, 2606, 2607, 7, 6, 0, 0, 2607, 2608, 5, 49, 0, 0, 2608, 2609, 5, 54, 0, 0, 2609, 482, 1, 0, 0, 0, 2610, 2611, 7, 8, 0, 0, 2611, 2612, 7, 0, 0, 0, 2612, 2613, 7, 11, 0, 0, 2613, 2614, 7, 6, 0, 0, 2614, 2615, 5, 51, 0, 0, 2615, 2616, 5, 50, 0, 0, 2616, 484, 1, 0, 0, 0, 2617, 2618, 7, 8, 0, 0, 2618, 2619, 7, 0, 0, 0, 2619, 2620, 7, 11, 0, 0, 2620, 2621, 7, 6, 0, 0, 2621, 2622, 5, 54, 0, 0, 2622, 2623, 5, 52, 0, 0, 2623, 486, 1, 0, 0, 0, 2624, 2625, 7, 8, 0, 0, 2625, 2626, 7, 0, 0, 0, 2626, 2627, 7, 11, 0, 0, 2627, 2628, 7, 6, 0, 0, 2628, 2629, 5, 49, 0, 0, 2629, 2630, 5, 50, 0, 0, 2630, 2631, 5, 56, 0, 0, 2631, 488, 1, 0, 0, 0, 2632, 2633, 7, 8, 0, 0, 2633, 2634, 7, 0, 0, 0, 2634, 2635, 7, 11, 0, 0, 2635, 2636, 7, 6, 0, 0, 2636, 2637, 5, 50, 0, 0, 2637, 2638, 5, 53, 0, 0, 2638, 2639, 5, 54, 0, 0, 2639, 490, 1, 0, 0, 0, 2640, 2641, 7, 8, 0, 0, 2641, 2642, 7, 11, 0, 0, 2642, 2643, 7, 0, 0, 0, 2643, 2644, 7, 13, 0, 0, 2644, 2645, 7, 11, 0, 0, 2645, 492, 1, 0, 0, 0, 2646, 2647, 7, 8, 0, 0, 2647, 2648, 7, 11, 0, 0, 2648, 2649, 7, 5, 0, 0, 2649, 2650, 7, 0, 0, 0, 2650, 2651, 7, 24, 0, 0, 2651, 2652, 7, 11, 0, 0, 2652, 2653, 7, 4, 0, 0, 2653, 2654, 7, 22, 0, 0, 2654, 494, 1, 0, 0, 0, 2655, 2656, 7, 8, 0, 0, 2656, 2657, 7, 2, 0, 0, 2657, 2658, 7, 2, 0, 0, 2658, 2659, 7, 4, 0, 0, 2659, 2660, 7, 7, 0, 0, 2660, 496, 1, 0, 0, 0, 2661, 2662, 7, 8, 0, 0, 2662, 2663, 7, 5, 0, 0, 2663, 2664, 7, 4, 0, 0, 2664, 498, 1, 0, 0, 0, 2665, 2666, 7, 8, 0, 0, 2666, 2667, 7, 5, 0, 0, 2667, 2668, 7, 1, 0, 0, 2668, 2669, 7, 10, 0, 0, 2669, 2670, 7, 3, 0, 0, 2670, 2671, 7, 3, 0, 0, 2671, 2672, 7, 0, 0, 0, 2672, 2673, 7, 11, 0, 0, 2673, 2674, 7, 6, 0, 0, 2674, 500, 1, 0, 0, 0, 2675, 2676, 7, 25, 0, 0, 2676, 2677, 7, 10, 0, 0, 2677, 2678, 7, 3, 0, 0, 2678, 2679, 7, 8, 0, 0, 2679, 2680, 7, 4, 0, 0, 2680, 502, 1, 0, 0, 0, 2681, 2682, 7, 25, 0, 0, 2682, 2683, 7, 10, 0, 0, 2683, 2684, 7, 7, 0, 0, 2684, 2685, 7, 18, 0, 0, 2685, 2686, 7, 0, 0, 0, 2686, 2687, 7, 11, 0, 0, 2687, 2688, 7, 10, 0, 0, 2688, 2689, 7, 7, 0, 0, 2689, 2690, 7, 23, 0, 0, 2690, 504, 1, 0, 0, 0, 2691, 2692, 7, 25, 0, 0, 2692, 2693, 7, 10, 0, 0, 2693, 2694, 7, 7, 0, 0, 2694, 2695, 7, 21, 0, 0, 2695, 2696, 7, 26, 0, 0, 2696, 2697, 7, 10, 0, 0, 2697, 2698, 7, 7, 0, 0, 2698, 506, 1, 0, 0, 0, 2699, 2700, 7, 25, 0, 0, 2700, 2701, 7, 10, 0, 0, 2701, 2702, 7, 7, 0, 0, 2702, 2703, 7, 0, 0, 0, 2703, 2704, 7, 10, 0, 0, 2704, 2705, 7, 18, 0, 0, 2705, 2706, 7, 3, 0, 0, 2706, 2707, 7, 4, 0, 0, 2707, 508, 1, 0, 0, 0, 2708, 2709, 7, 14, 0, 0, 2709, 2710, 7, 26, 0, 0, 2710, 2711, 7, 4, 0, 0, 2711, 2712, 7, 11, 0, 0, 2712, 510, 1, 0, 0, 0, 2713, 2714, 7, 14, 0, 0, 2714, 2715, 7, 26, 0, 0, 2715, 2716, 7, 4, 0, 0, 2716, 2717, 7, 7, 0, 0, 2717, 2718, 7, 4, 0, 0, 2718, 512, 1, 0, 0, 0, 2719, 2720, 7, 14, 0, 0, 2720, 2721, 7, 0, 0, 0, 2721, 2722, 7, 6, 0, 0, 2722, 2723, 7, 26, 0, 0, 2723, 514, 1, 0, 0, 0, 2724, 2725, 7, 19, 0, 0, 2725, 2726, 7, 13, 0, 0, 2726, 2727, 7, 7, 0, 0, 2727, 516, 1, 0, 0, 0, 2728, 2729, 7, 23, 0, 0, 2729, 2730, 7, 4, 0, 0, 2730, 2731, 7, 10, 0, 0, 2731, 2732, 7, 7, 0, 0, 2732, 518, 1, 0, 0, 0, 2733, 2734, 7, 23, 0, 0, 2734, 2735, 7, 0, 0, 0, 2735, 2736, 7, 4, 0, 0, 2736, 2737, 7, 3, 0, 0, 2737, 2738, 7, 22, 0, 0, 2738, 520, 1, 0, 0, 0, 2739, 2740, 7, 27, 0, 0, 2740, 2741, 7, 13, 0, 0, 2741, 2742, 7, 11, 0, 0, 2742, 2743, 7, 4, 0, 0, 2743, 2744, 7, 22, 0, 0, 2744, 522, 1, 0, 0, 0, 2745, 2746, 7, 27, 0, 0, 2746, 2747, 7, 13, 0, 0, 2747, 2748, 7, 11, 0, 0, 2748, 2749, 7, 4, 0, 0, 2749, 2750, 7, 22, 0, 0, 2750, 2751, 5, 95, 0, 0, 2751, 2752, 7, 22, 0, 0, 2752, 2753, 7, 10, 0, 0, 2753, 2754, 7, 6, 0, 0, 2754, 2755, 7, 4, 0, 0, 2755, 2756, 7, 6, 0, 0, 2756, 2757, 7, 0, 0, 0, 2757, 2758, 7, 1, 0, 0, 2758, 2759, 7, 4, 0, 0, 2759, 524, 1, 0, 0, 0, 2760, 2761, 7, 27, 0, 0, 2761, 2762, 7, 13, 0, 0, 2762, 2763, 7, 11, 0, 0, 2763, 2764, 7, 4, 0, 0, 2764, 2765, 7, 22, 0, 0, 2765, 2766, 5, 95, 0, 0, 2766, 2767, 7, 6, 0, 0, 2767, 2768, 7, 0, 0, 0, 2768, 2769, 7, 1, 0, 0, 2769, 2770, 7, 4, 0, 0, 2770, 526, 1, 0, 0, 0, 2771, 2772, 7, 10, 0, 0, 2772, 2773, 7, 18, 0, 0, 2773, 2774, 7, 5, 0, 0, 2774, 2775, 7, 6, 0, 0, 2775, 2776, 7, 7, 0, 0, 2776, 2777, 7, 10, 0, 0, 2777, 2778, 7, 21, 0, 0, 2778, 2779, 7, 6, 0, 0, 2779, 528, 1, 0, 0, 0, 2780, 2781, 7, 10, 0, 0, 2781, 2782, 7, 24, 0, 0, 2782, 2783, 7, 24, 0, 0, 2783, 2784, 7, 7, 0, 0, 2784, 2785, 7, 4, 0, 0, 2785, 2786, 7, 24, 0, 0, 2786, 2787, 7, 10, 0, 0, 2787, 2788, 7, 6, 0, 0, 2788, 2789, 7, 4, 0, 0, 2789, 530, 1, 0, 0, 0, 2790, 2791, 7, 10, 0, 0, 2791, 2792, 7, 24, 0, 0, 2792, 2793, 7, 24, 0, 0, 2793, 2794, 7, 7, 0, 0, 2794, 2795, 7, 4, 0, 0, 2795, 2796, 7, 24, 0, 0, 2796, 2797, 7, 10, 0, 0, 2797, 2798, 7, 6, 0, 0, 2798, 2799, 7, 4, 0, 0, 2799, 2800, 7, 5, 0, 0, 2800, 532, 1, 0, 0, 0, 2801, 2802, 7, 10, 0, 0, 2802, 2803, 7, 3, 0, 0, 2803, 2804, 7, 6, 0, 0, 2804, 2805, 7, 4, 0, 0, 2805, 2806, 7, 7, 0, 0, 2806, 534, 1, 0, 0, 0, 2807, 2808, 7, 21, 0, 0, 2808, 2809, 7, 10, 0, 0, 2809, 2810, 7, 6, 0, 0, 2810, 2811, 7, 10, 0, 0, 2811, 2812, 7, 3, 0, 0, 2812, 2813, 7, 13, 0, 0, 2813, 2814, 7, 24, 0, 0, 2814, 536, 1, 0, 0, 0, 2815, 2816, 7, 21, 0, 0, 2816, 2817, 7, 3, 0, 0, 2817, 2818, 7, 4, 0, 0, 2818, 2819, 7, 10, 0, 0, 2819, 2820, 7, 7, 0, 0, 2820, 538, 1, 0, 0, 0, 2821, 2822, 7, 21, 0, 0, 2822, 2823, 7, 3, 0, 0, 2823, 2824, 7, 13, 0, 0, 2824, 2825, 7, 11, 0, 0, 2825, 2826, 7, 4, 0, 0, 2826, 540, 1, 0, 0, 0, 2827, 2828, 7, 21, 0, 0, 2828, 2829, 7, 13, 0, 0, 2829, 2830, 7, 11, 0, 0, 2830, 2831, 7, 5, 0, 0, 2831, 2832, 7, 6, 0, 0, 2832, 2833, 7, 7, 0, 0, 2833, 2834, 7, 10, 0, 0, 2834, 2835, 7, 0, 0, 0, 2835, 2836, 7, 11, 0, 0, 2836, 2837, 7, 6, 0, 0, 2837, 542, 1, 0, 0, 0, 2838, 2839, 7, 21, 0, 0, 2839, 2840, 7, 8, 0, 0, 2840, 2841, 7, 7, 0, 0, 2841, 2842, 7, 7, 0, 0, 2842, 2843, 7, 4, 0, 0, 2843, 2844, 7, 11, 0, 0, 2844, 2845, 7, 6, 0, 0, 2845, 2846, 5, 95, 0, 0, 2846, 2847, 7, 7, 0, 0, 2847, 2848, 7, 13, 0, 0, 2848, 2849, 7, 3, 0, 0, 2849, 2850, 7, 4, 0, 0, 2850, 544, 1, 0, 0, 0, 2851, 2852, 7, 21, 0, 0, 2852, 2853, 7, 8, 0, 0, 2853, 2854, 7, 7, 0, 0, 2854, 2855, 7, 7, 0, 0, 2855, 2856, 7, 4, 0, 0, 2856, 2857, 7, 11, 0, 0, 2857, 2858, 7, 6, 0, 0, 2858, 2859, 5, 95, 0, 0, 2859, 2860, 7, 8, 0, 0, 2860, 2861, 7, 5, 0, 0, 2861, 2862, 7, 4, 0, 0, 2862, 2863, 7, 7, 0, 0, 2863, 546, 1, 0, 0, 0, 2864, 2865, 7, 22, 0, 0, 2865, 2866, 7, 10, 0, 0, 2866, 2867, 7, 6, 0, 0, 2867, 2868, 7, 10, 0, 0, 2868, 548, 1, 0, 0, 0, 2869, 2870, 7, 22, 0, 0, 2870, 2871, 7, 0, 0, 0, 2871, 2872, 7, 7, 0, 0, 2872, 2873, 7, 4, 0, 0, 2873, 2874, 7, 21, 0, 0, 2874, 2875, 7, 6, 0, 0, 2875, 2876, 7, 13, 0, 0, 2876, 2877, 7, 7, 0, 0, 2877, 2878, 7, 23, 0, 0, 2878, 550, 1, 0, 0, 0, 2879, 2880, 7, 22, 0, 0, 2880, 2881, 7, 7, 0, 0, 2881, 2882, 7, 23, 0, 0, 2882, 2883, 7, 7, 0, 0, 2883, 2884, 7, 8, 0, 0, 2884, 2885, 7, 11, 0, 0, 2885, 552, 1, 0, 0, 0, 2886, 2887, 7, 4, 0, 0, 2887, 2888, 7, 19, 0, 0, 2888, 2889, 7, 10, 0, 0, 2889, 2890, 7, 21, 0, 0, 2890, 2891, 7, 6, 0, 0, 2891, 554, 1, 0, 0, 0, 2892, 2893, 7, 4, 0, 0, 2893, 2894, 7, 19, 0, 0, 2894, 2895, 7, 0, 0, 0, 2895, 2896, 7, 5, 0, 0, 2896, 2897, 7, 6, 0, 0, 2897, 2898, 7, 0, 0, 0, 2898, 2899, 7, 11, 0, 0, 2899, 2900, 7, 24, 0, 0, 2900, 556, 1, 0, 0, 0, 2901, 2902, 7, 9, 0, 0, 2902, 2903, 7, 8, 0, 0, 2903, 2904, 7, 11, 0, 0, 2904, 2905, 7, 21, 0, 0, 2905, 2906, 7, 6, 0, 0, 2906, 2907, 7, 0, 0, 0, 2907, 2908, 7, 13, 0, 0, 2908, 2909, 7, 11, 0, 0, 2909, 558, 1, 0, 0, 0, 2910, 2911, 7, 24, 0, 0, 2911, 2912, 7, 28, 0, 0, 2912, 2913, 7, 3, 0, 0, 2913, 2914, 7, 5, 0, 0, 2914, 2915, 7, 6, 0, 0, 2915, 2916, 7, 10, 0, 0, 2916, 2917, 7, 6, 0, 0, 2917, 2918, 7, 8, 0, 0, 2918, 2919, 7, 5, 0, 0, 2919, 560, 1, 0, 0, 0, 2920, 2921, 7, 24, 0, 0, 2921, 2922, 7, 7, 0, 0, 2922, 2923, 7, 10, 0, 0, 2923, 2924, 7, 11, 0, 0, 2924, 2925, 7, 6, 0, 0, 2925, 562, 1, 0, 0, 0, 2926, 2927, 7, 0, 0, 0, 2927, 2928, 7, 11, 0, 0, 2928, 2929, 7, 5, 0, 0, 2929, 2930, 7, 6, 0, 0, 2930, 2931, 7, 10, 0, 0, 2931, 2932, 7, 11, 0, 0, 2932, 2933, 7, 6, 0, 0, 2933, 564, 1, 0, 0, 0, 2934, 2935, 7, 0, 0, 0, 2935, 2936, 7, 11, 0, 0, 2936, 2937, 7, 9, 0, 0, 2937, 2938, 7, 0, 0, 0, 2938, 2939, 7, 11, 0, 0, 2939, 2940, 7, 0, 0, 0, 2940, 2941, 7, 6, 0, 0, 2941, 2942, 7, 23, 0, 0, 2942, 566, 1, 0, 0, 0, 2943, 2944, 7, 11, 0, 0, 2944, 2945, 7, 8, 0, 0, 2945, 2946, 7, 1, 0, 0, 2946, 2947, 7, 18, 0, 0, 2947, 2948, 7, 4, 0, 0, 2948, 2949, 7, 7, 0, 0, 2949, 568, 1, 0, 0, 0, 2950, 2951, 7, 11, 0, 0, 2951, 2952, 7, 8, 0, 0, 2952, 2953, 7, 1, 0, 0, 2953, 2954, 7, 4, 0, 0, 2954, 2955, 7, 7, 0, 0, 2955, 2956, 7, 0, 0, 0, 2956, 2957, 7, 21, 0, 0, 2957, 570, 1, 0, 0, 0, 2958, 2959, 7, 13, 0, 0, 2959, 2960, 7, 11, 0, 0, 2960, 572, 1, 0, 0, 0, 2961, 2962, 7, 13, 0, 0, 2962, 2963, 7, 2, 0, 0, 2963, 2964, 7, 4, 0, 0, 2964, 2965, 7, 11, 0, 0, 2965, 574, 1, 0, 0, 0, 2966, 2967, 7, 2, 0, 0, 2967, 2968, 7, 10, 0, 0, 2968, 2969, 7, 7, 0, 0, 2969, 2970, 7, 6, 0, 0, 2970, 2971, 7, 0, 0, 0, 2971, 2972, 7, 6, 0, 0, 2972, 2973, 7, 0, 0, 0, 2973, 2974, 7, 13, 0, 0, 2974, 2975, 7, 11, 0, 0, 2975, 576, 1, 0, 0, 0, 2976, 2977, 7, 2, 0, 0, 2977, 2978, 7, 7, 0, 0, 2978, 2979, 7, 13, 0, 0, 2979, 2980, 7, 21, 0, 0, 2980, 2981, 7, 4, 0, 0, 2981, 2982, 7, 22, 0, 0, 2982, 2983, 7, 8, 0, 0, 2983, 2984, 7, 7, 0, 0, 2984, 2985, 7, 4, 0, 0, 2985, 578, 1, 0, 0, 0, 2986, 2987, 7, 2, 0, 0, 2987, 2988, 7, 7, 0, 0, 2988, 2989, 7, 13, 0, 0, 2989, 2990, 7, 22, 0, 0, 2990, 2991, 7, 8, 0, 0, 2991, 2992, 7, 21, 0, 0, 2992, 2993, 7, 6, 0, 0, 2993, 580, 1, 0, 0, 0, 2994, 2995, 7, 2, 0, 0, 2995, 2996, 7, 7, 0, 0, 2996, 2997, 7, 13, 0, 0, 2997, 2998, 7, 29, 0, 0, 2998, 2999, 7, 4, 0, 0, 2999, 3000, 7, 21, 0, 0, 3000, 3001, 7, 6, 0, 0, 3001, 582, 1, 0, 0, 0, 3002, 3003, 7, 28, 0, 0, 3003, 3004, 7, 8, 0, 0, 3004, 3005, 7, 4, 0, 0, 3005, 3006, 7, 7, 0, 0, 3006, 3007, 7, 23, 0, 0, 3007, 584, 1, 0, 0, 0, 3008, 3009, 7, 7, 0, 0, 3009, 3010, 7, 4, 0, 0, 3010, 3011, 7, 21, 0, 0, 3011, 3012, 7, 13, 0, 0, 3012, 3013, 7, 7, 0, 0, 3013, 3014, 7, 22, 0, 0, 3014, 3015, 7, 5, 0, 0, 3015, 586, 1, 0, 0, 0, 3016, 3017, 7, 7, 0, 0, 3017, 3018, 7, 4, 0, 0, 3018, 3019, 7, 9, 0, 0, 3019, 3020, 7, 4, 0, 0, 3020, 3021, 7, 7, 0, 0, 3021, 3022, 7, 4, 0, 0, 3022, 3023, 7, 11, 0, 0, 3023, 3024, 7, 21, 0, 0, 3024, 3025, 7, 4, 0, 0, 3025, 588, 1, 0, 0, 0, 3026, 3027, 7, 7, 0, 0, 3027, 3028, 7, 4, 0, 0, 3028, 3029, 7, 11, 0, 0, 3029, 3030, 7, 10, 0, 0, 3030, 3031, 7, 1, 0, 0, 3031, 3032, 7, 4, 0, 0, 3032, 590, 1, 0, 0, 0, 3033, 3034, 7, 7, 0, 0, 3034, 3035, 7, 4, 0, 0, 3035, 3036, 7, 25, 0, 0, 3036, 3037, 7, 13, 0, 0, 3037, 3038, 7, 12, 0, 0, 3038, 3039, 7, 4, 0, 0, 3039, 592, 1, 0, 0, 0, 3040, 3041, 7, 5, 0, 0, 3041, 3042, 7, 8, 0, 0, 3042, 3043, 7, 18, 0, 0, 3043, 3044, 7, 5, 0, 0, 3044, 3045, 7, 6, 0, 0, 3045, 3046, 7, 7, 0, 0, 3046, 3047, 7, 0, 0, 0, 3047, 3048, 7, 11, 0, 0, 3048, 3049, 7, 24, 0, 0, 3049, 594, 1, 0, 0, 0, 3050, 3051, 7, 5, 0, 0, 3051, 3052, 7, 23, 0, 0, 3052, 3053, 7, 5, 0, 0, 3053, 3054, 7, 6, 0, 0, 3054, 3055, 7, 4, 0, 0, 3055, 3056, 7, 1, 0, 0, 3056, 3057, 5, 95, 0, 0, 3057, 3058, 7, 8, 0, 0, 3058, 3059, 7, 5, 0, 0, 3059, 3060, 7, 4, 0, 0, 3060, 3061, 7, 7, 0, 0, 3061, 596, 1, 0, 0, 0, 3062, 3063, 7, 6, 0, 0, 3063, 3064, 7, 4, 0, 0, 3064, 3065, 7, 1, 0, 0, 3065, 3066, 7, 2, 0, 0, 3066, 3067, 7, 13, 0, 0, 3067, 3068, 7, 7, 0, 0, 3068, 3069, 7, 10, 0, 0, 3069, 3070, 7, 3, 0, 0, 3070, 598, 1, 0, 0, 0, 3071, 3072, 7, 8, 0, 0, 3072, 3073, 7, 11, 0, 0, 3073, 3074, 7, 0, 0, 0, 3074, 3075, 7, 28, 0, 0, 3075, 3076, 7, 8, 0, 0, 3076, 3077, 7, 4, 0, 0, 3077, 600, 1, 0, 0, 0, 3078, 3079, 7, 8, 0, 0, 3079, 3080, 7, 11, 0, 0, 3080, 3081, 7, 0, 0, 0, 3081, 3082, 7, 6, 0, 0, 3082, 602, 1, 0, 0, 0, 3083, 3084, 7, 25, 0, 0, 3084, 3085, 7, 10, 0, 0, 3085, 3086, 7, 3, 0, 0, 3086, 3087, 7, 8, 0, 0, 3087, 3088, 7, 4, 0, 0, 3088, 3089, 7, 5, 0, 0, 3089, 604, 1, 0, 0, 0, 3090, 3091, 7, 10, 0, 0, 3091, 3092, 7, 21, 0, 0, 3092, 3093, 7, 23, 0, 0, 3093, 3094, 7, 21, 0, 0, 3094, 3095, 7, 3, 0, 0, 3095, 3096, 7, 0, 0, 0, 3096, 3097, 7, 21, 0, 0, 3097, 606, 1, 0, 0, 0, 3098, 3099, 7, 18, 0, 0, 3099, 3100, 7, 0, 0, 0, 3100, 3101, 7, 11, 0, 0, 3101, 3102, 7, 22, 0, 0, 3102, 3103, 7, 0, 0, 0, 3103, 3104, 7, 11, 0, 0, 3104, 3105, 7, 24, 0, 0, 3105, 608, 1, 0, 0, 0, 3106, 3107, 7, 18, 0, 0, 3107, 3108, 7, 0, 0, 0, 3108, 3109, 7, 11, 0, 0, 3109, 3110, 7, 22, 0, 0, 3110, 3111, 7, 0, 0, 0, 3111, 3112, 7, 11, 0, 0, 3112, 3113, 7, 24, 0, 0, 3113, 3114, 7, 5, 0, 0, 3114, 610, 1, 0, 0, 0, 3115, 3116, 7, 21, 0, 0, 3116, 3117, 7, 13, 0, 0, 3117, 3118, 7, 11, 0, 0, 3118, 3119, 7, 11, 0, 0, 3119, 3120, 7, 4, 0, 0, 3120, 3121, 7, 21, 0, 0, 3121, 3122, 7, 6, 0, 0, 3122, 3123, 7, 0, 0, 0, 3123, 3124, 7, 11, 0, 0, 3124, 3125, 7, 24, 0, 0, 3125, 612, 1, 0, 0, 0, 3126, 3127, 7, 22, 0, 0, 3127, 3128, 7, 4, 0, 0, 3128, 3129, 7, 5, 0, 0, 3129, 3130, 7, 6, 0, 0, 3130, 3131, 7, 0, 0, 0, 3131, 3132, 7, 11, 0, 0, 3132, 3133, 7, 10, 0, 0, 3133, 3134, 7, 6, 0, 0, 3134, 3135, 7, 0, 0, 0, 3135, 3136, 7, 13, 0, 0, 3136, 3137, 7, 11, 0, 0, 3137, 614, 1, 0, 0, 0, 3138, 3139, 7, 22, 0, 0, 3139, 3140, 7, 0, 0, 0, 3140, 3141, 7, 9, 0, 0, 3141, 3142, 7, 9, 0, 0, 3142, 3143, 7, 4, 0, 0, 3143, 3144, 7, 7, 0, 0, 3144, 3145, 7, 4, 0, 0, 3145, 3146, 7, 11, 0, 0, 3146, 3147, 7, 6, 0, 0, 3147, 616, 1, 0, 0, 0, 3148, 3149, 7, 22, 0, 0, 3149, 3150, 7, 0, 0, 0, 3150, 3151, 7, 7, 0, 0, 3151, 3152, 7, 4, 0, 0, 3152, 3153, 7, 21, 0, 0, 3153, 3154, 7, 6, 0, 0, 3154, 3155, 7, 4, 0, 0, 3155, 3156, 7, 22, 0, 0, 3156, 618, 1, 0, 0, 0, 3157, 3158, 7, 4, 0, 0, 3158, 3159, 7, 22, 0, 0, 3159, 3160, 7, 24, 0, 0, 3160, 3161, 7, 4, 0, 0, 3161, 620, 1, 0, 0, 0, 3162, 3163, 7, 4, 0, 0, 3163, 3164, 7, 22, 0, 0, 3164, 3165, 7, 24, 0, 0, 3165, 3166, 7, 4, 0, 0, 3166, 3167, 7, 5, 0, 0, 3167, 622, 1, 0, 0, 0, 3168, 3169, 7, 4, 0, 0, 3169, 3170, 7, 3, 0, 0, 3170, 3171, 7, 4, 0, 0, 3171, 3172, 7, 1, 0, 0, 3172, 3173, 7, 4, 0, 0, 3173, 3174, 7, 11, 0, 0, 3174, 3175, 7, 6, 0, 0, 3175, 624, 1, 0, 0, 0, 3176, 3177, 7, 4, 0, 0, 3177, 3178, 7, 3, 0, 0, 3178, 3179, 7, 4, 0, 0, 3179, 3180, 7, 1, 0, 0, 3180, 3181, 7, 4, 0, 0, 3181, 3182, 7, 11, 0, 0, 3182, 3183, 7, 6, 0, 0, 3183, 3184, 7, 5, 0, 0, 3184, 626, 1, 0, 0, 0, 3185, 3186, 7, 9, 0, 0, 3186, 3187, 7, 0, 0, 0, 3187, 3188, 7, 7, 0, 0, 3188, 3189, 7, 5, 0, 0, 3189, 3190, 7, 6, 0, 0, 3190, 628, 1, 0, 0, 0, 3191, 3192, 7, 24, 0, 0, 3192, 3193, 7, 7, 0, 0, 3193, 3194, 7, 10, 0, 0, 3194, 3195, 7, 2, 0, 0, 3195, 3196, 7, 26, 0, 0, 3196, 630, 1, 0, 0, 0, 3197, 3198, 7, 24, 0, 0, 3198, 3199, 7, 7, 0, 0, 3199, 3200, 7, 13, 0, 0, 3200, 3201, 7, 8, 0, 0, 3201, 3202, 7, 2, 0, 0, 3202, 3203, 7, 5, 0, 0, 3203, 632, 1, 0, 0, 0, 3204, 3205, 7, 12, 0, 0, 3205, 3206, 7, 4, 0, 0, 3206, 3207, 7, 4, 0, 0, 3207, 3208, 7, 2, 0, 0, 3208, 634, 1, 0, 0, 0, 3209, 3210, 7, 3, 0, 0, 3210, 3211, 7, 10, 0, 0, 3211, 3212, 7, 18, 0, 0, 3212, 3213, 7, 4, 0, 0, 3213, 3214, 7, 3, 0, 0, 3214, 636, 1, 0, 0, 0, 3215, 3216, 7, 3, 0, 0, 3216, 3217, 7, 10, 0, 0, 3217, 3218, 7, 18, 0, 0, 3218, 3219, 7, 4, 0, 0, 3219, 3220, 7, 3, 0, 0, 3220, 3221, 7, 4, 0, 0, 3221, 3222, 7, 22, 0, 0, 3222, 638, 1, 0, 0, 0, 3223, 3224, 7, 3, 0, 0, 3224, 3225, 7, 10, 0, 0, 3225, 3226, 7, 18, 0, 0, 3226, 3227, 7, 4, 0, 0, 3227, 3228, 7, 3, 0, 0, 3228, 3229, 7, 5, 0, 0, 3229, 640, 1, 0, 0, 0, 3230, 3231, 7, 3, 0, 0, 3231, 3232, 7, 10, 0, 0, 3232, 3233, 7, 5, 0, 0, 3233, 3234, 7, 6, 0, 0, 3234, 642, 1, 0, 0, 0, 3235, 3236, 7, 11, 0, 0, 3236, 3237, 7, 9, 0, 0, 3237, 3238, 7, 21, 0, 0, 3238, 644, 1, 0, 0, 0, 3239, 3240, 7, 11, 0, 0, 3240, 3241, 7, 9, 0, 0, 3241, 3242, 7, 22, 0, 0, 3242, 646, 1, 0, 0, 0, 3243, 3244, 7, 11, 0, 0, 3244, 3245, 7, 9, 0, 0, 3245, 3246, 7, 12, 0, 0, 3246, 3247, 7, 21, 0, 0, 3247, 648, 1, 0, 0, 0, 3248, 3249, 7, 11, 0, 0, 3249, 3250, 7, 9, 0, 0, 3250, 3251, 7, 12, 0, 0, 3251, 3252, 7, 22, 0, 0, 3252, 650, 1, 0, 0, 0, 3253, 3254, 7, 11, 0, 0, 3254, 3255, 7, 13, 0, 0, 3255, 652, 1, 0, 0, 0, 3256, 3257, 7, 11, 0, 0, 3257, 3258, 7, 13, 0, 0, 3258, 3259, 7, 22, 0, 0, 3259, 3260, 7, 4, 0, 0, 3260, 654, 1, 0, 0, 0, 3261, 3262, 7, 11, 0, 0, 3262, 3263, 7, 13, 0, 0, 3263, 3264, 7, 7, 0, 0, 3264, 3265, 7, 1, 0, 0, 3265, 3266, 7, 10, 0, 0, 3266, 3267, 7, 3, 0, 0, 3267, 3268, 7, 0, 0, 0, 3268, 3269, 7, 27, 0, 0, 3269, 3270, 7, 4, 0, 0, 3270, 3271, 7, 22, 0, 0, 3271, 656, 1, 0, 0, 0, 3272, 3273, 7, 13, 0, 0, 3273, 3274, 7, 11, 0, 0, 3274, 3275, 7, 3, 0, 0, 3275, 3276, 7, 23, 0, 0, 3276, 658, 1, 0, 0, 0, 3277, 3278, 7, 13, 0, 0, 3278, 3279, 7, 7, 0, 0, 3279, 3280, 7, 22, 0, 0, 3280, 3281, 7, 0, 0, 0, 3281, 3282, 7, 11, 0, 0, 3282, 3283, 7, 10, 0, 0, 3283, 3284, 7, 3, 0, 0, 3284, 3285, 7, 0, 0, 0, 3285, 3286, 7, 6, 0, 0, 3286, 3287, 7, 23, 0, 0, 3287, 660, 1, 0, 0, 0, 3288, 3289, 7, 2, 0, 0, 3289, 3290, 7, 7, 0, 0, 3290, 3291, 7, 13, 0, 0, 3291, 3292, 7, 2, 0, 0, 3292, 3293, 7, 4, 0, 0, 3293, 3294, 7, 7, 0, 0, 3294, 3295, 7, 6, 0, 0, 3295, 3296, 7, 23, 0, 0, 3296, 662, 1, 0, 0, 0, 3297, 3298, 7, 7, 0, 0, 3298, 3299, 7, 4, 0, 0, 3299, 3300, 7, 10, 0, 0, 3300, 3301, 7, 22, 0, 0, 3301, 664, 1, 0, 0, 0, 3302, 3303, 7, 7, 0, 0, 3303, 3304, 7, 4, 0, 0, 3304, 3305, 7, 3, 0, 0, 3305, 3306, 7, 10, 0, 0, 3306, 3307, 7, 6, 0, 0, 3307, 3308, 7, 0, 0, 0, 3308, 3309, 7, 13, 0, 0, 3309, 3310, 7, 11, 0, 0, 3310, 3311, 7, 5, 0, 0, 3311, 3312, 7, 26, 0, 0, 3312, 3313, 7, 0, 0, 0, 3313, 3314, 7, 2, 0, 0, 3314, 666, 1, 0, 0, 0, 3315, 3316, 7, 7, 0, 0, 3316, 3317, 7, 4, 0, 0, 3317, 3318, 7, 3, 0, 0, 3318, 3319, 7, 10, 0, 0, 3319, 3320, 7, 6, 0, 0, 3320, 3321, 7, 0, 0, 0, 3321, 3322, 7, 13, 0, 0, 3322, 3323, 7, 11, 0, 0, 3323, 3324, 7, 5, 0, 0, 3324, 3325, 7, 26, 0, 0, 3325, 3326, 7, 0, 0, 0, 3326, 3327, 7, 2, 0, 0, 3327, 3328, 7, 5, 0, 0, 3328, 668, 1, 0, 0, 0, 3329, 3330, 7, 7, 0, 0, 3330, 3331, 7, 4, 0, 0, 3331, 3332, 7, 2, 0, 0, 3332, 3333, 7, 4, 0, 0, 3333, 3334, 7, 10, 0, 0, 3334, 3335, 7, 6, 0, 0, 3335, 3336, 7, 10, 0, 0, 3336, 3337, 7, 18, 0, 0, 3337, 3338, 7, 3, 0, 0, 3338, 3339, 7, 4, 0, 0, 3339, 670, 1, 0, 0, 0, 3340, 3341, 7, 5, 0, 0, 3341, 3342, 7, 26, 0, 0, 3342, 3343, 7, 13, 0, 0, 3343, 3344, 7, 7, 0, 0, 3344, 3345, 7, 6, 0, 0, 3345, 3346, 7, 4, 0, 0, 3346, 3347, 7, 5, 0, 0, 3347, 3348, 7, 6, 0, 0, 3348, 672, 1, 0, 0, 0, 3349, 3350, 7, 5, 0, 0, 3350, 3351, 7, 0, 0, 0, 3351, 3352, 7, 1, 0, 0, 3352, 3353, 7, 2, 0, 0, 3353, 3354, 7, 3, 0, 0, 3354, 3355, 7, 4, 0, 0, 3355, 674, 1, 0, 0, 0, 3356, 3357, 7, 5, 0, 0, 3357, 3358, 7, 13, 0, 0, 3358, 3359, 7, 8, 0, 0, 3359, 3360, 7, 7, 0, 0, 3360, 3361, 7, 21, 0, 0, 3361, 3362, 7, 4, 0, 0, 3362, 676, 1, 0, 0, 0, 3363, 3364, 7, 6, 0, 0, 3364, 3365, 7, 10, 0, 0, 3365, 3366, 7, 18, 0, 0, 3366, 3367, 7, 3, 0, 0, 3367, 3368, 7, 4, 0, 0, 3368, 678, 1, 0, 0, 0, 3369, 3370, 7, 6, 0, 0, 3370, 3371, 7, 4, 0, 0, 3371, 3372, 7, 1, 0, 0, 3372, 3373, 7, 2, 0, 0, 3373, 680, 1, 0, 0, 0, 3374, 3375, 7, 6, 0, 0, 3375, 3376, 7, 13, 0, 0, 3376, 682, 1, 0, 0, 0, 3377, 3378, 7, 6, 0, 0, 3378, 3379, 7, 7, 0, 0, 3379, 3380, 7, 10, 0, 0, 3380, 3381, 7, 0, 0, 0, 3381, 3382, 7, 3, 0, 0, 3382, 684, 1, 0, 0, 0, 3383, 3384, 7, 6, 0, 0, 3384, 3385, 7, 7, 0, 0, 3385, 3386, 7, 10, 0, 0, 3386, 3387, 7, 11, 0, 0, 3387, 3388, 7, 5, 0, 0, 3388, 3389, 7, 10, 0, 0, 3389, 3390, 7, 21, 0, 0, 3390, 3391, 7, 6, 0, 0, 3391, 3392, 7, 0, 0, 0, 3392, 3393, 7, 13, 0, 0, 3393, 3394, 7, 11, 0, 0, 3394, 686, 1, 0, 0, 0, 3395, 3396, 7, 6, 0, 0, 3396, 3397, 7, 23, 0, 0, 3397, 3398, 7, 2, 0, 0, 3398, 3399, 7, 4, 0, 0, 3399, 688, 1, 0, 0, 0, 3400, 3401, 7, 8, 0, 0, 3401, 3402, 7, 11, 0, 0, 3402, 3403, 7, 22, 0, 0, 3403, 3404, 7, 0, 0, 0, 3404, 3405, 7, 7, 0, 0, 3405, 3406, 7, 4, 0, 0, 3406, 3407, 7, 21, 0, 0, 3407, 3408, 7, 6, 0, 0, 3408, 3409, 7, 4, 0, 0, 3409, 3410, 7, 22, 0, 0, 3410, 690, 1, 0, 0, 0, 3411, 3412, 7, 25, 0, 0, 3412, 3413, 7, 4, 0, 0, 3413, 3414, 7, 7, 0, 0, 3414, 3415, 7, 6, 0, 0, 3415, 3416, 7, 4, 0, 0, 3416, 3417, 7, 19, 0, 0, 3417, 692, 1, 0, 0, 0, 3418, 3419, 7, 14, 0, 0, 3419, 3420, 7, 10, 0, 0, 3420, 3421, 7, 3, 0, 0, 3421, 3422, 7, 12, 0, 0, 3422, 694, 1, 0, 0, 0, 3423, 3424, 7, 14, 0, 0, 3424, 3425, 7, 0, 0, 0, 3425, 3426, 7, 6, 0, 0, 3426, 3427, 7, 26, 0, 0, 3427, 3428, 7, 13, 0, 0, 3428, 3429, 7, 8, 0, 0, 3429, 3430, 7, 6, 0, 0, 3430, 696, 1, 0, 0, 0, 3431, 3432, 7, 14, 0, 0, 3432, 3433, 7, 7, 0, 0, 3433, 3434, 7, 0, 0, 0, 3434, 3435, 7, 6, 0, 0, 3435, 3436, 7, 4, 0, 0, 3436, 698, 1, 0, 0, 0, 3437, 3438, 7, 27, 0, 0, 3438, 3439, 7, 13, 0, 0, 3439, 3440, 7, 11, 0, 0, 3440, 3441, 7, 4, 0, 0, 3441, 700, 1, 0, 0, 0, 3442, 3445, 3, 707, 353, 0, 3443, 3445, 3, 705, 352, 0, 3444, 3442, 1, 0, 0, 0, 3444, 3443, 1, 0, 0, 0, 3445, 702, 1, 0, 0, 0, 3446, 3450, 3, 713, 356, 0, 3447, 3449, 3, 715, 357, 0, 3448, 3447, 1, 0, 0, 0, 3449, 3452, 1, 0, 0, 0, 3450, 3448, 1, 0, 0, 0, 3450, 3451, 1, 0, 0, 0, 3451, 704, 1, 0, 0, 0, 3452, 3450, 1, 0, 0, 0, 3453, 3455, 3, 715, 357, 0, 3454, 3453, 1, 0, 0, 0, 3455, 3456, 1, 0, 0, 0, 3456, 3454, 1, 0, 0, 0, 3456, 3457, 1, 0, 0, 0, 3457, 706, 1, 0, 0, 0, 3458, 3461, 3, 9, 4, 0, 3459, 3461, 3, 11, 5, 0, 3460, 3458, 1, 0, 0, 0, 3460, 3459, 1, 0, 0, 0, 3461, 708, 1, 0, 0, 0, 3462, 3463, 3, 731, 365, 0, 3463, 3464, 3, 3, 1, 0, 3464, 710, 1, 0, 0, 0, 3465, 3466, 3, 791, 395, 0, 3466, 3467, 3, 3, 1, 0, 3467, 712, 1, 0, 0, 0, 3468, 3471, 3, 717, 358, 0, 3469, 3471, 3, 867, 433, 0, 3470, 3468, 1, 0, 0, 0, 3470, 3469, 1, 0, 0, 0, 3471, 714, 1, 0, 0, 0, 3472, 3473, 3, 719, 359, 0, 3473, 716, 1, 0, 0, 0, 3474, 3475, 7, 30, 0, 0, 3475, 718, 1, 0, 0, 0, 3476, 3477, 7, 31, 0, 0, 3477, 720, 1, 0, 0, 0, 3478, 3479, 5, 124, 0, 0, 3479, 3480, 5, 43, 0, 0, 3480, 3481, 5, 124, 0, 0, 3481, 722, 1, 0, 0, 0, 3482, 3483, 5, 93, 0, 0, 3483, 3484, 5, 45, 0, 0, 3484, 3485, 5, 62, 0, 0, 3485, 724, 1, 0, 0, 0, 3486, 3487, 5, 93, 0, 0, 3487, 3488, 5, 126, 0, 0, 3488, 3489, 5, 62, 0, 0, 3489, 726, 1, 0, 0, 0, 3490, 3491, 5, 124, 0, 0, 3491, 3492, 5, 124, 0, 0, 3492, 728, 1, 0, 0, 0, 3493, 3494, 5, 58, 0, 0, 3494, 3495, 5, 58, 0, 0, 3495, 730, 1, 0, 0, 0, 3496, 3497, 5, 36, 0, 0, 3497, 3498, 5, 36, 0, 0, 3498, 732, 1, 0, 0, 0, 3499, 3500, 5, 46, 0, 0, 3500, 3501, 5, 46, 0, 0, 3501, 734, 1, 0, 0, 0, 3502, 3503, 5, 62, 0, 0, 3503, 3504, 5, 61, 0, 0, 3504, 736, 1, 0, 0, 0, 3505, 3506, 5, 60, 0, 0, 3506, 3507, 5, 45, 0, 0, 3507, 738, 1, 0, 0, 0, 3508, 3509, 5, 60, 0, 0, 3509, 3510, 5, 126, 0, 0, 3510, 740, 1, 0, 0, 0, 3511, 3512, 5, 60, 0, 0, 3512, 3513, 5, 45, 0, 0, 3513, 3514, 5, 91, 0, 0, 3514, 742, 1, 0, 0, 0, 3515, 3516, 5, 60, 0, 0, 3516, 3517, 5, 126, 0, 0, 3517, 3518, 5, 91, 0, 0, 3518, 744, 1, 0, 0, 0, 3519, 3520, 5, 60, 0, 0, 3520, 3521, 5, 45, 0, 0, 3521, 3522, 5, 62, 0, 0, 3522, 746, 1, 0, 0, 0, 3523, 3524, 5, 60, 0, 0, 3524, 3525, 5, 45, 0, 0, 3525, 3526, 5, 47, 0, 0, 3526, 748, 1, 0, 0, 0, 3527, 3528, 5, 60, 0, 0, 3528, 3529, 5, 126, 0, 0, 3529, 3530, 5, 47, 0, 0, 3530, 750, 1, 0, 0, 0, 3531, 3532, 5, 60, 0, 0, 3532, 3533, 5, 61, 0, 0, 3533, 752, 1, 0, 0, 0, 3534, 3535, 5, 45, 0, 0, 3535, 3536, 5, 91, 0, 0, 3536, 754, 1, 0, 0, 0, 3537, 3538, 5, 45, 0, 0, 3538, 3539, 5, 47, 0, 0, 3539, 756, 1, 0, 0, 0, 3540, 3541, 5, 60, 0, 0, 3541, 3542, 5, 62, 0, 0, 3542, 758, 1, 0, 0, 0, 3543, 3544, 5, 45, 0, 0, 3544, 3545, 5, 62, 0, 0, 3545, 760, 1, 0, 0, 0, 3546, 3547, 5, 93, 0, 0, 3547, 3548, 5, 45, 0, 0, 3548, 762, 1, 0, 0, 0, 3549, 3550, 5, 93, 0, 0, 3550, 3551, 5, 126, 0, 0, 3551, 764, 1, 0, 0, 0, 3552, 3553, 5, 61, 0, 0, 3553, 3554, 5, 62, 0, 0, 3554, 766, 1, 0, 0, 0, 3555, 3556, 5, 47, 0, 0, 3556, 3557, 5, 45, 0, 0, 3557, 768, 1, 0, 0, 0, 3558, 3559, 5, 47, 0, 0, 3559, 3560, 5, 45, 0, 0, 3560, 3561, 5, 62, 0, 0, 3561, 770, 1, 0, 0, 0, 3562, 3563, 5, 47, 0, 0, 3563, 3564, 5, 126, 0, 0, 3564, 772, 1, 0, 0, 0, 3565, 3566, 5, 47, 0, 0, 3566, 3567, 5, 126, 0, 0, 3567, 3568, 5, 62, 0, 0, 3568, 774, 1, 0, 0, 0, 3569, 3570, 5, 126, 0, 0, 3570, 3571, 5, 91, 0, 0, 3571, 776, 1, 0, 0, 0, 3572, 3573, 5, 126, 0, 0, 3573, 3574, 5, 62, 0, 0, 3574, 778, 1, 0, 0, 0, 3575, 3576, 5, 126, 0, 0, 3576, 3577, 5, 47, 0, 0, 3577, 780, 1, 0, 0, 0, 3578, 3579, 5, 38, 0, 0, 3579, 782, 1, 0, 0, 0, 3580, 3581, 5, 42, 0, 0, 3581, 784, 1, 0, 0, 0, 3582, 3583, 5, 58, 0, 0, 3583, 786, 1, 0, 0, 0, 3584, 3585, 5, 44, 0, 0, 3585, 788, 1, 0, 0, 0, 3586, 3587, 5, 64, 0, 0, 3587, 790, 1, 0, 0, 0, 3588, 3589, 5, 36, 0, 0, 3589, 792, 1, 0, 0, 0, 3590, 3591, 5, 34, 0, 0, 3591, 794, 1, 0, 0, 0, 3592, 3593, 5, 61, 0, 0, 3593, 796, 1, 0, 0, 0, 3594, 3595, 5, 33, 0, 0, 3595, 798, 1, 0, 0, 0, 3596, 3597, 5, 62, 0, 0, 3597, 800, 1, 0, 0, 0, 3598, 3599, 5, 96, 0, 0, 3599, 802, 1, 0, 0, 0, 3600, 3601, 5, 123, 0, 0, 3601, 804, 1, 0, 0, 0, 3602, 3603, 5, 91, 0, 0, 3603, 806, 1, 0, 0, 0, 3604, 3605, 5, 40, 0, 0, 3605, 808, 1, 0, 0, 0, 3606, 3607, 5, 60, 0, 0, 3607, 810, 1, 0, 0, 0, 3608, 3609, 5, 45, 0, 0, 3609, 812, 1, 0, 0, 0, 3610, 3611, 5, 37, 0, 0, 3611, 814, 1, 0, 0, 0, 3612, 3613, 5, 46, 0, 0, 3613, 816, 1, 0, 0, 0, 3614, 3615, 5, 43, 0, 0, 3615, 818, 1, 0, 0, 0, 3616, 3617, 5, 63, 0, 0, 3617, 820, 1, 0, 0, 0, 3618, 3619, 5, 39, 0, 0, 3619, 822, 1, 0, 0, 0, 3620, 3621, 5, 92, 0, 0, 3621, 824, 1, 0, 0, 0, 3622, 3623, 5, 125, 0, 0, 3623, 826, 1, 0, 0, 0, 3624, 3625, 5, 93, 0, 0, 3625, 828, 1, 0, 0, 0, 3626, 3627, 5, 41, 0, 0, 3627, 830, 1, 0, 0, 0, 3628, 3629, 5, 47, 0, 0, 3629, 832, 1, 0, 0, 0, 3630, 3631, 5, 126, 0, 0, 3631, 834, 1, 0, 0, 0, 3632, 3633, 5, 95, 0, 0, 3633, 836, 1, 0, 0, 0, 3634, 3635, 5, 124, 0, 0, 3635, 838, 1, 0, 0, 0, 3636, 3637, 7, 32, 0, 0, 3637, 840, 1, 0, 0, 0, 3638, 3639, 7, 33, 0, 0, 3639, 842, 1, 0, 0, 0, 3640, 3641, 7, 34, 0, 0, 3641, 844, 1, 0, 0, 0, 3642, 3643, 7, 35, 0, 0, 3643, 846, 1, 0, 0, 0, 3644, 3646, 3, 849, 424, 0, 3645, 3644, 1, 0, 0, 0, 3646, 3647, 1, 0, 0, 0, 3647, 3645, 1, 0, 0, 0, 3647, 3648, 1, 0, 0, 0, 3648, 3649, 1, 0, 0, 0, 3649, 3650, 6, 423, 0, 0, 3650, 848, 1, 0, 0, 0, 3651, 3663, 3, 865, 432, 0, 3652, 3663, 3, 869, 434, 0, 3653, 3663, 3, 871, 435, 0, 3654, 3663, 3, 873, 436, 0, 3655, 3663, 3, 877, 438, 0, 3656, 3663, 3, 861, 430, 0, 3657, 3663, 3, 859, 429, 0, 3658, 3663, 3, 857, 428, 0, 3659, 3663, 3, 879, 439, 0, 3660, 3663, 3, 875, 437, 0, 3661, 3663, 7, 36, 0, 0, 3662, 3651, 1, 0, 0, 0, 3662, 3652, 1, 0, 0, 0, 3662, 3653, 1, 0, 0, 0, 3662, 3654, 1, 0, 0, 0, 3662, 3655, 1, 0, 0, 0, 3662, 3656, 1, 0, 0, 0, 3662, 3657, 1, 0, 0, 0, 3662, 3658, 1, 0, 0, 0, 3662, 3659, 1, 0, 0, 0, 3662, 3660, 1, 0, 0, 0, 3662, 3661, 1, 0, 0, 0, 3663, 850, 1, 0, 0, 0, 3664, 3665, 5, 47, 0, 0, 3665, 3666, 5, 42, 0, 0, 3666, 3670, 1, 0, 0, 0, 3667, 3669, 9, 0, 0, 0, 3668, 3667, 1, 0, 0, 0, 3669, 3672, 1, 0, 0, 0, 3670, 3671, 1, 0, 0, 0, 3670, 3668, 1, 0, 0, 0, 3671, 3673, 1, 0, 0, 0, 3672, 3670, 1, 0, 0, 0, 3673, 3674, 5, 42, 0, 0, 3674, 3675, 5, 47, 0, 0, 3675, 3676, 1, 0, 0, 0, 3676, 3677, 6, 425, 0, 0, 3677, 852, 1, 0, 0, 0, 3678, 3679, 5, 47, 0, 0, 3679, 3680, 5, 47, 0, 0, 3680, 3684, 1, 0, 0, 0, 3681, 3683, 8, 37, 0, 0, 3682, 3681, 1, 0, 0, 0, 3683, 3686, 1, 0, 0, 0, 3684, 3682, 1, 0, 0, 0, 3684, 3685, 1, 0, 0, 0, 3685, 3687, 1, 0, 0, 0, 3686, 3684, 1, 0, 0, 0, 3687, 3688, 6, 426, 0, 0, 3688, 854, 1, 0, 0, 0, 3689, 3690, 5, 45, 0, 0, 3690, 3691, 5, 45, 0, 0, 3691, 3695, 1, 0, 0, 0, 3692, 3694, 8, 37, 0, 0, 3693, 3692, 1, 0, 0, 0, 3694, 3697, 1, 0, 0, 0, 3695, 3693, 1, 0, 0, 0, 3695, 3696, 1, 0, 0, 0, 3696, 3698, 1, 0, 0, 0, 3697, 3695, 1, 0, 0, 0, 3698, 3699, 6, 427, 0, 0, 3699, 856, 1, 0, 0, 0, 3700, 3701, 7, 38, 0, 0, 3701, 858, 1, 0, 0, 0, 3702, 3703, 7, 39, 0, 0, 3703, 860, 1, 0, 0, 0, 3704, 3705, 7, 40, 0, 0, 3705, 862, 1, 0, 0, 0, 3706, 3707, 7, 41, 0, 0, 3707, 864, 1, 0, 0, 0, 3708, 3709, 7, 42, 0, 0, 3709, 866, 1, 0, 0, 0, 3710, 3711, 7, 43, 0, 0, 3711, 868, 1, 0, 0, 0, 3712, 3713, 7, 44, 0, 0, 3713, 870, 1, 0, 0, 0, 3714, 3715, 7, 45, 0, 0, 3715, 872, 1, 0, 0, 0, 3716, 3717, 7, 46, 0, 0, 3717, 874, 1, 0, 0, 0, 3718, 3719, 7, 47, 0, 0, 3719, 876, 1, 0, 0, 0, 3720, 3721, 7, 48, 0, 0, 3721, 878, 1, 0, 0, 0, 3722, 3723, 7, 49, 0, 0, 3723, 880, 1, 0, 0, 0, 42, 0, 889, 909, 912, 917, 922, 932, 941, 950, 957, 959, 963, 965, 969, 971, 984, 1034, 1041, 1048, 1053, 1082, 1087, 1098, 1105, 1110, 1114, 1122, 1127, 1133, 1138, 1144, 1149, 3444, 3450, 3456, 3460, 3470, 3647, 3662, 3670, 3684, 3695, 1, 0, 1, 0] \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_20240412Lexer.java b/developer/javac/ANTLR/GQL_20240412Lexer.java new file mode 100644 index 0000000..d606995 --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240412Lexer.java @@ -0,0 +1,3212 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class GQL_20240412Lexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + IMPLIES=1, BOOLEAN_LITERAL=2, SINGLE_QUOTED_CHARACTER_SEQUENCE=3, DOUBLE_QUOTED_CHARACTER_SEQUENCE=4, + ACCENT_QUOTED_CHARACTER_SEQUENCE=5, NO_ESCAPE=6, BYTE_STRING_LITERAL=7, + UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX=8, UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX=9, + UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=10, + UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX=11, UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX=12, + UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=13, + UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX=14, UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX=15, + UNSIGNED_DECIMAL_INTEGER=16, UNSIGNED_HEXADECIMAL_INTEGER=17, UNSIGNED_OCTAL_INTEGER=18, + UNSIGNED_BINARY_INTEGER=19, ABS=20, ACOS=21, ALL=22, ALL_DIFFERENT=23, + AND=24, ANY=25, ARRAY=26, AS=27, ASC=28, ASCENDING=29, ASIN=30, AT=31, + ATAN=32, AVG=33, BIG=34, BIGINT=35, BINARY=36, BOOL=37, BOOLEAN=38, BOTH=39, + BTRIM=40, BY=41, BYTE_LENGTH=42, BYTES=43, CALL=44, CARDINALITY=45, CASE=46, + CAST=47, CEIL=48, CEILING=49, CHAR=50, CHAR_LENGTH=51, CHARACTER_LENGTH=52, + CHARACTERISTICS=53, CLOSE=54, COALESCE=55, COLLECT_LIST=56, COMMIT=57, + COPY=58, COS=59, COSH=60, COT=61, COUNT=62, CREATE=63, CURRENT_DATE=64, + CURRENT_GRAPH=65, CURRENT_PROPERTY_GRAPH=66, CURRENT_SCHEMA=67, CURRENT_TIME=68, + CURRENT_TIMESTAMP=69, DATE=70, DATETIME=71, DAY=72, DEC=73, DECIMAL=74, + DEGREES=75, DELETE=76, DESC=77, DESCENDING=78, DETACH=79, DISTINCT=80, + DOUBLE=81, DROP=82, DURATION=83, DURATION_BETWEEN=84, ELEMENT_ID=85, ELSE=86, + END=87, EXCEPT=88, EXISTS=89, EXP=90, FILTER=91, FINISH=92, FLOAT=93, + FLOAT16=94, FLOAT32=95, FLOAT64=96, FLOAT128=97, FLOAT256=98, FLOOR=99, + FOR=100, FROM=101, GROUP=102, HAVING=103, HOME_GRAPH=104, HOME_PROPERTY_GRAPH=105, + HOME_SCHEMA=106, HOUR=107, IF=108, IN=109, INSERT=110, INT=111, INTEGER=112, + INT8=113, INTEGER8=114, INT16=115, INTEGER16=116, INT32=117, INTEGER32=118, + INT64=119, INTEGER64=120, INT128=121, INTEGER128=122, INT256=123, INTEGER256=124, + INTERSECT=125, INTERVAL=126, IS=127, LEADING=128, LEFT=129, LET=130, LIKE=131, + LIMIT=132, LIST=133, LN=134, LOCAL=135, LOCAL_DATETIME=136, LOCAL_TIME=137, + LOCAL_TIMESTAMP=138, LOG=139, LOG10=140, LOWER=141, LTRIM=142, MATCH=143, + MAX=144, MIN=145, MINUTE=146, MOD=147, MONTH=148, NEXT=149, NODETACH=150, + NORMALIZE=151, NOT=152, NOTHING=153, NULL=154, NULLS=155, NULLIF=156, + OCTET_LENGTH=157, OF=158, OFFSET=159, OPTIONAL=160, OR=161, ORDER=162, + OTHERWISE=163, PARAMETER=164, PARAMETERS=165, PATH=166, PATH_LENGTH=167, + PATHS=168, PERCENTILE_CONT=169, PERCENTILE_DISC=170, POWER=171, PRECISION=172, + PROPERTY_EXISTS=173, RADIANS=174, REAL=175, RECORD=176, REMOVE=177, REPLACE=178, + RESET=179, RETURN=180, RIGHT=181, ROLLBACK=182, RTRIM=183, SAME=184, SCHEMA=185, + SECOND=186, SELECT=187, SESSION=188, SESSION_USER=189, SET=190, SIGNED=191, + SIN=192, SINH=193, SIZE=194, SKIP_RESERVED_WORD=195, SMALL=196, SMALLINT=197, + SQRT=198, START=199, STDDEV_POP=200, STDDEV_SAMP=201, STRING=202, SUM=203, + TAN=204, TANH=205, THEN=206, TIME=207, TIMESTAMP=208, TRAILING=209, TRIM=210, + TYPED=211, UBIGINT=212, UINT=213, UINT8=214, UINT16=215, UINT32=216, UINT64=217, + UINT128=218, UINT256=219, UNION=220, UNSIGNED=221, UPPER=222, USE=223, + USMALLINT=224, VALUE=225, VARBINARY=226, VARCHAR=227, VARIABLE=228, WHEN=229, + WHERE=230, WITH=231, XOR=232, YEAR=233, YIELD=234, ZONED=235, ZONED_DATETIME=236, + ZONED_TIME=237, ABSTRACT=238, AGGREGATE=239, AGGREGATES=240, ALTER=241, + CATALOG=242, CLEAR=243, CLONE=244, CONSTRAINT=245, CURRENT_ROLE=246, CURRENT_USER=247, + DATA=248, DIRECTORY=249, DRYRUN=250, EXACT=251, EXISTING=252, FUNCTION=253, + GQLSTATUS=254, GRANT=255, INSTANT=256, INFINITY=257, NUMBER=258, NUMERIC=259, + ON=260, OPEN=261, PARTITION=262, PROCEDURE=263, PRODUCT=264, PROJECT=265, + QUERY=266, RECORDS=267, REFERENCE=268, RENAME=269, REVOKE=270, SUBSTRING=271, + SYSTEM_USER=272, TEMPORAL=273, UNIQUE=274, UNIT=275, VALUES=276, ACYCLIC=277, + BINDING=278, BINDINGS=279, CONNECTING=280, DESTINATION=281, DIFFERENT=282, + DIRECTED=283, EDGE=284, EDGES=285, ELEMENT=286, ELEMENTS=287, FIRST=288, + GRAPH=289, GROUPS=290, KEEP=291, LABEL=292, LABELED=293, LABELS=294, LAST=295, + NFC=296, NFD=297, NFKC=298, NFKD=299, NO=300, NODE=301, NORMALIZED=302, + ONLY=303, ORDINALITY=304, PROPERTY=305, READ=306, RELATIONSHIP=307, RELATIONSHIPS=308, + REPEATABLE=309, SHORTEST=310, SIMPLE=311, SOURCE=312, TABLE=313, TEMP=314, + TO=315, TRAIL=316, TRANSACTION=317, TYPE=318, UNDIRECTED=319, VERTEX=320, + WALK=321, WITHOUT=322, WRITE=323, ZONE=324, REGULAR_IDENTIFIER=325, SUBSTITUTED_PARAMETER_REFERENCE=326, + GENERAL_PARAMETER_REFERENCE=327, MULTISET_ALTERNATION_OPERATOR=328, BRACKET_RIGHT_ARROW=329, + BRACKET_TILDE_RIGHT_ARROW=330, CONCATENATION_OPERATOR=331, DOUBLE_COLON=332, + DOUBLE_DOLLAR_SIGN=333, DOUBLE_PERIOD=334, GREATER_THAN_OR_EQUALS_OPERATOR=335, + LEFT_ARROW=336, LEFT_ARROW_TILDE=337, LEFT_ARROW_BRACKET=338, LEFT_ARROW_TILDE_BRACKET=339, + LEFT_MINUS_RIGHT=340, LEFT_MINUS_SLASH=341, LEFT_TILDE_SLASH=342, LESS_THAN_OR_EQUALS_OPERATOR=343, + MINUS_LEFT_BRACKET=344, MINUS_SLASH=345, NOT_EQUALS_OPERATOR=346, RIGHT_ARROW=347, + RIGHT_BRACKET_MINUS=348, RIGHT_BRACKET_TILDE=349, RIGHT_DOUBLE_ARROW=350, + SLASH_MINUS=351, SLASH_MINUS_RIGHT=352, SLASH_TILDE=353, SLASH_TILDE_RIGHT=354, + TILDE_LEFT_BRACKET=355, TILDE_RIGHT_ARROW=356, TILDE_SLASH=357, AMPERSAND=358, + ASTERISK=359, COLON=360, COMMA=361, COMMERCIAL_AT=362, DOLLAR_SIGN=363, + DOUBLE_QUOTE=364, EQUALS_OPERATOR=365, EXCLAMATION_MARK=366, RIGHT_ANGLE_BRACKET=367, + GRAVE_ACCENT=368, LEFT_BRACE=369, LEFT_BRACKET=370, LEFT_PAREN=371, LEFT_ANGLE_BRACKET=372, + MINUS_SIGN=373, PERCENT=374, PERIOD=375, PLUS_SIGN=376, QUESTION_MARK=377, + QUOTE=378, REVERSE_SOLIDUS=379, RIGHT_BRACE=380, RIGHT_BRACKET=381, RIGHT_PAREN=382, + SOLIDUS=383, TILDE=384, UNDERSCORE=385, VERTICAL_BAR=386, SP=387, WHITESPACE=388, + BRACKETED_COMMENT=389, SIMPLE_COMMENT_SOLIDUS=390, SIMPLE_COMMENT_MINUS=391; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "IMPLIES", "PARAMETER_NAME", "BOOLEAN_LITERAL", "SINGLE_QUOTED_CHARACTER_SEQUENCE", + "DOUBLE_QUOTED_CHARACTER_SEQUENCE", "ACCENT_QUOTED_CHARACTER_SEQUENCE", + "NO_ESCAPE", "UNBROKEN_SINGLE_QUOTED_CHARACTER_SEQUENCE", "UNBROKEN_DOUBLE_QUOTED_CHARACTER_SEQUENCE", + "UNBROKEN_ACCENT_QUOTED_CHARACTER_SEQUENCE", "SINGLE_QUOTED_CHARACTER_REPRESENTATION", + "DOUBLE_QUOTED_CHARACTER_REPRESENTATION", "ACCENT_QUOTED_CHARACTER_REPRESENTATION", + "ESCAPED_CHARACTER", "ESCAPED_REVERSE_SOLIDUS", "ESCAPED_QUOTE", "ESCAPED_DOUBLE_QUOTE", + "ESCAPED_GRAVE_ACCENT", "ESCAPED_TAB", "ESCAPED_BACKSPACE", "ESCAPED_NEW_LINE", + "ESCAPED_CARRIAGE_RETURN", "ESCAPED_FORM_FEED", "ESCAPED_UNICODE4_DIGIT_VALUE", + "ESCAPED_UNICODE6_DIGIT_VALUE", "BYTE_STRING_LITERAL", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER", "EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION", + "MANTISSA", "EXPONENT", "UNSIGNED_DECIMAL_IN_COMMON_NOTATION", "SIGNED_DECIMAL_INTEGER", + "UNSIGNED_HEXADECIMAL_INTEGER", "UNSIGNED_OCTAL_INTEGER", "UNSIGNED_BINARY_INTEGER", + "APPROXIMATE_NUMBER_SUFFIX", "ABS", "ACOS", "ALL", "ALL_DIFFERENT", "AND", + "ANY", "ARRAY", "AS", "ASC", "ASCENDING", "ASIN", "AT", "ATAN", "AVG", + "BIG", "BIGINT", "BINARY", "BOOL", "BOOLEAN", "BOTH", "BTRIM", "BY", + "BYTE_LENGTH", "BYTES", "CALL", "CARDINALITY", "CASE", "CAST", "CEIL", + "CEILING", "CHAR", "CHAR_LENGTH", "CHARACTER_LENGTH", "CHARACTERISTICS", + "CLOSE", "COALESCE", "COLLECT_LIST", "COMMIT", "COPY", "COS", "COSH", + "COT", "COUNT", "CREATE", "CURRENT_DATE", "CURRENT_GRAPH", "CURRENT_PROPERTY_GRAPH", + "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "DATE", "DATETIME", + "DAY", "DEC", "DECIMAL", "DEGREES", "DELETE", "DESC", "DESCENDING", "DETACH", + "DISTINCT", "DOUBLE", "DROP", "DURATION", "DURATION_BETWEEN", "ELEMENT_ID", + "ELSE", "END", "EXCEPT", "EXISTS", "EXP", "FILTER", "FINISH", "FLOAT", + "FLOAT16", "FLOAT32", "FLOAT64", "FLOAT128", "FLOAT256", "FLOOR", "FOR", + "FROM", "GROUP", "HAVING", "HOME_GRAPH", "HOME_PROPERTY_GRAPH", "HOME_SCHEMA", + "HOUR", "IF", "IN", "INSERT", "INT", "INTEGER", "INT8", "INTEGER8", "INT16", + "INTEGER16", "INT32", "INTEGER32", "INT64", "INTEGER64", "INT128", "INTEGER128", + "INT256", "INTEGER256", "INTERSECT", "INTERVAL", "IS", "LEADING", "LEFT", + "LET", "LIKE", "LIMIT", "LIST", "LN", "LOCAL", "LOCAL_DATETIME", "LOCAL_TIME", + "LOCAL_TIMESTAMP", "LOG", "LOG10", "LOWER", "LTRIM", "MATCH", "MAX", + "MIN", "MINUTE", "MOD", "MONTH", "NEXT", "NODETACH", "NORMALIZE", "NOT", + "NOTHING", "NULL", "NULLS", "NULLIF", "OCTET_LENGTH", "OF", "OFFSET", + "OPTIONAL", "OR", "ORDER", "OTHERWISE", "PARAMETER", "PARAMETERS", "PATH", + "PATH_LENGTH", "PATHS", "PERCENTILE_CONT", "PERCENTILE_DISC", "POWER", + "PRECISION", "PROPERTY_EXISTS", "RADIANS", "REAL", "RECORD", "REMOVE", + "REPLACE", "RESET", "RETURN", "RIGHT", "ROLLBACK", "RTRIM", "SAME", "SCHEMA", + "SECOND", "SELECT", "SESSION", "SESSION_USER", "SET", "SIGNED", "SIN", + "SINH", "SIZE", "SKIP_RESERVED_WORD", "SMALL", "SMALLINT", "SQRT", "START", + "STDDEV_POP", "STDDEV_SAMP", "STRING", "SUM", "TAN", "TANH", "THEN", + "TIME", "TIMESTAMP", "TRAILING", "TRIM", "TYPED", "UBIGINT", "UINT", + "UINT8", "UINT16", "UINT32", "UINT64", "UINT128", "UINT256", "UNION", + "UNSIGNED", "UPPER", "USE", "USMALLINT", "VALUE", "VARBINARY", "VARCHAR", + "VARIABLE", "WHEN", "WHERE", "WITH", "XOR", "YEAR", "YIELD", "ZONED", + "ZONED_DATETIME", "ZONED_TIME", "ABSTRACT", "AGGREGATE", "AGGREGATES", + "ALTER", "CATALOG", "CLEAR", "CLONE", "CONSTRAINT", "CURRENT_ROLE", "CURRENT_USER", + "DATA", "DIRECTORY", "DRYRUN", "EXACT", "EXISTING", "FUNCTION", "GQLSTATUS", + "GRANT", "INSTANT", "INFINITY", "NUMBER", "NUMERIC", "ON", "OPEN", "PARTITION", + "PROCEDURE", "PRODUCT", "PROJECT", "QUERY", "RECORDS", "REFERENCE", "RENAME", + "REVOKE", "SUBSTRING", "SYSTEM_USER", "TEMPORAL", "UNIQUE", "UNIT", "VALUES", + "ACYCLIC", "BINDING", "BINDINGS", "CONNECTING", "DESTINATION", "DIFFERENT", + "DIRECTED", "EDGE", "EDGES", "ELEMENT", "ELEMENTS", "FIRST", "GRAPH", + "GROUPS", "KEEP", "LABEL", "LABELED", "LABELS", "LAST", "NFC", "NFD", + "NFKC", "NFKD", "NO", "NODE", "NORMALIZED", "ONLY", "ORDINALITY", "PROPERTY", + "READ", "RELATIONSHIP", "RELATIONSHIPS", "REPEATABLE", "SHORTEST", "SIMPLE", + "SOURCE", "TABLE", "TEMP", "TO", "TRAIL", "TRANSACTION", "TYPE", "UNDIRECTED", + "VERTEX", "WALK", "WITHOUT", "WRITE", "ZONE", "SEPARATED_IDENTIFIER", + "REGULAR_IDENTIFIER", "EXTENDED_IDENTIFIER", "DELIMITED_IDENTIFIER", + "SUBSTITUTED_PARAMETER_REFERENCE", "GENERAL_PARAMETER_REFERENCE", "IDENTIFIER_START", + "IDENTIFIER_EXTEND", "ID_Start", "ID_Continue", "MULTISET_ALTERNATION_OPERATOR", + "BRACKET_RIGHT_ARROW", "BRACKET_TILDE_RIGHT_ARROW", "CONCATENATION_OPERATOR", + "DOUBLE_COLON", "DOUBLE_DOLLAR_SIGN", "DOUBLE_PERIOD", "GREATER_THAN_OR_EQUALS_OPERATOR", + "LEFT_ARROW", "LEFT_ARROW_TILDE", "LEFT_ARROW_BRACKET", "LEFT_ARROW_TILDE_BRACKET", + "LEFT_MINUS_RIGHT", "LEFT_MINUS_SLASH", "LEFT_TILDE_SLASH", "LESS_THAN_OR_EQUALS_OPERATOR", + "MINUS_LEFT_BRACKET", "MINUS_SLASH", "NOT_EQUALS_OPERATOR", "RIGHT_ARROW", + "RIGHT_BRACKET_MINUS", "RIGHT_BRACKET_TILDE", "RIGHT_DOUBLE_ARROW", "SLASH_MINUS", + "SLASH_MINUS_RIGHT", "SLASH_TILDE", "SLASH_TILDE_RIGHT", "TILDE_LEFT_BRACKET", + "TILDE_RIGHT_ARROW", "TILDE_SLASH", "AMPERSAND", "ASTERISK", "COLON", + "COMMA", "COMMERCIAL_AT", "DOLLAR_SIGN", "DOUBLE_QUOTE", "EQUALS_OPERATOR", + "EXCLAMATION_MARK", "RIGHT_ANGLE_BRACKET", "GRAVE_ACCENT", "LEFT_BRACE", + "LEFT_BRACKET", "LEFT_PAREN", "LEFT_ANGLE_BRACKET", "MINUS_SIGN", "PERCENT", + "PERIOD", "PLUS_SIGN", "QUESTION_MARK", "QUOTE", "REVERSE_SOLIDUS", "RIGHT_BRACE", + "RIGHT_BRACKET", "RIGHT_PAREN", "SOLIDUS", "TILDE", "UNDERSCORE", "VERTICAL_BAR", + "HEX_DIGIT", "DIGIT", "OCTAL_DIGIT", "BINARY_DIGIT", "SP", "WHITESPACE", + "BRACKETED_COMMENT", "SIMPLE_COMMENT_SOLIDUS", "SIMPLE_COMMENT_MINUS", + "GS", "FS", "CR", "Sc", "SPACE", "Pc", "TAB", "LF", "VT", "US", "FF", + "RS" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, "'ABS'", "'ACOS'", "'ALL'", + "'ALL_DIFFERENT'", "'AND'", "'ANY'", "'ARRAY'", "'AS'", "'ASC'", "'ASCENDING'", + "'ASIN'", "'AT'", "'ATAN'", "'AVG'", "'BIG'", "'BIGINT'", "'BINARY'", + "'BOOL'", "'BOOLEAN'", "'BOTH'", "'BTRIM'", "'BY'", "'BYTE_LENGTH'", + "'BYTES'", "'CALL'", "'CARDINALITY'", "'CASE'", "'CAST'", "'CEIL'", "'CEILING'", + "'CHAR'", "'CHAR_LENGTH'", "'CHARACTER_LENGTH'", "'CHARACTERISTICS'", + "'CLOSE'", "'COALESCE'", "'COLLECT_LIST'", "'COMMIT'", "'COPY'", "'COS'", + "'COSH'", "'COT'", "'COUNT'", "'CREATE'", "'CURRENT_DATE'", "'CURRENT_GRAPH'", + "'CURRENT_PROPERTY_GRAPH'", "'CURRENT_SCHEMA'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", + "'DATE'", "'DATETIME'", "'DAY'", "'DEC'", "'DECIMAL'", "'DEGREES'", "'DELETE'", + "'DESC'", "'DESCENDING'", "'DETACH'", "'DISTINCT'", "'DOUBLE'", "'DROP'", + "'DURATION'", "'DURATION_BETWEEN'", "'ELEMENT_ID'", "'ELSE'", "'END'", + "'EXCEPT'", "'EXISTS'", "'EXP'", "'FILTER'", "'FINISH'", "'FLOAT'", "'FLOAT16'", + "'FLOAT32'", "'FLOAT64'", "'FLOAT128'", "'FLOAT256'", "'FLOOR'", "'FOR'", + "'FROM'", "'GROUP'", "'HAVING'", "'HOME_GRAPH'", "'HOME_PROPERTY_GRAPH'", + "'HOME_SCHEMA'", "'HOUR'", "'IF'", "'IN'", "'INSERT'", "'INT'", "'INTEGER'", + "'INT8'", "'INTEGER8'", "'INT16'", "'INTEGER16'", "'INT32'", "'INTEGER32'", + "'INT64'", "'INTEGER64'", "'INT128'", "'INTEGER128'", "'INT256'", "'INTEGER256'", + "'INTERSECT'", "'INTERVAL'", "'IS'", "'LEADING'", "'LEFT'", "'LET'", + "'LIKE'", "'LIMIT'", "'LIST'", "'LN'", "'LOCAL'", "'LOCAL_DATETIME'", + "'LOCAL_TIME'", "'LOCAL_TIMESTAMP'", "'LOG'", "'LOG10'", "'LOWER'", "'LTRIM'", + "'MATCH'", "'MAX'", "'MIN'", "'MINUTE'", "'MOD'", "'MONTH'", "'NEXT'", + "'NODETACH'", "'NORMALIZE'", "'NOT'", "'NOTHING'", "'NULL'", "'NULLS'", + "'NULLIF'", "'OCTET_LENGTH'", "'OF'", "'OFFSET'", "'OPTIONAL'", "'OR'", + "'ORDER'", "'OTHERWISE'", "'PARAMETER'", "'PARAMETERS'", "'PATH'", "'PATH_LENGTH'", + "'PATHS'", "'PERCENTILE_CONT'", "'PERCENTILE_DISC'", "'POWER'", "'PRECISION'", + "'PROPERTY_EXISTS'", "'RADIANS'", "'REAL'", "'RECORD'", "'REMOVE'", "'REPLACE'", + "'RESET'", "'RETURN'", "'RIGHT'", "'ROLLBACK'", "'RTRIM'", "'SAME'", + "'SCHEMA'", "'SECOND'", "'SELECT'", "'SESSION'", "'SESSION_USER'", "'SET'", + "'SIGNED'", "'SIN'", "'SINH'", "'SIZE'", "'SKIP'", "'SMALL'", "'SMALLINT'", + "'SQRT'", "'START'", "'STDDEV_POP'", "'STDDEV_SAMP'", "'STRING'", "'SUM'", + "'TAN'", "'TANH'", "'THEN'", "'TIME'", "'TIMESTAMP'", "'TRAILING'", "'TRIM'", + "'TYPED'", "'UBIGINT'", "'UINT'", "'UINT8'", "'UINT16'", "'UINT32'", + "'UINT64'", "'UINT128'", "'UINT256'", "'UNION'", "'UNSIGNED'", "'UPPER'", + "'USE'", "'USMALLINT'", "'VALUE'", "'VARBINARY'", "'VARCHAR'", "'VARIABLE'", + "'WHEN'", "'WHERE'", "'WITH'", "'XOR'", "'YEAR'", "'YIELD'", "'ZONED'", + "'ZONED_DATETIME'", "'ZONED_TIME'", "'ABSTRACT'", "'AGGREGATE'", "'AGGREGATES'", + "'ALTER'", "'CATALOG'", "'CLEAR'", "'CLONE'", "'CONSTRAINT'", "'CURRENT_ROLE'", + "'CURRENT_USER'", "'DATA'", "'DIRECTORY'", "'DRYRUN'", "'EXACT'", "'EXISTING'", + "'FUNCTION'", "'GQLSTATUS'", "'GRANT'", "'INSTANT'", "'INFINITY'", "'NUMBER'", + "'NUMERIC'", "'ON'", "'OPEN'", "'PARTITION'", "'PROCEDURE'", "'PRODUCT'", + "'PROJECT'", "'QUERY'", "'RECORDS'", "'REFERENCE'", "'RENAME'", "'REVOKE'", + "'SUBSTRING'", "'SYSTEM_USER'", "'TEMPORAL'", "'UNIQUE'", "'UNIT'", "'VALUES'", + "'ACYCLIC'", "'BINDING'", "'BINDINGS'", "'CONNECTING'", "'DESTINATION'", + "'DIFFERENT'", "'DIRECTED'", "'EDGE'", "'EDGES'", "'ELEMENT'", "'ELEMENTS'", + "'FIRST'", "'GRAPH'", "'GROUPS'", "'KEEP'", "'LABEL'", "'LABELED'", "'LABELS'", + "'LAST'", "'NFC'", "'NFD'", "'NFKC'", "'NFKD'", "'NO'", "'NODE'", "'NORMALIZED'", + "'ONLY'", "'ORDINALITY'", "'PROPERTY'", "'READ'", "'RELATIONSHIP'", "'RELATIONSHIPS'", + "'REPEATABLE'", "'SHORTEST'", "'SIMPLE'", "'SOURCE'", "'TABLE'", "'TEMP'", + "'TO'", "'TRAIL'", "'TRANSACTION'", "'TYPE'", "'UNDIRECTED'", "'VERTEX'", + "'WALK'", "'WITHOUT'", "'WRITE'", "'ZONE'", null, null, null, "'|+|'", + "']->'", "']~>'", "'||'", "'::'", "'$$'", "'..'", "'>='", "'<-'", "'<~'", + "'<-['", "'<~['", "'<->'", "'<-/'", "'<~/'", "'<='", "'-['", "'-/'", + "'<>'", "'->'", "']-'", "']~'", "'=>'", "'/-'", "'/->'", "'/~'", "'/~>'", + "'~['", "'~>'", "'~/'", "'&'", "'*'", "':'", "','", "'@'", "'$'", "'\"'", + "'='", "'!'", "'>'", "'`'", "'{'", "'['", "'('", "'<'", "'-'", "'%'", + "'.'", "'+'", "'?'", "'''", "'\\'", "'}'", "']'", "')'", "'/'", "'~'", + "'_'", "'|'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "IMPLIES", "BOOLEAN_LITERAL", "SINGLE_QUOTED_CHARACTER_SEQUENCE", + "DOUBLE_QUOTED_CHARACTER_SEQUENCE", "ACCENT_QUOTED_CHARACTER_SEQUENCE", + "NO_ESCAPE", "BYTE_STRING_LITERAL", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER", "UNSIGNED_HEXADECIMAL_INTEGER", "UNSIGNED_OCTAL_INTEGER", + "UNSIGNED_BINARY_INTEGER", "ABS", "ACOS", "ALL", "ALL_DIFFERENT", "AND", + "ANY", "ARRAY", "AS", "ASC", "ASCENDING", "ASIN", "AT", "ATAN", "AVG", + "BIG", "BIGINT", "BINARY", "BOOL", "BOOLEAN", "BOTH", "BTRIM", "BY", + "BYTE_LENGTH", "BYTES", "CALL", "CARDINALITY", "CASE", "CAST", "CEIL", + "CEILING", "CHAR", "CHAR_LENGTH", "CHARACTER_LENGTH", "CHARACTERISTICS", + "CLOSE", "COALESCE", "COLLECT_LIST", "COMMIT", "COPY", "COS", "COSH", + "COT", "COUNT", "CREATE", "CURRENT_DATE", "CURRENT_GRAPH", "CURRENT_PROPERTY_GRAPH", + "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "DATE", "DATETIME", + "DAY", "DEC", "DECIMAL", "DEGREES", "DELETE", "DESC", "DESCENDING", "DETACH", + "DISTINCT", "DOUBLE", "DROP", "DURATION", "DURATION_BETWEEN", "ELEMENT_ID", + "ELSE", "END", "EXCEPT", "EXISTS", "EXP", "FILTER", "FINISH", "FLOAT", + "FLOAT16", "FLOAT32", "FLOAT64", "FLOAT128", "FLOAT256", "FLOOR", "FOR", + "FROM", "GROUP", "HAVING", "HOME_GRAPH", "HOME_PROPERTY_GRAPH", "HOME_SCHEMA", + "HOUR", "IF", "IN", "INSERT", "INT", "INTEGER", "INT8", "INTEGER8", "INT16", + "INTEGER16", "INT32", "INTEGER32", "INT64", "INTEGER64", "INT128", "INTEGER128", + "INT256", "INTEGER256", "INTERSECT", "INTERVAL", "IS", "LEADING", "LEFT", + "LET", "LIKE", "LIMIT", "LIST", "LN", "LOCAL", "LOCAL_DATETIME", "LOCAL_TIME", + "LOCAL_TIMESTAMP", "LOG", "LOG10", "LOWER", "LTRIM", "MATCH", "MAX", + "MIN", "MINUTE", "MOD", "MONTH", "NEXT", "NODETACH", "NORMALIZE", "NOT", + "NOTHING", "NULL", "NULLS", "NULLIF", "OCTET_LENGTH", "OF", "OFFSET", + "OPTIONAL", "OR", "ORDER", "OTHERWISE", "PARAMETER", "PARAMETERS", "PATH", + "PATH_LENGTH", "PATHS", "PERCENTILE_CONT", "PERCENTILE_DISC", "POWER", + "PRECISION", "PROPERTY_EXISTS", "RADIANS", "REAL", "RECORD", "REMOVE", + "REPLACE", "RESET", "RETURN", "RIGHT", "ROLLBACK", "RTRIM", "SAME", "SCHEMA", + "SECOND", "SELECT", "SESSION", "SESSION_USER", "SET", "SIGNED", "SIN", + "SINH", "SIZE", "SKIP_RESERVED_WORD", "SMALL", "SMALLINT", "SQRT", "START", + "STDDEV_POP", "STDDEV_SAMP", "STRING", "SUM", "TAN", "TANH", "THEN", + "TIME", "TIMESTAMP", "TRAILING", "TRIM", "TYPED", "UBIGINT", "UINT", + "UINT8", "UINT16", "UINT32", "UINT64", "UINT128", "UINT256", "UNION", + "UNSIGNED", "UPPER", "USE", "USMALLINT", "VALUE", "VARBINARY", "VARCHAR", + "VARIABLE", "WHEN", "WHERE", "WITH", "XOR", "YEAR", "YIELD", "ZONED", + "ZONED_DATETIME", "ZONED_TIME", "ABSTRACT", "AGGREGATE", "AGGREGATES", + "ALTER", "CATALOG", "CLEAR", "CLONE", "CONSTRAINT", "CURRENT_ROLE", "CURRENT_USER", + "DATA", "DIRECTORY", "DRYRUN", "EXACT", "EXISTING", "FUNCTION", "GQLSTATUS", + "GRANT", "INSTANT", "INFINITY", "NUMBER", "NUMERIC", "ON", "OPEN", "PARTITION", + "PROCEDURE", "PRODUCT", "PROJECT", "QUERY", "RECORDS", "REFERENCE", "RENAME", + "REVOKE", "SUBSTRING", "SYSTEM_USER", "TEMPORAL", "UNIQUE", "UNIT", "VALUES", + "ACYCLIC", "BINDING", "BINDINGS", "CONNECTING", "DESTINATION", "DIFFERENT", + "DIRECTED", "EDGE", "EDGES", "ELEMENT", "ELEMENTS", "FIRST", "GRAPH", + "GROUPS", "KEEP", "LABEL", "LABELED", "LABELS", "LAST", "NFC", "NFD", + "NFKC", "NFKD", "NO", "NODE", "NORMALIZED", "ONLY", "ORDINALITY", "PROPERTY", + "READ", "RELATIONSHIP", "RELATIONSHIPS", "REPEATABLE", "SHORTEST", "SIMPLE", + "SOURCE", "TABLE", "TEMP", "TO", "TRAIL", "TRANSACTION", "TYPE", "UNDIRECTED", + "VERTEX", "WALK", "WITHOUT", "WRITE", "ZONE", "REGULAR_IDENTIFIER", "SUBSTITUTED_PARAMETER_REFERENCE", + "GENERAL_PARAMETER_REFERENCE", "MULTISET_ALTERNATION_OPERATOR", "BRACKET_RIGHT_ARROW", + "BRACKET_TILDE_RIGHT_ARROW", "CONCATENATION_OPERATOR", "DOUBLE_COLON", + "DOUBLE_DOLLAR_SIGN", "DOUBLE_PERIOD", "GREATER_THAN_OR_EQUALS_OPERATOR", + "LEFT_ARROW", "LEFT_ARROW_TILDE", "LEFT_ARROW_BRACKET", "LEFT_ARROW_TILDE_BRACKET", + "LEFT_MINUS_RIGHT", "LEFT_MINUS_SLASH", "LEFT_TILDE_SLASH", "LESS_THAN_OR_EQUALS_OPERATOR", + "MINUS_LEFT_BRACKET", "MINUS_SLASH", "NOT_EQUALS_OPERATOR", "RIGHT_ARROW", + "RIGHT_BRACKET_MINUS", "RIGHT_BRACKET_TILDE", "RIGHT_DOUBLE_ARROW", "SLASH_MINUS", + "SLASH_MINUS_RIGHT", "SLASH_TILDE", "SLASH_TILDE_RIGHT", "TILDE_LEFT_BRACKET", + "TILDE_RIGHT_ARROW", "TILDE_SLASH", "AMPERSAND", "ASTERISK", "COLON", + "COMMA", "COMMERCIAL_AT", "DOLLAR_SIGN", "DOUBLE_QUOTE", "EQUALS_OPERATOR", + "EXCLAMATION_MARK", "RIGHT_ANGLE_BRACKET", "GRAVE_ACCENT", "LEFT_BRACE", + "LEFT_BRACKET", "LEFT_PAREN", "LEFT_ANGLE_BRACKET", "MINUS_SIGN", "PERCENT", + "PERIOD", "PLUS_SIGN", "QUESTION_MARK", "QUOTE", "REVERSE_SOLIDUS", "RIGHT_BRACE", + "RIGHT_BRACKET", "RIGHT_PAREN", "SOLIDUS", "TILDE", "UNDERSCORE", "VERTICAL_BAR", + "SP", "WHITESPACE", "BRACKETED_COMMENT", "SIMPLE_COMMENT_SOLIDUS", "SIMPLE_COMMENT_MINUS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public GQL_20240412Lexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "GQL_20240412.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + private static final String _serializedATNSegment0 = + "\u0004\u0000\u0187\u0e8c\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ + "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ + "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ + "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ + "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ + "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ + "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ + "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ + ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ + "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ + "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ + "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ + "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ + "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ + "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ + "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ + "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ + "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ + "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ + "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ + "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ + "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ + "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ + "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ + "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ + "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ + "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ + "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ + "\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094"+ + "\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097"+ + "\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a"+ + "\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d"+ + "\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0"+ + "\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3"+ + "\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6"+ + "\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9"+ + "\u0002\u00aa\u0007\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac"+ + "\u0002\u00ad\u0007\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af"+ + "\u0002\u00b0\u0007\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2"+ + "\u0002\u00b3\u0007\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5"+ + "\u0002\u00b6\u0007\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8"+ + "\u0002\u00b9\u0007\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb"+ + "\u0002\u00bc\u0007\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be"+ + "\u0002\u00bf\u0007\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1"+ + "\u0002\u00c2\u0007\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4"+ + "\u0002\u00c5\u0007\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7"+ + "\u0002\u00c8\u0007\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca"+ + "\u0002\u00cb\u0007\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd"+ + "\u0002\u00ce\u0007\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0"+ + "\u0002\u00d1\u0007\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3"+ + "\u0002\u00d4\u0007\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6"+ + "\u0002\u00d7\u0007\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9"+ + "\u0002\u00da\u0007\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc"+ + "\u0002\u00dd\u0007\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df"+ + "\u0002\u00e0\u0007\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2"+ + "\u0002\u00e3\u0007\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5"+ + "\u0002\u00e6\u0007\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8"+ + "\u0002\u00e9\u0007\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb"+ + "\u0002\u00ec\u0007\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee"+ + "\u0002\u00ef\u0007\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1"+ + "\u0002\u00f2\u0007\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4"+ + "\u0002\u00f5\u0007\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7"+ + "\u0002\u00f8\u0007\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa"+ + "\u0002\u00fb\u0007\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd"+ + "\u0002\u00fe\u0007\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100"+ + "\u0002\u0101\u0007\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103"+ + "\u0002\u0104\u0007\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106"+ + "\u0002\u0107\u0007\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109"+ + "\u0002\u010a\u0007\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c"+ + "\u0002\u010d\u0007\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f"+ + "\u0002\u0110\u0007\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112"+ + "\u0002\u0113\u0007\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115"+ + "\u0002\u0116\u0007\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118"+ + "\u0002\u0119\u0007\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b"+ + "\u0002\u011c\u0007\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e"+ + "\u0002\u011f\u0007\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121"+ + "\u0002\u0122\u0007\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124"+ + "\u0002\u0125\u0007\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127"+ + "\u0002\u0128\u0007\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a"+ + "\u0002\u012b\u0007\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d"+ + "\u0002\u012e\u0007\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130"+ + "\u0002\u0131\u0007\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133"+ + "\u0002\u0134\u0007\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136"+ + "\u0002\u0137\u0007\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139"+ + "\u0002\u013a\u0007\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c"+ + "\u0002\u013d\u0007\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f"+ + "\u0002\u0140\u0007\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142"+ + "\u0002\u0143\u0007\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145"+ + "\u0002\u0146\u0007\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148"+ + "\u0002\u0149\u0007\u0149\u0002\u014a\u0007\u014a\u0002\u014b\u0007\u014b"+ + "\u0002\u014c\u0007\u014c\u0002\u014d\u0007\u014d\u0002\u014e\u0007\u014e"+ + "\u0002\u014f\u0007\u014f\u0002\u0150\u0007\u0150\u0002\u0151\u0007\u0151"+ + "\u0002\u0152\u0007\u0152\u0002\u0153\u0007\u0153\u0002\u0154\u0007\u0154"+ + "\u0002\u0155\u0007\u0155\u0002\u0156\u0007\u0156\u0002\u0157\u0007\u0157"+ + "\u0002\u0158\u0007\u0158\u0002\u0159\u0007\u0159\u0002\u015a\u0007\u015a"+ + "\u0002\u015b\u0007\u015b\u0002\u015c\u0007\u015c\u0002\u015d\u0007\u015d"+ + "\u0002\u015e\u0007\u015e\u0002\u015f\u0007\u015f\u0002\u0160\u0007\u0160"+ + "\u0002\u0161\u0007\u0161\u0002\u0162\u0007\u0162\u0002\u0163\u0007\u0163"+ + "\u0002\u0164\u0007\u0164\u0002\u0165\u0007\u0165\u0002\u0166\u0007\u0166"+ + "\u0002\u0167\u0007\u0167\u0002\u0168\u0007\u0168\u0002\u0169\u0007\u0169"+ + "\u0002\u016a\u0007\u016a\u0002\u016b\u0007\u016b\u0002\u016c\u0007\u016c"+ + "\u0002\u016d\u0007\u016d\u0002\u016e\u0007\u016e\u0002\u016f\u0007\u016f"+ + "\u0002\u0170\u0007\u0170\u0002\u0171\u0007\u0171\u0002\u0172\u0007\u0172"+ + "\u0002\u0173\u0007\u0173\u0002\u0174\u0007\u0174\u0002\u0175\u0007\u0175"+ + "\u0002\u0176\u0007\u0176\u0002\u0177\u0007\u0177\u0002\u0178\u0007\u0178"+ + "\u0002\u0179\u0007\u0179\u0002\u017a\u0007\u017a\u0002\u017b\u0007\u017b"+ + "\u0002\u017c\u0007\u017c\u0002\u017d\u0007\u017d\u0002\u017e\u0007\u017e"+ + "\u0002\u017f\u0007\u017f\u0002\u0180\u0007\u0180\u0002\u0181\u0007\u0181"+ + "\u0002\u0182\u0007\u0182\u0002\u0183\u0007\u0183\u0002\u0184\u0007\u0184"+ + "\u0002\u0185\u0007\u0185\u0002\u0186\u0007\u0186\u0002\u0187\u0007\u0187"+ + "\u0002\u0188\u0007\u0188\u0002\u0189\u0007\u0189\u0002\u018a\u0007\u018a"+ + "\u0002\u018b\u0007\u018b\u0002\u018c\u0007\u018c\u0002\u018d\u0007\u018d"+ + "\u0002\u018e\u0007\u018e\u0002\u018f\u0007\u018f\u0002\u0190\u0007\u0190"+ + "\u0002\u0191\u0007\u0191\u0002\u0192\u0007\u0192\u0002\u0193\u0007\u0193"+ + "\u0002\u0194\u0007\u0194\u0002\u0195\u0007\u0195\u0002\u0196\u0007\u0196"+ + "\u0002\u0197\u0007\u0197\u0002\u0198\u0007\u0198\u0002\u0199\u0007\u0199"+ + "\u0002\u019a\u0007\u019a\u0002\u019b\u0007\u019b\u0002\u019c\u0007\u019c"+ + "\u0002\u019d\u0007\u019d\u0002\u019e\u0007\u019e\u0002\u019f\u0007\u019f"+ + "\u0002\u01a0\u0007\u01a0\u0002\u01a1\u0007\u01a1\u0002\u01a2\u0007\u01a2"+ + "\u0002\u01a3\u0007\u01a3\u0002\u01a4\u0007\u01a4\u0002\u01a5\u0007\u01a5"+ + "\u0002\u01a6\u0007\u01a6\u0002\u01a7\u0007\u01a7\u0002\u01a8\u0007\u01a8"+ + "\u0002\u01a9\u0007\u01a9\u0002\u01aa\u0007\u01aa\u0002\u01ab\u0007\u01ab"+ + "\u0002\u01ac\u0007\u01ac\u0002\u01ad\u0007\u01ad\u0002\u01ae\u0007\u01ae"+ + "\u0002\u01af\u0007\u01af\u0002\u01b0\u0007\u01b0\u0002\u01b1\u0007\u01b1"+ + "\u0002\u01b2\u0007\u01b2\u0002\u01b3\u0007\u01b3\u0002\u01b4\u0007\u01b4"+ + "\u0002\u01b5\u0007\u01b5\u0002\u01b6\u0007\u01b6\u0002\u01b7\u0007\u01b7"+ + "\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+ + "\u0001\u0000\u0001\u0000\u0003\u0000\u037a\b\u0000\u0001\u0001\u0001\u0001"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0003\u0002\u038e\b\u0002"+ + "\u0001\u0003\u0003\u0003\u0391\b\u0003\u0001\u0003\u0001\u0003\u0001\u0004"+ + "\u0003\u0004\u0396\b\u0004\u0001\u0004\u0001\u0004\u0001\u0005\u0003\u0005"+ + "\u039b\b\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0007"+ + "\u0001\u0007\u0005\u0007\u03a3\b\u0007\n\u0007\f\u0007\u03a6\t\u0007\u0001"+ + "\u0007\u0001\u0007\u0001\b\u0001\b\u0005\b\u03ac\b\b\n\b\f\b\u03af\t\b"+ + "\u0001\b\u0001\b\u0001\t\u0001\t\u0005\t\u03b5\b\t\n\t\f\t\u03b8\t\t\u0001"+ + "\t\u0001\t\u0001\n\u0001\n\u0004\n\u03be\b\n\u000b\n\f\n\u03bf\u0001\u000b"+ + "\u0001\u000b\u0004\u000b\u03c4\b\u000b\u000b\u000b\f\u000b\u03c5\u0001"+ + "\f\u0001\f\u0004\f\u03ca\b\f\u000b\f\f\f\u03cb\u0001\r\u0001\r\u0001\r"+ + "\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0003"+ + "\r\u03d9\b\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f"+ + "\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011"+ + "\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013"+ + "\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015"+ + "\u0001\u0015\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0017\u0001\u0017"+ + "\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0018"+ + "\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018"+ + "\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0005\u0019"+ + "\u0409\b\u0019\n\u0019\f\u0019\u040c\t\u0019\u0001\u0019\u0001\u0019\u0005"+ + "\u0019\u0410\b\u0019\n\u0019\f\u0019\u0413\t\u0019\u0001\u0019\u0001\u0019"+ + "\u0005\u0019\u0417\b\u0019\n\u0019\f\u0019\u041a\t\u0019\u0005\u0019\u041c"+ + "\b\u0019\n\u0019\f\u0019\u041f\t\u0019\u0001\u0019\u0001\u0019\u0001\u001a"+ + "\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c"+ + "\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0001\u001e"+ + "\u0001\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001 \u0001!\u0001"+ + "!\u0001!\u0001\"\u0001\"\u0003\"\u043b\b\"\u0001\"\u0005\"\u043e\b\"\n"+ + "\"\f\"\u0441\t\"\u0001#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001%\u0001"+ + "%\u0003%\u044b\b%\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0003\'\u0452"+ + "\b\'\u0001\'\u0001\'\u0001\'\u0003\'\u0457\b\'\u0001(\u0001(\u0003(\u045b"+ + "\b(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001)\u0003)\u0463\b)\u0001)\u0004"+ + ")\u0466\b)\u000b)\f)\u0467\u0001*\u0001*\u0001*\u0001*\u0003*\u046e\b"+ + "*\u0001*\u0004*\u0471\b*\u000b*\f*\u0472\u0001+\u0001+\u0001+\u0001+\u0003"+ + "+\u0479\b+\u0001+\u0004+\u047c\b+\u000b+\f+\u047d\u0001,\u0001,\u0001"+ + "-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001.\u0001.\u0001/\u0001"+ + "/\u0001/\u0001/\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u0001"+ + "0\u00010\u00010\u00010\u00010\u00010\u00010\u00011\u00011\u00011\u0001"+ + "1\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00013\u00013\u0001"+ + "3\u00014\u00014\u00014\u00015\u00015\u00015\u00015\u00016\u00016\u0001"+ + "6\u00016\u00016\u00016\u00016\u00016\u00016\u00016\u00017\u00017\u0001"+ + "7\u00017\u00017\u00018\u00018\u00018\u00019\u00019\u00019\u00019\u0001"+ + "9\u0001:\u0001:\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001<\u0001"+ + "<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001?\u0001?\u0001"+ + "?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001@\u0001@\u0001@\u0001@\u0001"+ + "@\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001B\u0001B\u0001B\u0001"+ + "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001"+ + "C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001E\u0001E\u0001"+ + "E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ + "H\u0001H\u0001H\u0001H\u0001H\u0001I\u0001I\u0001I\u0001I\u0001I\u0001"+ + "J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001K\u0001"+ + "K\u0001K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001"+ + "N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001O\u0001O\u0001"+ + "O\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001P\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001"+ + "Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001R\u0001R\u0001R\u0001R\u0001"+ + "R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001S\u0001S\u0001T\u0001T\u0001"+ + "T\u0001T\u0001U\u0001U\u0001U\u0001U\u0001U\u0001V\u0001V\u0001V\u0001"+ + "V\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001X\u0001X\u0001X\u0001"+ + "X\u0001X\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\"+ + "\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001"+ + "\\\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001"+ + "]\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001_\u0001_\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001"+ + "`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001a\u0001a\u0001a\u0001a\u0001"+ + "b\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001"+ + "c\u0001c\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001"+ + "e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001f\u0001f\u0001f\u0001"+ + "f\u0001f\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001j\u0001"+ + "j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001k\u0001"+ + "k\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001"+ + "n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001o\u0001o\u0001"+ + "o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001p\u0001q\u0001q\u0001q\u0001"+ + "q\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001"+ + "r\u0001s\u0001s\u0001s\u0001s\u0001t\u0001t\u0001t\u0001t\u0001t\u0001"+ + "t\u0001t\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001v\u0001"+ + "v\u0001v\u0001v\u0001v\u0001v\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ + "w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ + "x\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001z\u0001"+ + "z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001{\u0001{\u0001"+ + "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001|\u0001|\u0001|\u0001"+ + "|\u0001|\u0001|\u0001}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001"+ + "~\u0001~\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001"+ + "\u007f\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001"+ + "\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001"+ + "\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001"+ + "\u0081\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001"+ + "\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001"+ + "\u0083\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0001\u0084\u0001"+ + "\u0084\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086\u0001"+ + "\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001"+ + "\u0087\u0001\u0087\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001"+ + "\u0088\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u008a\u0001\u008a\u0001\u008a\u0001"+ + "\u008a\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001"+ + "\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001"+ + "\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008d\u0001"+ + "\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001"+ + "\u008d\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e\u0001"+ + "\u008e\u0001\u008e\u0001\u008e\u0001\u008f\u0001\u008f\u0001\u008f\u0001"+ + "\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001"+ + "\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001"+ + "\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001"+ + "\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0092\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001"+ + "\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001"+ + "\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0094\u0001"+ + "\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001"+ + "\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001"+ + "\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0099\u0001\u0099\u0001\u0099\u0001"+ + "\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b\u0001"+ + "\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001"+ + "\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001"+ + "\u009f\u0001\u009f\u0001\u009f\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001"+ + "\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001"+ + "\u00a4\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001"+ + "\u00a5\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001"+ + "\u00a6\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00aa\u0001"+ + "\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001"+ + "\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ac\u0001\u00ac\u0001"+ + "\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001"+ + "\u00ad\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001"+ + "\u00ae\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001"+ + "\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00b0\u0001\u00b0\u0001"+ + "\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001"+ + "\u00b0\u0001\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001"+ + "\u00b5\u0001\u00b5\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00ba\u0001\u00ba\u0001"+ + "\u00ba\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bb\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001"+ + "\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001"+ + "\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001"+ + "\u00be\u0001\u00be\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001"+ + "\u00bf\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001"+ + "\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001"+ + "\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001"+ + "\u00c1\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001"+ + "\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001"+ + "\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001"+ + "\u00c5\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001"+ + "\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cc\u0001\u00cc\u0001"+ + "\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001"+ + "\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00ce\u0001"+ + "\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00cf\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001"+ + "\u00d0\u0001\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001"+ + "\u00d1\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001"+ + "\u00d2\u0001\u00d2\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001"+ + "\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001"+ + "\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001"+ + "\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001"+ + "\u00d6\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d8\u0001"+ + "\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001"+ + "\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00da\u0001\u00da\u0001"+ + "\u00da\u0001\u00da\u0001\u00da\u0001\u00db\u0001\u00db\u0001\u00db\u0001"+ + "\u00db\u0001\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001"+ + "\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00df\u0001\u00df\u0001"+ + "\u00df\u0001\u00df\u0001\u00df\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001"+ + "\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001"+ + "\u00e1\u0001\u00e1\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001"+ + "\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e7\u0001\u00e7\u0001"+ + "\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001"+ + "\u00e8\u0001\u00e8\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001"+ + "\u00eb\u0001\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001"+ + "\u00ec\u0001\u00ec\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001"+ + "\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ee\u0001\u00ee\u0001"+ + "\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001"+ + "\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001"+ + "\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f1\u0001\u00f1\u0001"+ + "\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001"+ + "\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001"+ + "\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001"+ + "\u00f3\u0001\u00f3\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001"+ + "\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001\u00f5\u0001"+ + "\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f6\u0001\u00f6\u0001"+ + "\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001"+ + "\u00f6\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001"+ + "\u00f7\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f9\u0001"+ + "\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001"+ + "\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001"+ + "\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001"+ + "\u00fb\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001"+ + "\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001"+ + "\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001"+ + "\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00ff\u0001"+ + "\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u0100\u0001"+ + "\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0101\u0001\u0101\u0001"+ + "\u0101\u0001\u0101\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001"+ + "\u0102\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001"+ + "\u0103\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001"+ + "\u0104\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001"+ + "\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001"+ + "\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0106\u0001\u0106\u0001"+ + "\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001"+ + "\u0106\u0001\u0106\u0001\u0106\u0001\u0107\u0001\u0107\u0001\u0107\u0001"+ + "\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001"+ + "\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001"+ + "\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0109\u0001\u0109\u0001"+ + "\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001"+ + "\u0109\u0001\u0109\u0001\u0109\u0001\u010a\u0001\u010a\u0001\u010a\u0001"+ + "\u010a\u0001\u010a\u0001\u010a\u0001\u010b\u0001\u010b\u0001\u010b\u0001"+ + "\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010c\u0001"+ + "\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010d\u0001"+ + "\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010e\u0001"+ + "\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001"+ + "\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010f\u0001\u010f\u0001"+ + "\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001"+ + "\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u0110\u0001"+ + "\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001"+ + "\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001"+ + "\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0112\u0001"+ + "\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001"+ + "\u0112\u0001\u0112\u0001\u0112\u0001\u0113\u0001\u0113\u0001\u0113\u0001"+ + "\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0114\u0001\u0114\u0001"+ + "\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0115\u0001\u0115\u0001"+ + "\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001"+ + "\u0115\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001"+ + "\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0117\u0001\u0117\u0001"+ + "\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001"+ + "\u0117\u0001\u0117\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001"+ + "\u0118\u0001\u0118\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001"+ + "\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u011a\u0001\u011a\u0001"+ + "\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001"+ + "\u011a\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001"+ + "\u011b\u0001\u011b\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001"+ + "\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011d\u0001\u011d\u0001"+ + "\u011d\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001"+ + "\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001"+ + "\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u0120\u0001\u0120\u0001"+ + "\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001"+ + "\u0120\u0001\u0120\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001"+ + "\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0122\u0001\u0122\u0001"+ + "\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001"+ + "\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001"+ + "\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001"+ + "\u0124\u0001\u0124\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001"+ + "\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001"+ + "\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001"+ + "\u0126\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001"+ + "\u0127\u0001\u0127\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001"+ + "\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001"+ + "\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001"+ + "\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001"+ + "\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001"+ + "\u012a\u0001\u012a\u0001\u012a\u0001\u012b\u0001\u012b\u0001\u012b\u0001"+ + "\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012c\u0001\u012c\u0001"+ + "\u012c\u0001\u012c\u0001\u012c\u0001\u012d\u0001\u012d\u0001\u012d\u0001"+ + "\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012e\u0001\u012e\u0001"+ + "\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001"+ + "\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001"+ + "\u012f\u0001\u012f\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001"+ + "\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0131\u0001"+ + "\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001"+ + "\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0132\u0001\u0132\u0001"+ + "\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001"+ + "\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0133\u0001\u0133\u0001"+ + "\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001"+ + "\u0133\u0001\u0133\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001"+ + "\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0135\u0001"+ + "\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0136\u0001\u0136\u0001"+ + "\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0137\u0001\u0137\u0001"+ + "\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001"+ + "\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001"+ + "\u0138\u0001\u0138\u0001\u0138\u0001\u0139\u0001\u0139\u0001\u0139\u0001"+ + "\u0139\u0001\u0139\u0001\u0139\u0001\u013a\u0001\u013a\u0001\u013a\u0001"+ + "\u013a\u0001\u013a\u0001\u013a\u0001\u013b\u0001\u013b\u0001\u013b\u0001"+ + "\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013c\u0001\u013c\u0001"+ + "\u013c\u0001\u013c\u0001\u013c\u0001\u013d\u0001\u013d\u0001\u013d\u0001"+ + "\u013d\u0001\u013d\u0001\u013d\u0001\u013e\u0001\u013e\u0001\u013e\u0001"+ + "\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013f\u0001"+ + "\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0001"+ + "\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0141\u0001"+ + "\u0141\u0001\u0141\u0001\u0141\u0001\u0142\u0001\u0142\u0001\u0142\u0001"+ + "\u0142\u0001\u0143\u0001\u0143\u0001\u0143\u0001\u0143\u0001\u0143\u0001"+ + "\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0145\u0001"+ + "\u0145\u0001\u0145\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001"+ + "\u0146\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001"+ + "\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001"+ + "\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0149\u0001"+ + "\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001"+ + "\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u014a\u0001\u014a\u0001"+ + "\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001"+ + "\u014a\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001"+ + "\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001"+ + "\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001"+ + "\u014c\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001"+ + "\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001"+ + "\u014d\u0001\u014d\u0001\u014d\u0001\u014e\u0001\u014e\u0001\u014e\u0001"+ + "\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001"+ + "\u014e\u0001\u014e\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001"+ + "\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u0150\u0001"+ + "\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001"+ + "\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001"+ + "\u0151\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001"+ + "\u0152\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153\u0001"+ + "\u0154\u0001\u0154\u0001\u0154\u0001\u0155\u0001\u0155\u0001\u0155\u0001"+ + "\u0155\u0001\u0155\u0001\u0155\u0001\u0156\u0001\u0156\u0001\u0156\u0001"+ + "\u0156\u0001\u0156\u0001\u0156\u0001\u0156\u0001\u0156\u0001\u0156\u0001"+ + "\u0156\u0001\u0156\u0001\u0156\u0001\u0157\u0001\u0157\u0001\u0157\u0001"+ + "\u0157\u0001\u0157\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001"+ + "\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001"+ + "\u0158\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001"+ + "\u0159\u0001\u0159\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001"+ + "\u015a\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001"+ + "\u015b\u0001\u015b\u0001\u015b\u0001\u015c\u0001\u015c\u0001\u015c\u0001"+ + "\u015c\u0001\u015c\u0001\u015c\u0001\u015d\u0001\u015d\u0001\u015d\u0001"+ + "\u015d\u0001\u015d\u0001\u015e\u0001\u015e\u0003\u015e\u0d75\b\u015e\u0001"+ + "\u015f\u0001\u015f\u0005\u015f\u0d79\b\u015f\n\u015f\f\u015f\u0d7c\t\u015f"+ + "\u0001\u0160\u0004\u0160\u0d7f\b\u0160\u000b\u0160\f\u0160\u0d80\u0001"+ + "\u0161\u0001\u0161\u0003\u0161\u0d85\b\u0161\u0001\u0162\u0001\u0162\u0001"+ + "\u0162\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0164\u0001\u0164\u0003"+ + "\u0164\u0d8f\b\u0164\u0001\u0165\u0001\u0165\u0001\u0166\u0001\u0166\u0001"+ + "\u0167\u0001\u0167\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001"+ + "\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u016a\u0001\u016a\u0001"+ + "\u016a\u0001\u016a\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016c\u0001"+ + "\u016c\u0001\u016c\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016e\u0001"+ + "\u016e\u0001\u016e\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u0170\u0001"+ + "\u0170\u0001\u0170\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0172\u0001"+ + "\u0172\u0001\u0172\u0001\u0172\u0001\u0173\u0001\u0173\u0001\u0173\u0001"+ + "\u0173\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0175\u0001"+ + "\u0175\u0001\u0175\u0001\u0175\u0001\u0176\u0001\u0176\u0001\u0176\u0001"+ + "\u0176\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0178\u0001\u0178\u0001"+ + "\u0178\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u017a\u0001\u017a\u0001"+ + "\u017a\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017c\u0001\u017c\u0001"+ + "\u017c\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017e\u0001\u017e\u0001"+ + "\u017e\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u0180\u0001\u0180\u0001"+ + "\u0180\u0001\u0180\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0182\u0001"+ + "\u0182\u0001\u0182\u0001\u0182\u0001\u0183\u0001\u0183\u0001\u0183\u0001"+ + "\u0184\u0001\u0184\u0001\u0184\u0001\u0185\u0001\u0185\u0001\u0185\u0001"+ + "\u0186\u0001\u0186\u0001\u0187\u0001\u0187\u0001\u0188\u0001\u0188\u0001"+ + "\u0189\u0001\u0189\u0001\u018a\u0001\u018a\u0001\u018b\u0001\u018b\u0001"+ + "\u018c\u0001\u018c\u0001\u018d\u0001\u018d\u0001\u018e\u0001\u018e\u0001"+ + "\u018f\u0001\u018f\u0001\u0190\u0001\u0190\u0001\u0191\u0001\u0191\u0001"+ + "\u0192\u0001\u0192\u0001\u0193\u0001\u0193\u0001\u0194\u0001\u0194\u0001"+ + "\u0195\u0001\u0195\u0001\u0196\u0001\u0196\u0001\u0197\u0001\u0197\u0001"+ + "\u0198\u0001\u0198\u0001\u0199\u0001\u0199\u0001\u019a\u0001\u019a\u0001"+ + "\u019b\u0001\u019b\u0001\u019c\u0001\u019c\u0001\u019d\u0001\u019d\u0001"+ + "\u019e\u0001\u019e\u0001\u019f\u0001\u019f\u0001\u01a0\u0001\u01a0\u0001"+ + "\u01a1\u0001\u01a1\u0001\u01a2\u0001\u01a2\u0001\u01a3\u0001\u01a3\u0001"+ + "\u01a4\u0001\u01a4\u0001\u01a5\u0001\u01a5\u0001\u01a6\u0001\u01a6\u0001"+ + "\u01a7\u0004\u01a7\u0e3e\b\u01a7\u000b\u01a7\f\u01a7\u0e3f\u0001\u01a7"+ + "\u0001\u01a7\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0003\u01a8\u0e4f\b\u01a8\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9"+ + "\u0005\u01a9\u0e55\b\u01a9\n\u01a9\f\u01a9\u0e58\t\u01a9\u0001\u01a9\u0001"+ + "\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01aa\u0001\u01aa\u0001"+ + "\u01aa\u0001\u01aa\u0005\u01aa\u0e63\b\u01aa\n\u01aa\f\u01aa\u0e66\t\u01aa"+ + "\u0001\u01aa\u0001\u01aa\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab"+ + "\u0005\u01ab\u0e6e\b\u01ab\n\u01ab\f\u01ab\u0e71\t\u01ab\u0001\u01ab\u0001"+ + "\u01ab\u0001\u01ac\u0001\u01ac\u0001\u01ad\u0001\u01ad\u0001\u01ae\u0001"+ + "\u01ae\u0001\u01af\u0001\u01af\u0001\u01b0\u0001\u01b0\u0001\u01b1\u0001"+ + "\u01b1\u0001\u01b2\u0001\u01b2\u0001\u01b3\u0001\u01b3\u0001\u01b4\u0001"+ + "\u01b4\u0001\u01b5\u0001\u01b5\u0001\u01b6\u0001\u01b6\u0001\u01b7\u0001"+ + "\u01b7\u0001\u0e56\u0000\u01b8\u0001\u0001\u0003\u0000\u0005\u0002\u0007"+ + "\u0003\t\u0004\u000b\u0005\r\u0006\u000f\u0000\u0011\u0000\u0013\u0000"+ + "\u0015\u0000\u0017\u0000\u0019\u0000\u001b\u0000\u001d\u0000\u001f\u0000"+ + "!\u0000#\u0000%\u0000\'\u0000)\u0000+\u0000-\u0000/\u00001\u00003\u0007"+ + "5\b7\t9\n;\u000b=\f?\rA\u000eC\u000fE\u0010G\u0000I\u0000K\u0000M\u0000"+ + "O\u0000Q\u0000S\u0011U\u0012W\u0013Y\u0000[\u0014]\u0015_\u0016a\u0017"+ + "c\u0018e\u0019g\u001ai\u001bk\u001cm\u001do\u001eq\u001fs u!w\"y#{$}%"+ + "\u007f&\u0081\'\u0083(\u0085)\u0087*\u0089+\u008b,\u008d-\u008f.\u0091"+ + "/\u00930\u00951\u00972\u00993\u009b4\u009d5\u009f6\u00a17\u00a38\u00a5"+ + "9\u00a7:\u00a9;\u00ab<\u00ad=\u00af>\u00b1?\u00b3@\u00b5A\u00b7B\u00b9"+ + "C\u00bbD\u00bdE\u00bfF\u00c1G\u00c3H\u00c5I\u00c7J\u00c9K\u00cbL\u00cd"+ + "M\u00cfN\u00d1O\u00d3P\u00d5Q\u00d7R\u00d9S\u00dbT\u00ddU\u00dfV\u00e1"+ + "W\u00e3X\u00e5Y\u00e7Z\u00e9[\u00eb\\\u00ed]\u00ef^\u00f1_\u00f3`\u00f5"+ + "a\u00f7b\u00f9c\u00fbd\u00fde\u00fff\u0101g\u0103h\u0105i\u0107j\u0109"+ + "k\u010bl\u010dm\u010fn\u0111o\u0113p\u0115q\u0117r\u0119s\u011bt\u011d"+ + "u\u011fv\u0121w\u0123x\u0125y\u0127z\u0129{\u012b|\u012d}\u012f~\u0131"+ + "\u007f\u0133\u0080\u0135\u0081\u0137\u0082\u0139\u0083\u013b\u0084\u013d"+ + "\u0085\u013f\u0086\u0141\u0087\u0143\u0088\u0145\u0089\u0147\u008a\u0149"+ + "\u008b\u014b\u008c\u014d\u008d\u014f\u008e\u0151\u008f\u0153\u0090\u0155"+ + "\u0091\u0157\u0092\u0159\u0093\u015b\u0094\u015d\u0095\u015f\u0096\u0161"+ + "\u0097\u0163\u0098\u0165\u0099\u0167\u009a\u0169\u009b\u016b\u009c\u016d"+ + "\u009d\u016f\u009e\u0171\u009f\u0173\u00a0\u0175\u00a1\u0177\u00a2\u0179"+ + "\u00a3\u017b\u00a4\u017d\u00a5\u017f\u00a6\u0181\u00a7\u0183\u00a8\u0185"+ + "\u00a9\u0187\u00aa\u0189\u00ab\u018b\u00ac\u018d\u00ad\u018f\u00ae\u0191"+ + "\u00af\u0193\u00b0\u0195\u00b1\u0197\u00b2\u0199\u00b3\u019b\u00b4\u019d"+ + "\u00b5\u019f\u00b6\u01a1\u00b7\u01a3\u00b8\u01a5\u00b9\u01a7\u00ba\u01a9"+ + "\u00bb\u01ab\u00bc\u01ad\u00bd\u01af\u00be\u01b1\u00bf\u01b3\u00c0\u01b5"+ + "\u00c1\u01b7\u00c2\u01b9\u00c3\u01bb\u00c4\u01bd\u00c5\u01bf\u00c6\u01c1"+ + "\u00c7\u01c3\u00c8\u01c5\u00c9\u01c7\u00ca\u01c9\u00cb\u01cb\u00cc\u01cd"+ + "\u00cd\u01cf\u00ce\u01d1\u00cf\u01d3\u00d0\u01d5\u00d1\u01d7\u00d2\u01d9"+ + "\u00d3\u01db\u00d4\u01dd\u00d5\u01df\u00d6\u01e1\u00d7\u01e3\u00d8\u01e5"+ + "\u00d9\u01e7\u00da\u01e9\u00db\u01eb\u00dc\u01ed\u00dd\u01ef\u00de\u01f1"+ + "\u00df\u01f3\u00e0\u01f5\u00e1\u01f7\u00e2\u01f9\u00e3\u01fb\u00e4\u01fd"+ + "\u00e5\u01ff\u00e6\u0201\u00e7\u0203\u00e8\u0205\u00e9\u0207\u00ea\u0209"+ + "\u00eb\u020b\u00ec\u020d\u00ed\u020f\u00ee\u0211\u00ef\u0213\u00f0\u0215"+ + "\u00f1\u0217\u00f2\u0219\u00f3\u021b\u00f4\u021d\u00f5\u021f\u00f6\u0221"+ + "\u00f7\u0223\u00f8\u0225\u00f9\u0227\u00fa\u0229\u00fb\u022b\u00fc\u022d"+ + "\u00fd\u022f\u00fe\u0231\u00ff\u0233\u0100\u0235\u0101\u0237\u0102\u0239"+ + "\u0103\u023b\u0104\u023d\u0105\u023f\u0106\u0241\u0107\u0243\u0108\u0245"+ + "\u0109\u0247\u010a\u0249\u010b\u024b\u010c\u024d\u010d\u024f\u010e\u0251"+ + "\u010f\u0253\u0110\u0255\u0111\u0257\u0112\u0259\u0113\u025b\u0114\u025d"+ + "\u0115\u025f\u0116\u0261\u0117\u0263\u0118\u0265\u0119\u0267\u011a\u0269"+ + "\u011b\u026b\u011c\u026d\u011d\u026f\u011e\u0271\u011f\u0273\u0120\u0275"+ + "\u0121\u0277\u0122\u0279\u0123\u027b\u0124\u027d\u0125\u027f\u0126\u0281"+ + "\u0127\u0283\u0128\u0285\u0129\u0287\u012a\u0289\u012b\u028b\u012c\u028d"+ + "\u012d\u028f\u012e\u0291\u012f\u0293\u0130\u0295\u0131\u0297\u0132\u0299"+ + "\u0133\u029b\u0134\u029d\u0135\u029f\u0136\u02a1\u0137\u02a3\u0138\u02a5"+ + "\u0139\u02a7\u013a\u02a9\u013b\u02ab\u013c\u02ad\u013d\u02af\u013e\u02b1"+ + "\u013f\u02b3\u0140\u02b5\u0141\u02b7\u0142\u02b9\u0143\u02bb\u0144\u02bd"+ + "\u0000\u02bf\u0145\u02c1\u0000\u02c3\u0000\u02c5\u0146\u02c7\u0147\u02c9"+ + "\u0000\u02cb\u0000\u02cd\u0000\u02cf\u0000\u02d1\u0148\u02d3\u0149\u02d5"+ + "\u014a\u02d7\u014b\u02d9\u014c\u02db\u014d\u02dd\u014e\u02df\u014f\u02e1"+ + "\u0150\u02e3\u0151\u02e5\u0152\u02e7\u0153\u02e9\u0154\u02eb\u0155\u02ed"+ + "\u0156\u02ef\u0157\u02f1\u0158\u02f3\u0159\u02f5\u015a\u02f7\u015b\u02f9"+ + "\u015c\u02fb\u015d\u02fd\u015e\u02ff\u015f\u0301\u0160\u0303\u0161\u0305"+ + "\u0162\u0307\u0163\u0309\u0164\u030b\u0165\u030d\u0166\u030f\u0167\u0311"+ + "\u0168\u0313\u0169\u0315\u016a\u0317\u016b\u0319\u016c\u031b\u016d\u031d"+ + "\u016e\u031f\u016f\u0321\u0170\u0323\u0171\u0325\u0172\u0327\u0173\u0329"+ + "\u0174\u032b\u0175\u032d\u0176\u032f\u0177\u0331\u0178\u0333\u0179\u0335"+ + "\u017a\u0337\u017b\u0339\u017c\u033b\u017d\u033d\u017e\u033f\u017f\u0341"+ + "\u0180\u0343\u0181\u0345\u0182\u0347\u0000\u0349\u0000\u034b\u0000\u034d"+ + "\u0000\u034f\u0183\u0351\u0184\u0353\u0185\u0355\u0186\u0357\u0187\u0359"+ + "\u0000\u035b\u0000\u035d\u0000\u035f\u0000\u0361\u0000\u0363\u0000\u0365"+ + "\u0000\u0367\u0000\u0369\u0000\u036b\u0000\u036d\u0000\u036f\u0000\u0001"+ + "\u00002\u0002\u0000IIii\u0002\u0000MMmm\u0002\u0000PPpp\u0002\u0000LL"+ + "ll\u0002\u0000EEee\u0002\u0000SSss\u0002\u0000TTtt\u0002\u0000RRrr\u0002"+ + "\u0000UUuu\u0002\u0000FFff\u0002\u0000AAaa\u0002\u0000NNnn\u0002\u0000"+ + "KKkk\u0002\u0000OOoo\u0002\u0000WWww\u0004\u0000\n\n\r\r\'\'\\\\\u0004"+ + "\u0000\n\n\r\r\"\"\\\\\u0004\u0000\n\n\r\r\\\\``\u0002\u0000BBbb\u0002"+ + "\u0000XXxx\u0004\u0000DDFFddff\u0002\u0000CCcc\u0002\u0000DDdd\u0002\u0000"+ + "YYyy\u0002\u0000GGgg\u0002\u0000VVvv\u0002\u0000HHhh\u0002\u0000ZZzz\u0002"+ + "\u0000QQqq\u0002\u0000JJjj\u0288\u0000AZaz\u00aa\u00aa\u00b5\u00b5\u00ba"+ + "\u00ba\u00c0\u00d6\u00d8\u00f6\u00f8\u02c1\u02c6\u02d1\u02e0\u02e4\u02ec"+ + "\u02ec\u02ee\u02ee\u0370\u0374\u0376\u0377\u037a\u037d\u037f\u037f\u0386"+ + "\u0386\u0388\u038a\u038c\u038c\u038e\u03a1\u03a3\u03f5\u03f7\u0481\u048a"+ + "\u052f\u0531\u0556\u0559\u0559\u0560\u0588\u05d0\u05ea\u05ef\u05f2\u0620"+ + "\u064a\u066e\u066f\u0671\u06d3\u06d5\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa"+ + "\u06fc\u06ff\u06ff\u0710\u0710\u0712\u072f\u074d\u07a5\u07b1\u07b1\u07ca"+ + "\u07ea\u07f4\u07f5\u07fa\u07fa\u0800\u0815\u081a\u081a\u0824\u0824\u0828"+ + "\u0828\u0840\u0858\u0860\u086a\u0870\u0887\u0889\u088e\u08a0\u08c9\u0904"+ + "\u0939\u093d\u093d\u0950\u0950\u0958\u0961\u0971\u0980\u0985\u098c\u098f"+ + "\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09bd\u09bd\u09ce"+ + "\u09ce\u09dc\u09dd\u09df\u09e1\u09f0\u09f1\u09fc\u09fc\u0a05\u0a0a\u0a0f"+ + "\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59"+ + "\u0a5c\u0a5e\u0a5e\u0a72\u0a74\u0a85\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa"+ + "\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abd\u0abd\u0ad0\u0ad0\u0ae0\u0ae1\u0af9"+ + "\u0af9\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b35"+ + "\u0b39\u0b3d\u0b3d\u0b5c\u0b5d\u0b5f\u0b61\u0b71\u0b71\u0b83\u0b83\u0b85"+ + "\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3"+ + "\u0ba4\u0ba8\u0baa\u0bae\u0bb9\u0bd0\u0bd0\u0c05\u0c0c\u0c0e\u0c10\u0c12"+ + "\u0c28\u0c2a\u0c39\u0c3d\u0c3d\u0c58\u0c5a\u0c5d\u0c5d\u0c60\u0c61\u0c80"+ + "\u0c80\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbd"+ + "\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04\u0d0c\u0d0e\u0d10\u0d12"+ + "\u0d3a\u0d3d\u0d3d\u0d4e\u0d4e\u0d54\u0d56\u0d5f\u0d61\u0d7a\u0d7f\u0d85"+ + "\u0d96\u0d9a\u0db1\u0db3\u0dbb\u0dbd\u0dbd\u0dc0\u0dc6\u0e01\u0e30\u0e32"+ + "\u0e33\u0e40\u0e46\u0e81\u0e82\u0e84\u0e84\u0e86\u0e8a\u0e8c\u0ea3\u0ea5"+ + "\u0ea5\u0ea7\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0edc"+ + "\u0edf\u0f00\u0f00\u0f40\u0f47\u0f49\u0f6c\u0f88\u0f8c\u1000\u102a\u103f"+ + "\u103f\u1050\u1055\u105a\u105d\u1061\u1061\u1065\u1066\u106e\u1070\u1075"+ + "\u1081\u108e\u108e\u10a0\u10c5\u10c7\u10c7\u10cd\u10cd\u10d0\u10fa\u10fc"+ + "\u1248\u124a\u124d\u1250\u1256\u1258\u1258\u125a\u125d\u1260\u1288\u128a"+ + "\u128d\u1290\u12b0\u12b2\u12b5\u12b8\u12be\u12c0\u12c0\u12c2\u12c5\u12c8"+ + "\u12d6\u12d8\u1310\u1312\u1315\u1318\u135a\u1380\u138f\u13a0\u13f5\u13f8"+ + "\u13fd\u1401\u166c\u166f\u167f\u1681\u169a\u16a0\u16ea\u16ee\u16f8\u1700"+ + "\u1711\u171f\u1731\u1740\u1751\u1760\u176c\u176e\u1770\u1780\u17b3\u17d7"+ + "\u17d7\u17dc\u17dc\u1820\u1878\u1880\u18a8\u18aa\u18aa\u18b0\u18f5\u1900"+ + "\u191e\u1950\u196d\u1970\u1974\u1980\u19ab\u19b0\u19c9\u1a00\u1a16\u1a20"+ + "\u1a54\u1aa7\u1aa7\u1b05\u1b33\u1b45\u1b4c\u1b83\u1ba0\u1bae\u1baf\u1bba"+ + "\u1be5\u1c00\u1c23\u1c4d\u1c4f\u1c5a\u1c7d\u1c80\u1c88\u1c90\u1cba\u1cbd"+ + "\u1cbf\u1ce9\u1cec\u1cee\u1cf3\u1cf5\u1cf6\u1cfa\u1cfa\u1d00\u1dbf\u1e00"+ + "\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b"+ + "\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2"+ + "\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6"+ + "\u1ffc\u2071\u2071\u207f\u207f\u2090\u209c\u2102\u2102\u2107\u2107\u210a"+ + "\u2113\u2115\u2115\u2118\u211d\u2124\u2124\u2126\u2126\u2128\u2128\u212a"+ + "\u2139\u213c\u213f\u2145\u2149\u214e\u214e\u2160\u2188\u2c00\u2ce4\u2ceb"+ + "\u2cee\u2cf2\u2cf3\u2d00\u2d25\u2d27\u2d27\u2d2d\u2d2d\u2d30\u2d67\u2d6f"+ + "\u2d6f\u2d80\u2d96\u2da0\u2da6\u2da8\u2dae\u2db0\u2db6\u2db8\u2dbe\u2dc0"+ + "\u2dc6\u2dc8\u2dce\u2dd0\u2dd6\u2dd8\u2dde\u3005\u3007\u3021\u3029\u3031"+ + "\u3035\u3038\u303c\u3041\u3096\u309b\u309f\u30a1\u30fa\u30fc\u30ff\u3105"+ + "\u312f\u3131\u318e\u31a0\u31bf\u31f0\u31ff\u3400\u4dbf\u4e00\u8000\ua48c"+ + "\u8000\ua4d0\u8000\ua4fd\u8000\ua500\u8000\ua60c\u8000\ua610\u8000\ua61f"+ + "\u8000\ua62a\u8000\ua62b\u8000\ua640\u8000\ua66e\u8000\ua67f\u8000\ua69d"+ + "\u8000\ua6a0\u8000\ua6ef\u8000\ua717\u8000\ua71f\u8000\ua722\u8000\ua788"+ + "\u8000\ua78b\u8000\ua7ca\u8000\ua7d0\u8000\ua7d1\u8000\ua7d3\u8000\ua7d3"+ + "\u8000\ua7d5\u8000\ua7d9\u8000\ua7f2\u8000\ua801\u8000\ua803\u8000\ua805"+ + "\u8000\ua807\u8000\ua80a\u8000\ua80c\u8000\ua822\u8000\ua840\u8000\ua873"+ + "\u8000\ua882\u8000\ua8b3\u8000\ua8f2\u8000\ua8f7\u8000\ua8fb\u8000\ua8fb"+ + "\u8000\ua8fd\u8000\ua8fe\u8000\ua90a\u8000\ua925\u8000\ua930\u8000\ua946"+ + "\u8000\ua960\u8000\ua97c\u8000\ua984\u8000\ua9b2\u8000\ua9cf\u8000\ua9cf"+ + "\u8000\ua9e0\u8000\ua9e4\u8000\ua9e6\u8000\ua9ef\u8000\ua9fa\u8000\ua9fe"+ + "\u8000\uaa00\u8000\uaa28\u8000\uaa40\u8000\uaa42\u8000\uaa44\u8000\uaa4b"+ + "\u8000\uaa60\u8000\uaa76\u8000\uaa7a\u8000\uaa7a\u8000\uaa7e\u8000\uaaaf"+ + "\u8000\uaab1\u8000\uaab1\u8000\uaab5\u8000\uaab6\u8000\uaab9\u8000\uaabd"+ + "\u8000\uaac0\u8000\uaac0\u8000\uaac2\u8000\uaac2\u8000\uaadb\u8000\uaadd"+ + "\u8000\uaae0\u8000\uaaea\u8000\uaaf2\u8000\uaaf4\u8000\uab01\u8000\uab06"+ + "\u8000\uab09\u8000\uab0e\u8000\uab11\u8000\uab16\u8000\uab20\u8000\uab26"+ + "\u8000\uab28\u8000\uab2e\u8000\uab30\u8000\uab5a\u8000\uab5c\u8000\uab69"+ + "\u8000\uab70\u8000\uabe2\u8000\uac00\u8000\ud7a3\u8000\ud7b0\u8000\ud7c6"+ + "\u8000\ud7cb\u8000\ud7fb\u8000\uf900\u8000\ufa6d\u8000\ufa70\u8000\ufad9"+ + "\u8000\ufb00\u8000\ufb06\u8000\ufb13\u8000\ufb17\u8000\ufb1d\u8000\ufb1d"+ + "\u8000\ufb1f\u8000\ufb28\u8000\ufb2a\u8000\ufb36\u8000\ufb38\u8000\ufb3c"+ + "\u8000\ufb3e\u8000\ufb3e\u8000\ufb40\u8000\ufb41\u8000\ufb43\u8000\ufb44"+ + "\u8000\ufb46\u8000\ufbb1\u8000\ufbd3\u8000\ufd3d\u8000\ufd50\u8000\ufd8f"+ + "\u8000\ufd92\u8000\ufdc7\u8000\ufdf0\u8000\ufdfb\u8000\ufe70\u8000\ufe74"+ + "\u8000\ufe76\u8000\ufefc\u8000\uff21\u8000\uff3a\u8000\uff41\u8000\uff5a"+ + "\u8000\uff66\u8000\uffbe\u8000\uffc2\u8000\uffc7\u8000\uffca\u8000\uffcf"+ + "\u8000\uffd2\u8000\uffd7\u8000\uffda\u8000\uffdc\u8001\u0000\u8001\u000b"+ + "\u8001\r\u8001&\u8001(\u8001:\u8001<\u8001=\u8001?\u8001M\u8001P\u8001"+ + "]\u8001\u0080\u8001\u00fa\u8001\u0140\u8001\u0174\u8001\u0280\u8001\u029c"+ + "\u8001\u02a0\u8001\u02d0\u8001\u0300\u8001\u031f\u8001\u032d\u8001\u034a"+ + "\u8001\u0350\u8001\u0375\u8001\u0380\u8001\u039d\u8001\u03a0\u8001\u03c3"+ + "\u8001\u03c8\u8001\u03cf\u8001\u03d1\u8001\u03d5\u8001\u0400\u8001\u049d"+ + "\u8001\u04b0\u8001\u04d3\u8001\u04d8\u8001\u04fb\u8001\u0500\u8001\u0527"+ + "\u8001\u0530\u8001\u0563\u8001\u0570\u8001\u057a\u8001\u057c\u8001\u058a"+ + "\u8001\u058c\u8001\u0592\u8001\u0594\u8001\u0595\u8001\u0597\u8001\u05a1"+ + "\u8001\u05a3\u8001\u05b1\u8001\u05b3\u8001\u05b9\u8001\u05bb\u8001\u05bc"+ + "\u8001\u0600\u8001\u0736\u8001\u0740\u8001\u0755\u8001\u0760\u8001\u0767"+ + "\u8001\u0780\u8001\u0785\u8001\u0787\u8001\u07b0\u8001\u07b2\u8001\u07ba"+ + "\u8001\u0800\u8001\u0805\u8001\u0808\u8001\u0808\u8001\u080a\u8001\u0835"+ + "\u8001\u0837\u8001\u0838\u8001\u083c\u8001\u083c\u8001\u083f\u8001\u0855"+ + "\u8001\u0860\u8001\u0876\u8001\u0880\u8001\u089e\u8001\u08e0\u8001\u08f2"+ + "\u8001\u08f4\u8001\u08f5\u8001\u0900\u8001\u0915\u8001\u0920\u8001\u0939"+ + "\u8001\u0980\u8001\u09b7\u8001\u09be\u8001\u09bf\u8001\u0a00\u8001\u0a00"+ + "\u8001\u0a10\u8001\u0a13\u8001\u0a15\u8001\u0a17\u8001\u0a19\u8001\u0a35"+ + "\u8001\u0a60\u8001\u0a7c\u8001\u0a80\u8001\u0a9c\u8001\u0ac0\u8001\u0ac7"+ + "\u8001\u0ac9\u8001\u0ae4\u8001\u0b00\u8001\u0b35\u8001\u0b40\u8001\u0b55"+ + "\u8001\u0b60\u8001\u0b72\u8001\u0b80\u8001\u0b91\u8001\u0c00\u8001\u0c48"+ + "\u8001\u0c80\u8001\u0cb2\u8001\u0cc0\u8001\u0cf2\u8001\u0d00\u8001\u0d23"+ + "\u8001\u0e80\u8001\u0ea9\u8001\u0eb0\u8001\u0eb1\u8001\u0f00\u8001\u0f1c"+ + "\u8001\u0f27\u8001\u0f27\u8001\u0f30\u8001\u0f45\u8001\u0f70\u8001\u0f81"+ + "\u8001\u0fb0\u8001\u0fc4\u8001\u0fe0\u8001\u0ff6\u8001\u1003\u8001\u1037"+ + "\u8001\u1071\u8001\u1072\u8001\u1075\u8001\u1075\u8001\u1083\u8001\u10af"+ + "\u8001\u10d0\u8001\u10e8\u8001\u1103\u8001\u1126\u8001\u1144\u8001\u1144"+ + "\u8001\u1147\u8001\u1147\u8001\u1150\u8001\u1172\u8001\u1176\u8001\u1176"+ + "\u8001\u1183\u8001\u11b2\u8001\u11c1\u8001\u11c4\u8001\u11da\u8001\u11da"+ + "\u8001\u11dc\u8001\u11dc\u8001\u1200\u8001\u1211\u8001\u1213\u8001\u122b"+ + "\u8001\u1280\u8001\u1286\u8001\u1288\u8001\u1288\u8001\u128a\u8001\u128d"+ + "\u8001\u128f\u8001\u129d\u8001\u129f\u8001\u12a8\u8001\u12b0\u8001\u12de"+ + "\u8001\u1305\u8001\u130c\u8001\u130f\u8001\u1310\u8001\u1313\u8001\u1328"+ + "\u8001\u132a\u8001\u1330\u8001\u1332\u8001\u1333\u8001\u1335\u8001\u1339"+ + "\u8001\u133d\u8001\u133d\u8001\u1350\u8001\u1350\u8001\u135d\u8001\u1361"+ + "\u8001\u1400\u8001\u1434\u8001\u1447\u8001\u144a\u8001\u145f\u8001\u1461"+ + "\u8001\u1480\u8001\u14af\u8001\u14c4\u8001\u14c5\u8001\u14c7\u8001\u14c7"+ + "\u8001\u1580\u8001\u15ae\u8001\u15d8\u8001\u15db\u8001\u1600\u8001\u162f"+ + "\u8001\u1644\u8001\u1644\u8001\u1680\u8001\u16aa\u8001\u16b8\u8001\u16b8"+ + "\u8001\u1700\u8001\u171a\u8001\u1740\u8001\u1746\u8001\u1800\u8001\u182b"+ + "\u8001\u18a0\u8001\u18df\u8001\u18ff\u8001\u1906\u8001\u1909\u8001\u1909"+ + "\u8001\u190c\u8001\u1913\u8001\u1915\u8001\u1916\u8001\u1918\u8001\u192f"+ + "\u8001\u193f\u8001\u193f\u8001\u1941\u8001\u1941\u8001\u19a0\u8001\u19a7"+ + "\u8001\u19aa\u8001\u19d0\u8001\u19e1\u8001\u19e1\u8001\u19e3\u8001\u19e3"+ + "\u8001\u1a00\u8001\u1a00\u8001\u1a0b\u8001\u1a32\u8001\u1a3a\u8001\u1a3a"+ + "\u8001\u1a50\u8001\u1a50\u8001\u1a5c\u8001\u1a89\u8001\u1a9d\u8001\u1a9d"+ + "\u8001\u1ab0\u8001\u1af8\u8001\u1c00\u8001\u1c08\u8001\u1c0a\u8001\u1c2e"+ + "\u8001\u1c40\u8001\u1c40\u8001\u1c72\u8001\u1c8f\u8001\u1d00\u8001\u1d06"+ + "\u8001\u1d08\u8001\u1d09\u8001\u1d0b\u8001\u1d30\u8001\u1d46\u8001\u1d46"+ + "\u8001\u1d60\u8001\u1d65\u8001\u1d67\u8001\u1d68\u8001\u1d6a\u8001\u1d89"+ + "\u8001\u1d98\u8001\u1d98\u8001\u1ee0\u8001\u1ef2\u8001\u1fb0\u8001\u1fb0"+ + "\u8001\u2000\u8001\u2399\u8001\u2400\u8001\u246e\u8001\u2480\u8001\u2543"+ + "\u8001\u2f90\u8001\u2ff0\u8001\u3000\u8001\u342e\u8001\u4400\u8001\u4646"+ + "\u8001\u6800\u8001\u6a38\u8001\u6a40\u8001\u6a5e\u8001\u6a70\u8001\u6abe"+ + "\u8001\u6ad0\u8001\u6aed\u8001\u6b00\u8001\u6b2f\u8001\u6b40\u8001\u6b43"+ + "\u8001\u6b63\u8001\u6b77\u8001\u6b7d\u8001\u6b8f\u8001\u6e40\u8001\u6e7f"+ + "\u8001\u6f00\u8001\u6f4a\u8001\u6f50\u8001\u6f50\u8001\u6f93\u8001\u6f9f"+ + "\u8001\u6fe0\u8001\u6fe1\u8001\u6fe3\u8001\u6fe3\u8001\u7000\u8001\u87f7"+ + "\u8001\u8800\u8001\u8cd5\u8001\u8d00\u8001\u8d08\u8001\uaff0\u8001\uaff3"+ + "\u8001\uaff5\u8001\uaffb\u8001\uaffd\u8001\uaffe\u8001\ub000\u8001\ub122"+ + "\u8001\ub150\u8001\ub152\u8001\ub164\u8001\ub167\u8001\ub170\u8001\ub2fb"+ + "\u8001\ubc00\u8001\ubc6a\u8001\ubc70\u8001\ubc7c\u8001\ubc80\u8001\ubc88"+ + "\u8001\ubc90\u8001\ubc99\u8001\ud400\u8001\ud454\u8001\ud456\u8001\ud49c"+ + "\u8001\ud49e\u8001\ud49f\u8001\ud4a2\u8001\ud4a2\u8001\ud4a5\u8001\ud4a6"+ + "\u8001\ud4a9\u8001\ud4ac\u8001\ud4ae\u8001\ud4b9\u8001\ud4bb\u8001\ud4bb"+ + "\u8001\ud4bd\u8001\ud4c3\u8001\ud4c5\u8001\ud505\u8001\ud507\u8001\ud50a"+ + "\u8001\ud50d\u8001\ud514\u8001\ud516\u8001\ud51c\u8001\ud51e\u8001\ud539"+ + "\u8001\ud53b\u8001\ud53e\u8001\ud540\u8001\ud544\u8001\ud546\u8001\ud546"+ + "\u8001\ud54a\u8001\ud550\u8001\ud552\u8001\ud6a5\u8001\ud6a8\u8001\ud6c0"+ + "\u8001\ud6c2\u8001\ud6da\u8001\ud6dc\u8001\ud6fa\u8001\ud6fc\u8001\ud714"+ + "\u8001\ud716\u8001\ud734\u8001\ud736\u8001\ud74e\u8001\ud750\u8001\ud76e"+ + "\u8001\ud770\u8001\ud788\u8001\ud78a\u8001\ud7a8\u8001\ud7aa\u8001\ud7c2"+ + "\u8001\ud7c4\u8001\ud7cb\u8001\udf00\u8001\udf1e\u8001\ue100\u8001\ue12c"+ + "\u8001\ue137\u8001\ue13d\u8001\ue14e\u8001\ue14e\u8001\ue290\u8001\ue2ad"+ + "\u8001\ue2c0\u8001\ue2eb\u8001\ue7e0\u8001\ue7e6\u8001\ue7e8\u8001\ue7eb"+ + "\u8001\ue7ed\u8001\ue7ee\u8001\ue7f0\u8001\ue7fe\u8001\ue800\u8001\ue8c4"+ + "\u8001\ue900\u8001\ue943\u8001\ue94b\u8001\ue94b\u8001\uee00\u8001\uee03"+ + "\u8001\uee05\u8001\uee1f\u8001\uee21\u8001\uee22\u8001\uee24\u8001\uee24"+ + "\u8001\uee27\u8001\uee27\u8001\uee29\u8001\uee32\u8001\uee34\u8001\uee37"+ + "\u8001\uee39\u8001\uee39\u8001\uee3b\u8001\uee3b\u8001\uee42\u8001\uee42"+ + "\u8001\uee47\u8001\uee47\u8001\uee49\u8001\uee49\u8001\uee4b\u8001\uee4b"+ + "\u8001\uee4d\u8001\uee4f\u8001\uee51\u8001\uee52\u8001\uee54\u8001\uee54"+ + "\u8001\uee57\u8001\uee57\u8001\uee59\u8001\uee59\u8001\uee5b\u8001\uee5b"+ + "\u8001\uee5d\u8001\uee5d\u8001\uee5f\u8001\uee5f\u8001\uee61\u8001\uee62"+ + "\u8001\uee64\u8001\uee64\u8001\uee67\u8001\uee6a\u8001\uee6c\u8001\uee72"+ + "\u8001\uee74\u8001\uee77\u8001\uee79\u8001\uee7c\u8001\uee7e\u8001\uee7e"+ + "\u8001\uee80\u8001\uee89\u8001\uee8b\u8001\uee9b\u8001\ueea1\u8001\ueea3"+ + "\u8001\ueea5\u8001\ueea9\u8001\ueeab\u8001\ueebb\u8002\u0000\u8002\ua6df"+ + "\u8002\ua700\u8002\ub738\u8002\ub740\u8002\ub81d\u8002\ub820\u8002\ucea1"+ + "\u8002\uceb0\u8002\uebe0\u8002\uf800\u8002\ufa1d\u8003\u0000\u8003\u134a"+ + "\u02f4\u000009AZ__az\u00aa\u00aa\u00b5\u00b5\u00b7\u00b7\u00ba\u00ba\u00c0"+ + "\u00d6\u00d8\u00f6\u00f8\u02c1\u02c6\u02d1\u02e0\u02e4\u02ec\u02ec\u02ee"+ + "\u02ee\u0300\u0374\u0376\u0377\u037a\u037d\u037f\u037f\u0386\u038a\u038c"+ + "\u038c\u038e\u03a1\u03a3\u03f5\u03f7\u0481\u0483\u0487\u048a\u052f\u0531"+ + "\u0556\u0559\u0559\u0560\u0588\u0591\u05bd\u05bf\u05bf\u05c1\u05c2\u05c4"+ + "\u05c5\u05c7\u05c7\u05d0\u05ea\u05ef\u05f2\u0610\u061a\u0620\u0669\u066e"+ + "\u06d3\u06d5\u06dc\u06df\u06e8\u06ea\u06fc\u06ff\u06ff\u0710\u074a\u074d"+ + "\u07b1\u07c0\u07f5\u07fa\u07fa\u07fd\u07fd\u0800\u082d\u0840\u085b\u0860"+ + "\u086a\u0870\u0887\u0889\u088e\u0898\u08e1\u08e3\u0963\u0966\u096f\u0971"+ + "\u0983\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6"+ + "\u09b9\u09bc\u09c4\u09c7\u09c8\u09cb\u09ce\u09d7\u09d7\u09dc\u09dd\u09df"+ + "\u09e3\u09e6\u09f1\u09fc\u09fc\u09fe\u09fe\u0a01\u0a03\u0a05\u0a0a\u0a0f"+ + "\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c"+ + "\u0a3c\u0a3e\u0a42\u0a47\u0a48\u0a4b\u0a4d\u0a51\u0a51\u0a59\u0a5c\u0a5e"+ + "\u0a5e\u0a66\u0a75\u0a81\u0a83\u0a85\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa"+ + "\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abc\u0ac5\u0ac7\u0ac9\u0acb\u0acd\u0ad0"+ + "\u0ad0\u0ae0\u0ae3\u0ae6\u0aef\u0af9\u0aff\u0b01\u0b03\u0b05\u0b0c\u0b0f"+ + "\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b35\u0b39\u0b3c\u0b44\u0b47"+ + "\u0b48\u0b4b\u0b4d\u0b55\u0b57\u0b5c\u0b5d\u0b5f\u0b63\u0b66\u0b6f\u0b71"+ + "\u0b71\u0b82\u0b83\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c"+ + "\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb9\u0bbe\u0bc2\u0bc6"+ + "\u0bc8\u0bca\u0bcd\u0bd0\u0bd0\u0bd7\u0bd7\u0be6\u0bef\u0c00\u0c0c\u0c0e"+ + "\u0c10\u0c12\u0c28\u0c2a\u0c39\u0c3c\u0c44\u0c46\u0c48\u0c4a\u0c4d\u0c55"+ + "\u0c56\u0c58\u0c5a\u0c5d\u0c5d\u0c60\u0c63\u0c66\u0c6f\u0c80\u0c83\u0c85"+ + "\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbc\u0cc4\u0cc6"+ + "\u0cc8\u0cca\u0ccd\u0cd5\u0cd6\u0cdd\u0cde\u0ce0\u0ce3\u0ce6\u0cef\u0cf1"+ + "\u0cf2\u0d00\u0d0c\u0d0e\u0d10\u0d12\u0d44\u0d46\u0d48\u0d4a\u0d4e\u0d54"+ + "\u0d57\u0d5f\u0d63\u0d66\u0d6f\u0d7a\u0d7f\u0d81\u0d83\u0d85\u0d96\u0d9a"+ + "\u0db1\u0db3\u0dbb\u0dbd\u0dbd\u0dc0\u0dc6\u0dca\u0dca\u0dcf\u0dd4\u0dd6"+ + "\u0dd6\u0dd8\u0ddf\u0de6\u0def\u0df2\u0df3\u0e01\u0e3a\u0e40\u0e4e\u0e50"+ + "\u0e59\u0e81\u0e82\u0e84\u0e84\u0e86\u0e8a\u0e8c\u0ea3\u0ea5\u0ea5\u0ea7"+ + "\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0ec8\u0ecd\u0ed0\u0ed9\u0edc\u0edf\u0f00"+ + "\u0f00\u0f18\u0f19\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39\u0f39\u0f3e"+ + "\u0f47\u0f49\u0f6c\u0f71\u0f84\u0f86\u0f97\u0f99\u0fbc\u0fc6\u0fc6\u1000"+ + "\u1049\u1050\u109d\u10a0\u10c5\u10c7\u10c7\u10cd\u10cd\u10d0\u10fa\u10fc"+ + "\u1248\u124a\u124d\u1250\u1256\u1258\u1258\u125a\u125d\u1260\u1288\u128a"+ + "\u128d\u1290\u12b0\u12b2\u12b5\u12b8\u12be\u12c0\u12c0\u12c2\u12c5\u12c8"+ + "\u12d6\u12d8\u1310\u1312\u1315\u1318\u135a\u135d\u135f\u1369\u1371\u1380"+ + "\u138f\u13a0\u13f5\u13f8\u13fd\u1401\u166c\u166f\u167f\u1681\u169a\u16a0"+ + "\u16ea\u16ee\u16f8\u1700\u1715\u171f\u1734\u1740\u1753\u1760\u176c\u176e"+ + "\u1770\u1772\u1773\u1780\u17d3\u17d7\u17d7\u17dc\u17dd\u17e0\u17e9\u180b"+ + "\u180d\u180f\u1819\u1820\u1878\u1880\u18aa\u18b0\u18f5\u1900\u191e\u1920"+ + "\u192b\u1930\u193b\u1946\u196d\u1970\u1974\u1980\u19ab\u19b0\u19c9\u19d0"+ + "\u19da\u1a00\u1a1b\u1a20\u1a5e\u1a60\u1a7c\u1a7f\u1a89\u1a90\u1a99\u1aa7"+ + "\u1aa7\u1ab0\u1abd\u1abf\u1ace\u1b00\u1b4c\u1b50\u1b59\u1b6b\u1b73\u1b80"+ + "\u1bf3\u1c00\u1c37\u1c40\u1c49\u1c4d\u1c7d\u1c80\u1c88\u1c90\u1cba\u1cbd"+ + "\u1cbf\u1cd0\u1cd2\u1cd4\u1cfa\u1d00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48"+ + "\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80"+ + "\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6"+ + "\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u203f\u2040\u2054\u2054\u2071"+ + "\u2071\u207f\u207f\u2090\u209c\u20d0\u20dc\u20e1\u20e1\u20e5\u20f0\u2102"+ + "\u2102\u2107\u2107\u210a\u2113\u2115\u2115\u2118\u211d\u2124\u2124\u2126"+ + "\u2126\u2128\u2128\u212a\u2139\u213c\u213f\u2145\u2149\u214e\u214e\u2160"+ + "\u2188\u2c00\u2ce4\u2ceb\u2cf3\u2d00\u2d25\u2d27\u2d27\u2d2d\u2d2d\u2d30"+ + "\u2d67\u2d6f\u2d6f\u2d7f\u2d96\u2da0\u2da6\u2da8\u2dae\u2db0\u2db6\u2db8"+ + "\u2dbe\u2dc0\u2dc6\u2dc8\u2dce\u2dd0\u2dd6\u2dd8\u2dde\u2de0\u2dff\u3005"+ + "\u3007\u3021\u302f\u3031\u3035\u3038\u303c\u3041\u3096\u3099\u309f\u30a1"+ + "\u30fa\u30fc\u30ff\u3105\u312f\u3131\u318e\u31a0\u31bf\u31f0\u31ff\u3400"+ + "\u4dbf\u4e00\u8000\ua48c\u8000\ua4d0\u8000\ua4fd\u8000\ua500\u8000\ua60c"+ + "\u8000\ua610\u8000\ua62b\u8000\ua640\u8000\ua66f\u8000\ua674\u8000\ua67d"+ + "\u8000\ua67f\u8000\ua6f1\u8000\ua717\u8000\ua71f\u8000\ua722\u8000\ua788"+ + "\u8000\ua78b\u8000\ua7ca\u8000\ua7d0\u8000\ua7d1\u8000\ua7d3\u8000\ua7d3"+ + "\u8000\ua7d5\u8000\ua7d9\u8000\ua7f2\u8000\ua827\u8000\ua82c\u8000\ua82c"+ + "\u8000\ua840\u8000\ua873\u8000\ua880\u8000\ua8c5\u8000\ua8d0\u8000\ua8d9"+ + "\u8000\ua8e0\u8000\ua8f7\u8000\ua8fb\u8000\ua8fb\u8000\ua8fd\u8000\ua92d"+ + "\u8000\ua930\u8000\ua953\u8000\ua960\u8000\ua97c\u8000\ua980\u8000\ua9c0"+ + "\u8000\ua9cf\u8000\ua9d9\u8000\ua9e0\u8000\ua9fe\u8000\uaa00\u8000\uaa36"+ + "\u8000\uaa40\u8000\uaa4d\u8000\uaa50\u8000\uaa59\u8000\uaa60\u8000\uaa76"+ + "\u8000\uaa7a\u8000\uaac2\u8000\uaadb\u8000\uaadd\u8000\uaae0\u8000\uaaef"+ + "\u8000\uaaf2\u8000\uaaf6\u8000\uab01\u8000\uab06\u8000\uab09\u8000\uab0e"+ + "\u8000\uab11\u8000\uab16\u8000\uab20\u8000\uab26\u8000\uab28\u8000\uab2e"+ + "\u8000\uab30\u8000\uab5a\u8000\uab5c\u8000\uab69\u8000\uab70\u8000\uabea"+ + "\u8000\uabec\u8000\uabed\u8000\uabf0\u8000\uabf9\u8000\uac00\u8000\ud7a3"+ + "\u8000\ud7b0\u8000\ud7c6\u8000\ud7cb\u8000\ud7fb\u8000\uf900\u8000\ufa6d"+ + "\u8000\ufa70\u8000\ufad9\u8000\ufb00\u8000\ufb06\u8000\ufb13\u8000\ufb17"+ + "\u8000\ufb1d\u8000\ufb28\u8000\ufb2a\u8000\ufb36\u8000\ufb38\u8000\ufb3c"+ + "\u8000\ufb3e\u8000\ufb3e\u8000\ufb40\u8000\ufb41\u8000\ufb43\u8000\ufb44"+ + "\u8000\ufb46\u8000\ufbb1\u8000\ufbd3\u8000\ufd3d\u8000\ufd50\u8000\ufd8f"+ + "\u8000\ufd92\u8000\ufdc7\u8000\ufdf0\u8000\ufdfb\u8000\ufe00\u8000\ufe0f"+ + "\u8000\ufe20\u8000\ufe2f\u8000\ufe33\u8000\ufe34\u8000\ufe4d\u8000\ufe4f"+ + "\u8000\ufe70\u8000\ufe74\u8000\ufe76\u8000\ufefc\u8000\uff10\u8000\uff19"+ + "\u8000\uff21\u8000\uff3a\u8000\uff3f\u8000\uff3f\u8000\uff41\u8000\uff5a"+ + "\u8000\uff66\u8000\uffbe\u8000\uffc2\u8000\uffc7\u8000\uffca\u8000\uffcf"+ + "\u8000\uffd2\u8000\uffd7\u8000\uffda\u8000\uffdc\u8001\u0000\u8001\u000b"+ + "\u8001\r\u8001&\u8001(\u8001:\u8001<\u8001=\u8001?\u8001M\u8001P\u8001"+ + "]\u8001\u0080\u8001\u00fa\u8001\u0140\u8001\u0174\u8001\u01fd\u8001\u01fd"+ + "\u8001\u0280\u8001\u029c\u8001\u02a0\u8001\u02d0\u8001\u02e0\u8001\u02e0"+ + "\u8001\u0300\u8001\u031f\u8001\u032d\u8001\u034a\u8001\u0350\u8001\u037a"+ + "\u8001\u0380\u8001\u039d\u8001\u03a0\u8001\u03c3\u8001\u03c8\u8001\u03cf"+ + "\u8001\u03d1\u8001\u03d5\u8001\u0400\u8001\u049d\u8001\u04a0\u8001\u04a9"+ + "\u8001\u04b0\u8001\u04d3\u8001\u04d8\u8001\u04fb\u8001\u0500\u8001\u0527"+ + "\u8001\u0530\u8001\u0563\u8001\u0570\u8001\u057a\u8001\u057c\u8001\u058a"+ + "\u8001\u058c\u8001\u0592\u8001\u0594\u8001\u0595\u8001\u0597\u8001\u05a1"+ + "\u8001\u05a3\u8001\u05b1\u8001\u05b3\u8001\u05b9\u8001\u05bb\u8001\u05bc"+ + "\u8001\u0600\u8001\u0736\u8001\u0740\u8001\u0755\u8001\u0760\u8001\u0767"+ + "\u8001\u0780\u8001\u0785\u8001\u0787\u8001\u07b0\u8001\u07b2\u8001\u07ba"+ + "\u8001\u0800\u8001\u0805\u8001\u0808\u8001\u0808\u8001\u080a\u8001\u0835"+ + "\u8001\u0837\u8001\u0838\u8001\u083c\u8001\u083c\u8001\u083f\u8001\u0855"+ + "\u8001\u0860\u8001\u0876\u8001\u0880\u8001\u089e\u8001\u08e0\u8001\u08f2"+ + "\u8001\u08f4\u8001\u08f5\u8001\u0900\u8001\u0915\u8001\u0920\u8001\u0939"+ + "\u8001\u0980\u8001\u09b7\u8001\u09be\u8001\u09bf\u8001\u0a00\u8001\u0a03"+ + "\u8001\u0a05\u8001\u0a06\u8001\u0a0c\u8001\u0a13\u8001\u0a15\u8001\u0a17"+ + "\u8001\u0a19\u8001\u0a35\u8001\u0a38\u8001\u0a3a\u8001\u0a3f\u8001\u0a3f"+ + "\u8001\u0a60\u8001\u0a7c\u8001\u0a80\u8001\u0a9c\u8001\u0ac0\u8001\u0ac7"+ + "\u8001\u0ac9\u8001\u0ae6\u8001\u0b00\u8001\u0b35\u8001\u0b40\u8001\u0b55"+ + "\u8001\u0b60\u8001\u0b72\u8001\u0b80\u8001\u0b91\u8001\u0c00\u8001\u0c48"+ + "\u8001\u0c80\u8001\u0cb2\u8001\u0cc0\u8001\u0cf2\u8001\u0d00\u8001\u0d27"+ + "\u8001\u0d30\u8001\u0d39\u8001\u0e80\u8001\u0ea9\u8001\u0eab\u8001\u0eac"+ + "\u8001\u0eb0\u8001\u0eb1\u8001\u0f00\u8001\u0f1c\u8001\u0f27\u8001\u0f27"+ + "\u8001\u0f30\u8001\u0f50\u8001\u0f70\u8001\u0f85\u8001\u0fb0\u8001\u0fc4"+ + "\u8001\u0fe0\u8001\u0ff6\u8001\u1000\u8001\u1046\u8001\u1066\u8001\u1075"+ + "\u8001\u107f\u8001\u10ba\u8001\u10c2\u8001\u10c2\u8001\u10d0\u8001\u10e8"+ + "\u8001\u10f0\u8001\u10f9\u8001\u1100\u8001\u1134\u8001\u1136\u8001\u113f"+ + "\u8001\u1144\u8001\u1147\u8001\u1150\u8001\u1173\u8001\u1176\u8001\u1176"+ + "\u8001\u1180\u8001\u11c4\u8001\u11c9\u8001\u11cc\u8001\u11ce\u8001\u11da"+ + "\u8001\u11dc\u8001\u11dc\u8001\u1200\u8001\u1211\u8001\u1213\u8001\u1237"+ + "\u8001\u123e\u8001\u123e\u8001\u1280\u8001\u1286\u8001\u1288\u8001\u1288"+ + "\u8001\u128a\u8001\u128d\u8001\u128f\u8001\u129d\u8001\u129f\u8001\u12a8"+ + "\u8001\u12b0\u8001\u12ea\u8001\u12f0\u8001\u12f9\u8001\u1300\u8001\u1303"+ + "\u8001\u1305\u8001\u130c\u8001\u130f\u8001\u1310\u8001\u1313\u8001\u1328"+ + "\u8001\u132a\u8001\u1330\u8001\u1332\u8001\u1333\u8001\u1335\u8001\u1339"+ + "\u8001\u133b\u8001\u1344\u8001\u1347\u8001\u1348\u8001\u134b\u8001\u134d"+ + "\u8001\u1350\u8001\u1350\u8001\u1357\u8001\u1357\u8001\u135d\u8001\u1363"+ + "\u8001\u1366\u8001\u136c\u8001\u1370\u8001\u1374\u8001\u1400\u8001\u144a"+ + "\u8001\u1450\u8001\u1459\u8001\u145e\u8001\u1461\u8001\u1480\u8001\u14c5"+ + "\u8001\u14c7\u8001\u14c7\u8001\u14d0\u8001\u14d9\u8001\u1580\u8001\u15b5"+ + "\u8001\u15b8\u8001\u15c0\u8001\u15d8\u8001\u15dd\u8001\u1600\u8001\u1640"+ + "\u8001\u1644\u8001\u1644\u8001\u1650\u8001\u1659\u8001\u1680\u8001\u16b8"+ + "\u8001\u16c0\u8001\u16c9\u8001\u1700\u8001\u171a\u8001\u171d\u8001\u172b"+ + "\u8001\u1730\u8001\u1739\u8001\u1740\u8001\u1746\u8001\u1800\u8001\u183a"+ + "\u8001\u18a0\u8001\u18e9\u8001\u18ff\u8001\u1906\u8001\u1909\u8001\u1909"+ + "\u8001\u190c\u8001\u1913\u8001\u1915\u8001\u1916\u8001\u1918\u8001\u1935"+ + "\u8001\u1937\u8001\u1938\u8001\u193b\u8001\u1943\u8001\u1950\u8001\u1959"+ + "\u8001\u19a0\u8001\u19a7\u8001\u19aa\u8001\u19d7\u8001\u19da\u8001\u19e1"+ + "\u8001\u19e3\u8001\u19e4\u8001\u1a00\u8001\u1a3e\u8001\u1a47\u8001\u1a47"+ + "\u8001\u1a50\u8001\u1a99\u8001\u1a9d\u8001\u1a9d\u8001\u1ab0\u8001\u1af8"+ + "\u8001\u1c00\u8001\u1c08\u8001\u1c0a\u8001\u1c36\u8001\u1c38\u8001\u1c40"+ + "\u8001\u1c50\u8001\u1c59\u8001\u1c72\u8001\u1c8f\u8001\u1c92\u8001\u1ca7"+ + "\u8001\u1ca9\u8001\u1cb6\u8001\u1d00\u8001\u1d06\u8001\u1d08\u8001\u1d09"+ + "\u8001\u1d0b\u8001\u1d36\u8001\u1d3a\u8001\u1d3a\u8001\u1d3c\u8001\u1d3d"+ + "\u8001\u1d3f\u8001\u1d47\u8001\u1d50\u8001\u1d59\u8001\u1d60\u8001\u1d65"+ + "\u8001\u1d67\u8001\u1d68\u8001\u1d6a\u8001\u1d8e\u8001\u1d90\u8001\u1d91"+ + "\u8001\u1d93\u8001\u1d98\u8001\u1da0\u8001\u1da9\u8001\u1ee0\u8001\u1ef6"+ + "\u8001\u1fb0\u8001\u1fb0\u8001\u2000\u8001\u2399\u8001\u2400\u8001\u246e"+ + "\u8001\u2480\u8001\u2543\u8001\u2f90\u8001\u2ff0\u8001\u3000\u8001\u342e"+ + "\u8001\u4400\u8001\u4646\u8001\u6800\u8001\u6a38\u8001\u6a40\u8001\u6a5e"+ + "\u8001\u6a60\u8001\u6a69\u8001\u6a70\u8001\u6abe\u8001\u6ac0\u8001\u6ac9"+ + "\u8001\u6ad0\u8001\u6aed\u8001\u6af0\u8001\u6af4\u8001\u6b00\u8001\u6b36"+ + "\u8001\u6b40\u8001\u6b43\u8001\u6b50\u8001\u6b59\u8001\u6b63\u8001\u6b77"+ + "\u8001\u6b7d\u8001\u6b8f\u8001\u6e40\u8001\u6e7f\u8001\u6f00\u8001\u6f4a"+ + "\u8001\u6f4f\u8001\u6f87\u8001\u6f8f\u8001\u6f9f\u8001\u6fe0\u8001\u6fe1"+ + "\u8001\u6fe3\u8001\u6fe4\u8001\u6ff0\u8001\u6ff1\u8001\u7000\u8001\u87f7"+ + "\u8001\u8800\u8001\u8cd5\u8001\u8d00\u8001\u8d08\u8001\uaff0\u8001\uaff3"+ + "\u8001\uaff5\u8001\uaffb\u8001\uaffd\u8001\uaffe\u8001\ub000\u8001\ub122"+ + "\u8001\ub150\u8001\ub152\u8001\ub164\u8001\ub167\u8001\ub170\u8001\ub2fb"+ + "\u8001\ubc00\u8001\ubc6a\u8001\ubc70\u8001\ubc7c\u8001\ubc80\u8001\ubc88"+ + "\u8001\ubc90\u8001\ubc99\u8001\ubc9d\u8001\ubc9e\u8001\ucf00\u8001\ucf2d"+ + "\u8001\ucf30\u8001\ucf46\u8001\ud165\u8001\ud169\u8001\ud16d\u8001\ud172"+ + "\u8001\ud17b\u8001\ud182\u8001\ud185\u8001\ud18b\u8001\ud1aa\u8001\ud1ad"+ + "\u8001\ud242\u8001\ud244\u8001\ud400\u8001\ud454\u8001\ud456\u8001\ud49c"+ + "\u8001\ud49e\u8001\ud49f\u8001\ud4a2\u8001\ud4a2\u8001\ud4a5\u8001\ud4a6"+ + "\u8001\ud4a9\u8001\ud4ac\u8001\ud4ae\u8001\ud4b9\u8001\ud4bb\u8001\ud4bb"+ + "\u8001\ud4bd\u8001\ud4c3\u8001\ud4c5\u8001\ud505\u8001\ud507\u8001\ud50a"+ + "\u8001\ud50d\u8001\ud514\u8001\ud516\u8001\ud51c\u8001\ud51e\u8001\ud539"+ + "\u8001\ud53b\u8001\ud53e\u8001\ud540\u8001\ud544\u8001\ud546\u8001\ud546"+ + "\u8001\ud54a\u8001\ud550\u8001\ud552\u8001\ud6a5\u8001\ud6a8\u8001\ud6c0"+ + "\u8001\ud6c2\u8001\ud6da\u8001\ud6dc\u8001\ud6fa\u8001\ud6fc\u8001\ud714"+ + "\u8001\ud716\u8001\ud734\u8001\ud736\u8001\ud74e\u8001\ud750\u8001\ud76e"+ + "\u8001\ud770\u8001\ud788\u8001\ud78a\u8001\ud7a8\u8001\ud7aa\u8001\ud7c2"+ + "\u8001\ud7c4\u8001\ud7cb\u8001\ud7ce\u8001\ud7ff\u8001\uda00\u8001\uda36"+ + "\u8001\uda3b\u8001\uda6c\u8001\uda75\u8001\uda75\u8001\uda84\u8001\uda84"+ + "\u8001\uda9b\u8001\uda9f\u8001\udaa1\u8001\udaaf\u8001\udf00\u8001\udf1e"+ + "\u8001\ue000\u8001\ue006\u8001\ue008\u8001\ue018\u8001\ue01b\u8001\ue021"+ + "\u8001\ue023\u8001\ue024\u8001\ue026\u8001\ue02a\u8001\ue100\u8001\ue12c"+ + "\u8001\ue130\u8001\ue13d\u8001\ue140\u8001\ue149\u8001\ue14e\u8001\ue14e"+ + "\u8001\ue290\u8001\ue2ae\u8001\ue2c0\u8001\ue2f9\u8001\ue7e0\u8001\ue7e6"+ + "\u8001\ue7e8\u8001\ue7eb\u8001\ue7ed\u8001\ue7ee\u8001\ue7f0\u8001\ue7fe"+ + "\u8001\ue800\u8001\ue8c4\u8001\ue8d0\u8001\ue8d6\u8001\ue900\u8001\ue94b"+ + "\u8001\ue950\u8001\ue959\u8001\uee00\u8001\uee03\u8001\uee05\u8001\uee1f"+ + "\u8001\uee21\u8001\uee22\u8001\uee24\u8001\uee24\u8001\uee27\u8001\uee27"+ + "\u8001\uee29\u8001\uee32\u8001\uee34\u8001\uee37\u8001\uee39\u8001\uee39"+ + "\u8001\uee3b\u8001\uee3b\u8001\uee42\u8001\uee42\u8001\uee47\u8001\uee47"+ + "\u8001\uee49\u8001\uee49\u8001\uee4b\u8001\uee4b\u8001\uee4d\u8001\uee4f"+ + "\u8001\uee51\u8001\uee52\u8001\uee54\u8001\uee54\u8001\uee57\u8001\uee57"+ + "\u8001\uee59\u8001\uee59\u8001\uee5b\u8001\uee5b\u8001\uee5d\u8001\uee5d"+ + "\u8001\uee5f\u8001\uee5f\u8001\uee61\u8001\uee62\u8001\uee64\u8001\uee64"+ + "\u8001\uee67\u8001\uee6a\u8001\uee6c\u8001\uee72\u8001\uee74\u8001\uee77"+ + "\u8001\uee79\u8001\uee7c\u8001\uee7e\u8001\uee7e\u8001\uee80\u8001\uee89"+ + "\u8001\uee8b\u8001\uee9b\u8001\ueea1\u8001\ueea3\u8001\ueea5\u8001\ueea9"+ + "\u8001\ueeab\u8001\ueebb\u8001\ufbf0\u8001\ufbf9\u8002\u0000\u8002\ua6df"+ + "\u8002\ua700\u8002\ub738\u8002\ub740\u8002\ub81d\u8002\ub820\u8002\ucea1"+ + "\u8002\uceb0\u8002\uebe0\u8002\uf800\u8002\ufa1d\u8003\u0000\u8003\u134a"+ + "\u800e\u0100\u800e\u01ef\u0003\u000009AFaf\u0001\u000009\u0001\u00000"+ + "7\u0001\u000001\b\u0000\u00a0\u00a0\u1680\u1680\u180e\u180e\u2000\u200a"+ + "\u2028\u2029\u202f\u202f\u205f\u205f\u3000\u3000\u0002\u0000\n\n\r\r\u0001"+ + "\u0000\u001d\u001d\u0001\u0000\u001c\u001c\u0001\u0000\r\r\u0015\u0000"+ + "$$\u00a2\u00a5\u058f\u058f\u060b\u060b\u07fe\u07ff\u09f2\u09f3\u09fb\u09fb"+ + "\u0af1\u0af1\u0bf9\u0bf9\u0e3f\u0e3f\u17db\u17db\u20a0\u20c0\u8000\ua838"+ + "\u8000\ua838\u8000\ufdfc\u8000\ufdfc\u8000\ufe69\u8000\ufe69\u8000\uff04"+ + "\u8000\uff04\u8000\uffe0\u8000\uffe1\u8000\uffe5\u8000\uffe6\u8001\u1fdd"+ + "\u8001\u1fe0\u8001\ue2ff\u8001\ue2ff\u8001\uecb0\u8001\uecb0\u0001\u0000"+ + " \u0006\u0000__\u203f\u2040\u2054\u2054\u8000\ufe33\u8000\ufe34\u8000"+ + "\ufe4d\u8000\ufe4f\u8000\uff3f\u8000\uff3f\u0001\u0000\t\t\u0001\u0000"+ + "\n\n\u0001\u0000\u000b\u000b\u0001\u0000\u001f\u001f\u0001\u0000\f\f\u0001"+ + "\u0000\u001e\u001e\u0e97\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0005"+ + "\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001"+ + "\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000"+ + "\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000\u0000"+ + "\u00007\u0001\u0000\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000;"+ + "\u0001\u0000\u0000\u0000\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001\u0000"+ + "\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000\u0000"+ + "\u0000E\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000\u0000U"+ + "\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000\u0000[\u0001\u0000"+ + "\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000"+ + "\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e"+ + "\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000"+ + "\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000"+ + "\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s"+ + "\u0001\u0000\u0000\u0000\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000"+ + "\u0000\u0000\u0000y\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000"+ + "\u0000}\u0001\u0000\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000"+ + "\u0081\u0001\u0000\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000"+ + "\u0085\u0001\u0000\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000"+ + "\u0089\u0001\u0000\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000"+ + "\u008d\u0001\u0000\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000"+ + "\u0091\u0001\u0000\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000"+ + "\u0095\u0001\u0000\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000"+ + "\u0099\u0001\u0000\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000"+ + "\u009d\u0001\u0000\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000"+ + "\u00a1\u0001\u0000\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000"+ + "\u00a5\u0001\u0000\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000"+ + "\u00a9\u0001\u0000\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000"+ + "\u00ad\u0001\u0000\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000"+ + "\u00b1\u0001\u0000\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000"+ + "\u00b5\u0001\u0000\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000"+ + "\u00b9\u0001\u0000\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000"+ + "\u00bd\u0001\u0000\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000"+ + "\u00c1\u0001\u0000\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000"+ + "\u00c5\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000"+ + "\u00c9\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000"+ + "\u00cd\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000"+ + "\u00d1\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000"+ + "\u00d5\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000"+ + "\u00d9\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000"+ + "\u00dd\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0000"+ + "\u00e1\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000\u0000"+ + "\u00e5\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000\u0000"+ + "\u00e9\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000\u0000"+ + "\u00ed\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000\u0000"+ + "\u00f1\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000\u0000"+ + "\u00f5\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000\u0000"+ + "\u00f9\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000\u0000"+ + "\u00fd\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0101\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000\u0000"+ + "\u0105\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000\u0000"+ + "\u0109\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000\u0000"+ + "\u010d\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000\u0000"+ + "\u0111\u0001\u0000\u0000\u0000\u0000\u0113\u0001\u0000\u0000\u0000\u0000"+ + "\u0115\u0001\u0000\u0000\u0000\u0000\u0117\u0001\u0000\u0000\u0000\u0000"+ + "\u0119\u0001\u0000\u0000\u0000\u0000\u011b\u0001\u0000\u0000\u0000\u0000"+ + "\u011d\u0001\u0000\u0000\u0000\u0000\u011f\u0001\u0000\u0000\u0000\u0000"+ + "\u0121\u0001\u0000\u0000\u0000\u0000\u0123\u0001\u0000\u0000\u0000\u0000"+ + "\u0125\u0001\u0000\u0000\u0000\u0000\u0127\u0001\u0000\u0000\u0000\u0000"+ + "\u0129\u0001\u0000\u0000\u0000\u0000\u012b\u0001\u0000\u0000\u0000\u0000"+ + "\u012d\u0001\u0000\u0000\u0000\u0000\u012f\u0001\u0000\u0000\u0000\u0000"+ + "\u0131\u0001\u0000\u0000\u0000\u0000\u0133\u0001\u0000\u0000\u0000\u0000"+ + "\u0135\u0001\u0000\u0000\u0000\u0000\u0137\u0001\u0000\u0000\u0000\u0000"+ + "\u0139\u0001\u0000\u0000\u0000\u0000\u013b\u0001\u0000\u0000\u0000\u0000"+ + "\u013d\u0001\u0000\u0000\u0000\u0000\u013f\u0001\u0000\u0000\u0000\u0000"+ + "\u0141\u0001\u0000\u0000\u0000\u0000\u0143\u0001\u0000\u0000\u0000\u0000"+ + "\u0145\u0001\u0000\u0000\u0000\u0000\u0147\u0001\u0000\u0000\u0000\u0000"+ + "\u0149\u0001\u0000\u0000\u0000\u0000\u014b\u0001\u0000\u0000\u0000\u0000"+ + "\u014d\u0001\u0000\u0000\u0000\u0000\u014f\u0001\u0000\u0000\u0000\u0000"+ + "\u0151\u0001\u0000\u0000\u0000\u0000\u0153\u0001\u0000\u0000\u0000\u0000"+ + "\u0155\u0001\u0000\u0000\u0000\u0000\u0157\u0001\u0000\u0000\u0000\u0000"+ + "\u0159\u0001\u0000\u0000\u0000\u0000\u015b\u0001\u0000\u0000\u0000\u0000"+ + "\u015d\u0001\u0000\u0000\u0000\u0000\u015f\u0001\u0000\u0000\u0000\u0000"+ + "\u0161\u0001\u0000\u0000\u0000\u0000\u0163\u0001\u0000\u0000\u0000\u0000"+ + "\u0165\u0001\u0000\u0000\u0000\u0000\u0167\u0001\u0000\u0000\u0000\u0000"+ + "\u0169\u0001\u0000\u0000\u0000\u0000\u016b\u0001\u0000\u0000\u0000\u0000"+ + "\u016d\u0001\u0000\u0000\u0000\u0000\u016f\u0001\u0000\u0000\u0000\u0000"+ + "\u0171\u0001\u0000\u0000\u0000\u0000\u0173\u0001\u0000\u0000\u0000\u0000"+ + "\u0175\u0001\u0000\u0000\u0000\u0000\u0177\u0001\u0000\u0000\u0000\u0000"+ + "\u0179\u0001\u0000\u0000\u0000\u0000\u017b\u0001\u0000\u0000\u0000\u0000"+ + "\u017d\u0001\u0000\u0000\u0000\u0000\u017f\u0001\u0000\u0000\u0000\u0000"+ + "\u0181\u0001\u0000\u0000\u0000\u0000\u0183\u0001\u0000\u0000\u0000\u0000"+ + "\u0185\u0001\u0000\u0000\u0000\u0000\u0187\u0001\u0000\u0000\u0000\u0000"+ + "\u0189\u0001\u0000\u0000\u0000\u0000\u018b\u0001\u0000\u0000\u0000\u0000"+ + "\u018d\u0001\u0000\u0000\u0000\u0000\u018f\u0001\u0000\u0000\u0000\u0000"+ + "\u0191\u0001\u0000\u0000\u0000\u0000\u0193\u0001\u0000\u0000\u0000\u0000"+ + "\u0195\u0001\u0000\u0000\u0000\u0000\u0197\u0001\u0000\u0000\u0000\u0000"+ + "\u0199\u0001\u0000\u0000\u0000\u0000\u019b\u0001\u0000\u0000\u0000\u0000"+ + "\u019d\u0001\u0000\u0000\u0000\u0000\u019f\u0001\u0000\u0000\u0000\u0000"+ + "\u01a1\u0001\u0000\u0000\u0000\u0000\u01a3\u0001\u0000\u0000\u0000\u0000"+ + "\u01a5\u0001\u0000\u0000\u0000\u0000\u01a7\u0001\u0000\u0000\u0000\u0000"+ + "\u01a9\u0001\u0000\u0000\u0000\u0000\u01ab\u0001\u0000\u0000\u0000\u0000"+ + "\u01ad\u0001\u0000\u0000\u0000\u0000\u01af\u0001\u0000\u0000\u0000\u0000"+ + "\u01b1\u0001\u0000\u0000\u0000\u0000\u01b3\u0001\u0000\u0000\u0000\u0000"+ + "\u01b5\u0001\u0000\u0000\u0000\u0000\u01b7\u0001\u0000\u0000\u0000\u0000"+ + "\u01b9\u0001\u0000\u0000\u0000\u0000\u01bb\u0001\u0000\u0000\u0000\u0000"+ + "\u01bd\u0001\u0000\u0000\u0000\u0000\u01bf\u0001\u0000\u0000\u0000\u0000"+ + "\u01c1\u0001\u0000\u0000\u0000\u0000\u01c3\u0001\u0000\u0000\u0000\u0000"+ + "\u01c5\u0001\u0000\u0000\u0000\u0000\u01c7\u0001\u0000\u0000\u0000\u0000"+ + "\u01c9\u0001\u0000\u0000\u0000\u0000\u01cb\u0001\u0000\u0000\u0000\u0000"+ + "\u01cd\u0001\u0000\u0000\u0000\u0000\u01cf\u0001\u0000\u0000\u0000\u0000"+ + "\u01d1\u0001\u0000\u0000\u0000\u0000\u01d3\u0001\u0000\u0000\u0000\u0000"+ + "\u01d5\u0001\u0000\u0000\u0000\u0000\u01d7\u0001\u0000\u0000\u0000\u0000"+ + "\u01d9\u0001\u0000\u0000\u0000\u0000\u01db\u0001\u0000\u0000\u0000\u0000"+ + "\u01dd\u0001\u0000\u0000\u0000\u0000\u01df\u0001\u0000\u0000\u0000\u0000"+ + "\u01e1\u0001\u0000\u0000\u0000\u0000\u01e3\u0001\u0000\u0000\u0000\u0000"+ + "\u01e5\u0001\u0000\u0000\u0000\u0000\u01e7\u0001\u0000\u0000\u0000\u0000"+ + "\u01e9\u0001\u0000\u0000\u0000\u0000\u01eb\u0001\u0000\u0000\u0000\u0000"+ + "\u01ed\u0001\u0000\u0000\u0000\u0000\u01ef\u0001\u0000\u0000\u0000\u0000"+ + "\u01f1\u0001\u0000\u0000\u0000\u0000\u01f3\u0001\u0000\u0000\u0000\u0000"+ + "\u01f5\u0001\u0000\u0000\u0000\u0000\u01f7\u0001\u0000\u0000\u0000\u0000"+ + "\u01f9\u0001\u0000\u0000\u0000\u0000\u01fb\u0001\u0000\u0000\u0000\u0000"+ + "\u01fd\u0001\u0000\u0000\u0000\u0000\u01ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0201\u0001\u0000\u0000\u0000\u0000\u0203\u0001\u0000\u0000\u0000\u0000"+ + "\u0205\u0001\u0000\u0000\u0000\u0000\u0207\u0001\u0000\u0000\u0000\u0000"+ + "\u0209\u0001\u0000\u0000\u0000\u0000\u020b\u0001\u0000\u0000\u0000\u0000"+ + "\u020d\u0001\u0000\u0000\u0000\u0000\u020f\u0001\u0000\u0000\u0000\u0000"+ + "\u0211\u0001\u0000\u0000\u0000\u0000\u0213\u0001\u0000\u0000\u0000\u0000"+ + "\u0215\u0001\u0000\u0000\u0000\u0000\u0217\u0001\u0000\u0000\u0000\u0000"+ + "\u0219\u0001\u0000\u0000\u0000\u0000\u021b\u0001\u0000\u0000\u0000\u0000"+ + "\u021d\u0001\u0000\u0000\u0000\u0000\u021f\u0001\u0000\u0000\u0000\u0000"+ + "\u0221\u0001\u0000\u0000\u0000\u0000\u0223\u0001\u0000\u0000\u0000\u0000"+ + "\u0225\u0001\u0000\u0000\u0000\u0000\u0227\u0001\u0000\u0000\u0000\u0000"+ + "\u0229\u0001\u0000\u0000\u0000\u0000\u022b\u0001\u0000\u0000\u0000\u0000"+ + "\u022d\u0001\u0000\u0000\u0000\u0000\u022f\u0001\u0000\u0000\u0000\u0000"+ + "\u0231\u0001\u0000\u0000\u0000\u0000\u0233\u0001\u0000\u0000\u0000\u0000"+ + "\u0235\u0001\u0000\u0000\u0000\u0000\u0237\u0001\u0000\u0000\u0000\u0000"+ + "\u0239\u0001\u0000\u0000\u0000\u0000\u023b\u0001\u0000\u0000\u0000\u0000"+ + "\u023d\u0001\u0000\u0000\u0000\u0000\u023f\u0001\u0000\u0000\u0000\u0000"+ + "\u0241\u0001\u0000\u0000\u0000\u0000\u0243\u0001\u0000\u0000\u0000\u0000"+ + "\u0245\u0001\u0000\u0000\u0000\u0000\u0247\u0001\u0000\u0000\u0000\u0000"+ + "\u0249\u0001\u0000\u0000\u0000\u0000\u024b\u0001\u0000\u0000\u0000\u0000"+ + "\u024d\u0001\u0000\u0000\u0000\u0000\u024f\u0001\u0000\u0000\u0000\u0000"+ + "\u0251\u0001\u0000\u0000\u0000\u0000\u0253\u0001\u0000\u0000\u0000\u0000"+ + "\u0255\u0001\u0000\u0000\u0000\u0000\u0257\u0001\u0000\u0000\u0000\u0000"+ + "\u0259\u0001\u0000\u0000\u0000\u0000\u025b\u0001\u0000\u0000\u0000\u0000"+ + "\u025d\u0001\u0000\u0000\u0000\u0000\u025f\u0001\u0000\u0000\u0000\u0000"+ + "\u0261\u0001\u0000\u0000\u0000\u0000\u0263\u0001\u0000\u0000\u0000\u0000"+ + "\u0265\u0001\u0000\u0000\u0000\u0000\u0267\u0001\u0000\u0000\u0000\u0000"+ + "\u0269\u0001\u0000\u0000\u0000\u0000\u026b\u0001\u0000\u0000\u0000\u0000"+ + "\u026d\u0001\u0000\u0000\u0000\u0000\u026f\u0001\u0000\u0000\u0000\u0000"+ + "\u0271\u0001\u0000\u0000\u0000\u0000\u0273\u0001\u0000\u0000\u0000\u0000"+ + "\u0275\u0001\u0000\u0000\u0000\u0000\u0277\u0001\u0000\u0000\u0000\u0000"+ + "\u0279\u0001\u0000\u0000\u0000\u0000\u027b\u0001\u0000\u0000\u0000\u0000"+ + "\u027d\u0001\u0000\u0000\u0000\u0000\u027f\u0001\u0000\u0000\u0000\u0000"+ + "\u0281\u0001\u0000\u0000\u0000\u0000\u0283\u0001\u0000\u0000\u0000\u0000"+ + "\u0285\u0001\u0000\u0000\u0000\u0000\u0287\u0001\u0000\u0000\u0000\u0000"+ + "\u0289\u0001\u0000\u0000\u0000\u0000\u028b\u0001\u0000\u0000\u0000\u0000"+ + "\u028d\u0001\u0000\u0000\u0000\u0000\u028f\u0001\u0000\u0000\u0000\u0000"+ + "\u0291\u0001\u0000\u0000\u0000\u0000\u0293\u0001\u0000\u0000\u0000\u0000"+ + "\u0295\u0001\u0000\u0000\u0000\u0000\u0297\u0001\u0000\u0000\u0000\u0000"+ + "\u0299\u0001\u0000\u0000\u0000\u0000\u029b\u0001\u0000\u0000\u0000\u0000"+ + "\u029d\u0001\u0000\u0000\u0000\u0000\u029f\u0001\u0000\u0000\u0000\u0000"+ + "\u02a1\u0001\u0000\u0000\u0000\u0000\u02a3\u0001\u0000\u0000\u0000\u0000"+ + "\u02a5\u0001\u0000\u0000\u0000\u0000\u02a7\u0001\u0000\u0000\u0000\u0000"+ + "\u02a9\u0001\u0000\u0000\u0000\u0000\u02ab\u0001\u0000\u0000\u0000\u0000"+ + "\u02ad\u0001\u0000\u0000\u0000\u0000\u02af\u0001\u0000\u0000\u0000\u0000"+ + "\u02b1\u0001\u0000\u0000\u0000\u0000\u02b3\u0001\u0000\u0000\u0000\u0000"+ + "\u02b5\u0001\u0000\u0000\u0000\u0000\u02b7\u0001\u0000\u0000\u0000\u0000"+ + "\u02b9\u0001\u0000\u0000\u0000\u0000\u02bb\u0001\u0000\u0000\u0000\u0000"+ + "\u02bf\u0001\u0000\u0000\u0000\u0000\u02c5\u0001\u0000\u0000\u0000\u0000"+ + "\u02c7\u0001\u0000\u0000\u0000\u0000\u02d1\u0001\u0000\u0000\u0000\u0000"+ + "\u02d3\u0001\u0000\u0000\u0000\u0000\u02d5\u0001\u0000\u0000\u0000\u0000"+ + "\u02d7\u0001\u0000\u0000\u0000\u0000\u02d9\u0001\u0000\u0000\u0000\u0000"+ + "\u02db\u0001\u0000\u0000\u0000\u0000\u02dd\u0001\u0000\u0000\u0000\u0000"+ + "\u02df\u0001\u0000\u0000\u0000\u0000\u02e1\u0001\u0000\u0000\u0000\u0000"+ + "\u02e3\u0001\u0000\u0000\u0000\u0000\u02e5\u0001\u0000\u0000\u0000\u0000"+ + "\u02e7\u0001\u0000\u0000\u0000\u0000\u02e9\u0001\u0000\u0000\u0000\u0000"+ + "\u02eb\u0001\u0000\u0000\u0000\u0000\u02ed\u0001\u0000\u0000\u0000\u0000"+ + "\u02ef\u0001\u0000\u0000\u0000\u0000\u02f1\u0001\u0000\u0000\u0000\u0000"+ + "\u02f3\u0001\u0000\u0000\u0000\u0000\u02f5\u0001\u0000\u0000\u0000\u0000"+ + "\u02f7\u0001\u0000\u0000\u0000\u0000\u02f9\u0001\u0000\u0000\u0000\u0000"+ + "\u02fb\u0001\u0000\u0000\u0000\u0000\u02fd\u0001\u0000\u0000\u0000\u0000"+ + "\u02ff\u0001\u0000\u0000\u0000\u0000\u0301\u0001\u0000\u0000\u0000\u0000"+ + "\u0303\u0001\u0000\u0000\u0000\u0000\u0305\u0001\u0000\u0000\u0000\u0000"+ + "\u0307\u0001\u0000\u0000\u0000\u0000\u0309\u0001\u0000\u0000\u0000\u0000"+ + "\u030b\u0001\u0000\u0000\u0000\u0000\u030d\u0001\u0000\u0000\u0000\u0000"+ + "\u030f\u0001\u0000\u0000\u0000\u0000\u0311\u0001\u0000\u0000\u0000\u0000"+ + "\u0313\u0001\u0000\u0000\u0000\u0000\u0315\u0001\u0000\u0000\u0000\u0000"+ + "\u0317\u0001\u0000\u0000\u0000\u0000\u0319\u0001\u0000\u0000\u0000\u0000"+ + "\u031b\u0001\u0000\u0000\u0000\u0000\u031d\u0001\u0000\u0000\u0000\u0000"+ + "\u031f\u0001\u0000\u0000\u0000\u0000\u0321\u0001\u0000\u0000\u0000\u0000"+ + "\u0323\u0001\u0000\u0000\u0000\u0000\u0325\u0001\u0000\u0000\u0000\u0000"+ + "\u0327\u0001\u0000\u0000\u0000\u0000\u0329\u0001\u0000\u0000\u0000\u0000"+ + "\u032b\u0001\u0000\u0000\u0000\u0000\u032d\u0001\u0000\u0000\u0000\u0000"+ + "\u032f\u0001\u0000\u0000\u0000\u0000\u0331\u0001\u0000\u0000\u0000\u0000"+ + "\u0333\u0001\u0000\u0000\u0000\u0000\u0335\u0001\u0000\u0000\u0000\u0000"+ + "\u0337\u0001\u0000\u0000\u0000\u0000\u0339\u0001\u0000\u0000\u0000\u0000"+ + "\u033b\u0001\u0000\u0000\u0000\u0000\u033d\u0001\u0000\u0000\u0000\u0000"+ + "\u033f\u0001\u0000\u0000\u0000\u0000\u0341\u0001\u0000\u0000\u0000\u0000"+ + "\u0343\u0001\u0000\u0000\u0000\u0000\u0345\u0001\u0000\u0000\u0000\u0000"+ + "\u034f\u0001\u0000\u0000\u0000\u0000\u0351\u0001\u0000\u0000\u0000\u0000"+ + "\u0353\u0001\u0000\u0000\u0000\u0000\u0355\u0001\u0000\u0000\u0000\u0000"+ + "\u0357\u0001\u0000\u0000\u0000\u0001\u0379\u0001\u0000\u0000\u0000\u0003"+ + "\u037b\u0001\u0000\u0000\u0000\u0005\u038d\u0001\u0000\u0000\u0000\u0007"+ + "\u0390\u0001\u0000\u0000\u0000\t\u0395\u0001\u0000\u0000\u0000\u000b\u039a"+ + "\u0001\u0000\u0000\u0000\r\u039e\u0001\u0000\u0000\u0000\u000f\u03a0\u0001"+ + "\u0000\u0000\u0000\u0011\u03a9\u0001\u0000\u0000\u0000\u0013\u03b2\u0001"+ + "\u0000\u0000\u0000\u0015\u03bd\u0001\u0000\u0000\u0000\u0017\u03c3\u0001"+ + "\u0000\u0000\u0000\u0019\u03c9\u0001\u0000\u0000\u0000\u001b\u03d8\u0001"+ + "\u0000\u0000\u0000\u001d\u03da\u0001\u0000\u0000\u0000\u001f\u03dd\u0001"+ + "\u0000\u0000\u0000!\u03e0\u0001\u0000\u0000\u0000#\u03e3\u0001\u0000\u0000"+ + "\u0000%\u03e6\u0001\u0000\u0000\u0000\'\u03e9\u0001\u0000\u0000\u0000"+ + ")\u03ec\u0001\u0000\u0000\u0000+\u03ef\u0001\u0000\u0000\u0000-\u03f2"+ + "\u0001\u0000\u0000\u0000/\u03f5\u0001\u0000\u0000\u00001\u03fc\u0001\u0000"+ + "\u0000\u00003\u0405\u0001\u0000\u0000\u00005\u0422\u0001\u0000\u0000\u0000"+ + "7\u0425\u0001\u0000\u0000\u00009\u0427\u0001\u0000\u0000\u0000;\u042a"+ + "\u0001\u0000\u0000\u0000=\u042d\u0001\u0000\u0000\u0000?\u042f\u0001\u0000"+ + "\u0000\u0000A\u0432\u0001\u0000\u0000\u0000C\u0435\u0001\u0000\u0000\u0000"+ + "E\u0438\u0001\u0000\u0000\u0000G\u0442\u0001\u0000\u0000\u0000I\u0444"+ + "\u0001\u0000\u0000\u0000K\u044a\u0001\u0000\u0000\u0000M\u044c\u0001\u0000"+ + "\u0000\u0000O\u0456\u0001\u0000\u0000\u0000Q\u045a\u0001\u0000\u0000\u0000"+ + "S\u045e\u0001\u0000\u0000\u0000U\u0469\u0001\u0000\u0000\u0000W\u0474"+ + "\u0001\u0000\u0000\u0000Y\u047f\u0001\u0000\u0000\u0000[\u0481\u0001\u0000"+ + "\u0000\u0000]\u0485\u0001\u0000\u0000\u0000_\u048a\u0001\u0000\u0000\u0000"+ + "a\u048e\u0001\u0000\u0000\u0000c\u049c\u0001\u0000\u0000\u0000e\u04a0"+ + "\u0001\u0000\u0000\u0000g\u04a4\u0001\u0000\u0000\u0000i\u04aa\u0001\u0000"+ + "\u0000\u0000k\u04ad\u0001\u0000\u0000\u0000m\u04b1\u0001\u0000\u0000\u0000"+ + "o\u04bb\u0001\u0000\u0000\u0000q\u04c0\u0001\u0000\u0000\u0000s\u04c3"+ + "\u0001\u0000\u0000\u0000u\u04c8\u0001\u0000\u0000\u0000w\u04cc\u0001\u0000"+ + "\u0000\u0000y\u04d0\u0001\u0000\u0000\u0000{\u04d7\u0001\u0000\u0000\u0000"+ + "}\u04de\u0001\u0000\u0000\u0000\u007f\u04e3\u0001\u0000\u0000\u0000\u0081"+ + "\u04eb\u0001\u0000\u0000\u0000\u0083\u04f0\u0001\u0000\u0000\u0000\u0085"+ + "\u04f6\u0001\u0000\u0000\u0000\u0087\u04f9\u0001\u0000\u0000\u0000\u0089"+ + "\u0505\u0001\u0000\u0000\u0000\u008b\u050b\u0001\u0000\u0000\u0000\u008d"+ + "\u0510\u0001\u0000\u0000\u0000\u008f\u051c\u0001\u0000\u0000\u0000\u0091"+ + "\u0521\u0001\u0000\u0000\u0000\u0093\u0526\u0001\u0000\u0000\u0000\u0095"+ + "\u052b\u0001\u0000\u0000\u0000\u0097\u0533\u0001\u0000\u0000\u0000\u0099"+ + "\u0538\u0001\u0000\u0000\u0000\u009b\u0544\u0001\u0000\u0000\u0000\u009d"+ + "\u0555\u0001\u0000\u0000\u0000\u009f\u0565\u0001\u0000\u0000\u0000\u00a1"+ + "\u056b\u0001\u0000\u0000\u0000\u00a3\u0574\u0001\u0000\u0000\u0000\u00a5"+ + "\u0581\u0001\u0000\u0000\u0000\u00a7\u0588\u0001\u0000\u0000\u0000\u00a9"+ + "\u058d\u0001\u0000\u0000\u0000\u00ab\u0591\u0001\u0000\u0000\u0000\u00ad"+ + "\u0596\u0001\u0000\u0000\u0000\u00af\u059a\u0001\u0000\u0000\u0000\u00b1"+ + "\u05a0\u0001\u0000\u0000\u0000\u00b3\u05a7\u0001\u0000\u0000\u0000\u00b5"+ + "\u05b4\u0001\u0000\u0000\u0000\u00b7\u05c2\u0001\u0000\u0000\u0000\u00b9"+ + "\u05d9\u0001\u0000\u0000\u0000\u00bb\u05e8\u0001\u0000\u0000\u0000\u00bd"+ + "\u05f5\u0001\u0000\u0000\u0000\u00bf\u0607\u0001\u0000\u0000\u0000\u00c1"+ + "\u060c\u0001\u0000\u0000\u0000\u00c3\u0615\u0001\u0000\u0000\u0000\u00c5"+ + "\u0619\u0001\u0000\u0000\u0000\u00c7\u061d\u0001\u0000\u0000\u0000\u00c9"+ + "\u0625\u0001\u0000\u0000\u0000\u00cb\u062d\u0001\u0000\u0000\u0000\u00cd"+ + "\u0634\u0001\u0000\u0000\u0000\u00cf\u0639\u0001\u0000\u0000\u0000\u00d1"+ + "\u0644\u0001\u0000\u0000\u0000\u00d3\u064b\u0001\u0000\u0000\u0000\u00d5"+ + "\u0654\u0001\u0000\u0000\u0000\u00d7\u065b\u0001\u0000\u0000\u0000\u00d9"+ + "\u0660\u0001\u0000\u0000\u0000\u00db\u0669\u0001\u0000\u0000\u0000\u00dd"+ + "\u067a\u0001\u0000\u0000\u0000\u00df\u0685\u0001\u0000\u0000\u0000\u00e1"+ + "\u068a\u0001\u0000\u0000\u0000\u00e3\u068e\u0001\u0000\u0000\u0000\u00e5"+ + "\u0695\u0001\u0000\u0000\u0000\u00e7\u069c\u0001\u0000\u0000\u0000\u00e9"+ + "\u06a0\u0001\u0000\u0000\u0000\u00eb\u06a7\u0001\u0000\u0000\u0000\u00ed"+ + "\u06ae\u0001\u0000\u0000\u0000\u00ef\u06b4\u0001\u0000\u0000\u0000\u00f1"+ + "\u06bc\u0001\u0000\u0000\u0000\u00f3\u06c4\u0001\u0000\u0000\u0000\u00f5"+ + "\u06cc\u0001\u0000\u0000\u0000\u00f7\u06d5\u0001\u0000\u0000\u0000\u00f9"+ + "\u06de\u0001\u0000\u0000\u0000\u00fb\u06e4\u0001\u0000\u0000\u0000\u00fd"+ + "\u06e8\u0001\u0000\u0000\u0000\u00ff\u06ed\u0001\u0000\u0000\u0000\u0101"+ + "\u06f3\u0001\u0000\u0000\u0000\u0103\u06fa\u0001\u0000\u0000\u0000\u0105"+ + "\u0705\u0001\u0000\u0000\u0000\u0107\u0719\u0001\u0000\u0000\u0000\u0109"+ + "\u0725\u0001\u0000\u0000\u0000\u010b\u072a\u0001\u0000\u0000\u0000\u010d"+ + "\u072d\u0001\u0000\u0000\u0000\u010f\u0730\u0001\u0000\u0000\u0000\u0111"+ + "\u0737\u0001\u0000\u0000\u0000\u0113\u073b\u0001\u0000\u0000\u0000\u0115"+ + "\u0743\u0001\u0000\u0000\u0000\u0117\u0748\u0001\u0000\u0000\u0000\u0119"+ + "\u0751\u0001\u0000\u0000\u0000\u011b\u0757\u0001\u0000\u0000\u0000\u011d"+ + "\u0761\u0001\u0000\u0000\u0000\u011f\u0767\u0001\u0000\u0000\u0000\u0121"+ + "\u0771\u0001\u0000\u0000\u0000\u0123\u0777\u0001\u0000\u0000\u0000\u0125"+ + "\u0781\u0001\u0000\u0000\u0000\u0127\u0788\u0001\u0000\u0000\u0000\u0129"+ + "\u0793\u0001\u0000\u0000\u0000\u012b\u079a\u0001\u0000\u0000\u0000\u012d"+ + "\u07a5\u0001\u0000\u0000\u0000\u012f\u07af\u0001\u0000\u0000\u0000\u0131"+ + "\u07b8\u0001\u0000\u0000\u0000\u0133\u07bb\u0001\u0000\u0000\u0000\u0135"+ + "\u07c3\u0001\u0000\u0000\u0000\u0137\u07c8\u0001\u0000\u0000\u0000\u0139"+ + "\u07cc\u0001\u0000\u0000\u0000\u013b\u07d1\u0001\u0000\u0000\u0000\u013d"+ + "\u07d7\u0001\u0000\u0000\u0000\u013f\u07dc\u0001\u0000\u0000\u0000\u0141"+ + "\u07df\u0001\u0000\u0000\u0000\u0143\u07e5\u0001\u0000\u0000\u0000\u0145"+ + "\u07f4\u0001\u0000\u0000\u0000\u0147\u07ff\u0001\u0000\u0000\u0000\u0149"+ + "\u080f\u0001\u0000\u0000\u0000\u014b\u0813\u0001\u0000\u0000\u0000\u014d"+ + "\u0819\u0001\u0000\u0000\u0000\u014f\u081f\u0001\u0000\u0000\u0000\u0151"+ + "\u0825\u0001\u0000\u0000\u0000\u0153\u082b\u0001\u0000\u0000\u0000\u0155"+ + "\u082f\u0001\u0000\u0000\u0000\u0157\u0833\u0001\u0000\u0000\u0000\u0159"+ + "\u083a\u0001\u0000\u0000\u0000\u015b\u083e\u0001\u0000\u0000\u0000\u015d"+ + "\u0844\u0001\u0000\u0000\u0000\u015f\u0849\u0001\u0000\u0000\u0000\u0161"+ + "\u0852\u0001\u0000\u0000\u0000\u0163\u085c\u0001\u0000\u0000\u0000\u0165"+ + "\u0860\u0001\u0000\u0000\u0000\u0167\u0868\u0001\u0000\u0000\u0000\u0169"+ + "\u086d\u0001\u0000\u0000\u0000\u016b\u0873\u0001\u0000\u0000\u0000\u016d"+ + "\u087a\u0001\u0000\u0000\u0000\u016f\u0887\u0001\u0000\u0000\u0000\u0171"+ + "\u088a\u0001\u0000\u0000\u0000\u0173\u0891\u0001\u0000\u0000\u0000\u0175"+ + "\u089a\u0001\u0000\u0000\u0000\u0177\u089d\u0001\u0000\u0000\u0000\u0179"+ + "\u08a3\u0001\u0000\u0000\u0000\u017b\u08ad\u0001\u0000\u0000\u0000\u017d"+ + "\u08b7\u0001\u0000\u0000\u0000\u017f\u08c2\u0001\u0000\u0000\u0000\u0181"+ + "\u08c7\u0001\u0000\u0000\u0000\u0183\u08d3\u0001\u0000\u0000\u0000\u0185"+ + "\u08d9\u0001\u0000\u0000\u0000\u0187\u08e9\u0001\u0000\u0000\u0000\u0189"+ + "\u08f9\u0001\u0000\u0000\u0000\u018b\u08ff\u0001\u0000\u0000\u0000\u018d"+ + "\u0909\u0001\u0000\u0000\u0000\u018f\u0919\u0001\u0000\u0000\u0000\u0191"+ + "\u0921\u0001\u0000\u0000\u0000\u0193\u0926\u0001\u0000\u0000\u0000\u0195"+ + "\u092d\u0001\u0000\u0000\u0000\u0197\u0934\u0001\u0000\u0000\u0000\u0199"+ + "\u093c\u0001\u0000\u0000\u0000\u019b\u0942\u0001\u0000\u0000\u0000\u019d"+ + "\u0949\u0001\u0000\u0000\u0000\u019f\u094f\u0001\u0000\u0000\u0000\u01a1"+ + "\u0958\u0001\u0000\u0000\u0000\u01a3\u095e\u0001\u0000\u0000\u0000\u01a5"+ + "\u0963\u0001\u0000\u0000\u0000\u01a7\u096a\u0001\u0000\u0000\u0000\u01a9"+ + "\u0971\u0001\u0000\u0000\u0000\u01ab\u0978\u0001\u0000\u0000\u0000\u01ad"+ + "\u0980\u0001\u0000\u0000\u0000\u01af\u098d\u0001\u0000\u0000\u0000\u01b1"+ + "\u0991\u0001\u0000\u0000\u0000\u01b3\u0998\u0001\u0000\u0000\u0000\u01b5"+ + "\u099c\u0001\u0000\u0000\u0000\u01b7\u09a1\u0001\u0000\u0000\u0000\u01b9"+ + "\u09a6\u0001\u0000\u0000\u0000\u01bb\u09ab\u0001\u0000\u0000\u0000\u01bd"+ + "\u09b1\u0001\u0000\u0000\u0000\u01bf\u09ba\u0001\u0000\u0000\u0000\u01c1"+ + "\u09bf\u0001\u0000\u0000\u0000\u01c3\u09c5\u0001\u0000\u0000\u0000\u01c5"+ + "\u09d0\u0001\u0000\u0000\u0000\u01c7\u09dc\u0001\u0000\u0000\u0000\u01c9"+ + "\u09e3\u0001\u0000\u0000\u0000\u01cb\u09e7\u0001\u0000\u0000\u0000\u01cd"+ + "\u09eb\u0001\u0000\u0000\u0000\u01cf\u09f0\u0001\u0000\u0000\u0000\u01d1"+ + "\u09f5\u0001\u0000\u0000\u0000\u01d3\u09fa\u0001\u0000\u0000\u0000\u01d5"+ + "\u0a04\u0001\u0000\u0000\u0000\u01d7\u0a0d\u0001\u0000\u0000\u0000\u01d9"+ + "\u0a12\u0001\u0000\u0000\u0000\u01db\u0a18\u0001\u0000\u0000\u0000\u01dd"+ + "\u0a20\u0001\u0000\u0000\u0000\u01df\u0a25\u0001\u0000\u0000\u0000\u01e1"+ + "\u0a2b\u0001\u0000\u0000\u0000\u01e3\u0a32\u0001\u0000\u0000\u0000\u01e5"+ + "\u0a39\u0001\u0000\u0000\u0000\u01e7\u0a40\u0001\u0000\u0000\u0000\u01e9"+ + "\u0a48\u0001\u0000\u0000\u0000\u01eb\u0a50\u0001\u0000\u0000\u0000\u01ed"+ + "\u0a56\u0001\u0000\u0000\u0000\u01ef\u0a5f\u0001\u0000\u0000\u0000\u01f1"+ + "\u0a65\u0001\u0000\u0000\u0000\u01f3\u0a69\u0001\u0000\u0000\u0000\u01f5"+ + "\u0a73\u0001\u0000\u0000\u0000\u01f7\u0a79\u0001\u0000\u0000\u0000\u01f9"+ + "\u0a83\u0001\u0000\u0000\u0000\u01fb\u0a8b\u0001\u0000\u0000\u0000\u01fd"+ + "\u0a94\u0001\u0000\u0000\u0000\u01ff\u0a99\u0001\u0000\u0000\u0000\u0201"+ + "\u0a9f\u0001\u0000\u0000\u0000\u0203\u0aa4\u0001\u0000\u0000\u0000\u0205"+ + "\u0aa8\u0001\u0000\u0000\u0000\u0207\u0aad\u0001\u0000\u0000\u0000\u0209"+ + "\u0ab3\u0001\u0000\u0000\u0000\u020b\u0ab9\u0001\u0000\u0000\u0000\u020d"+ + "\u0ac8\u0001\u0000\u0000\u0000\u020f\u0ad3\u0001\u0000\u0000\u0000\u0211"+ + "\u0adc\u0001\u0000\u0000\u0000\u0213\u0ae6\u0001\u0000\u0000\u0000\u0215"+ + "\u0af1\u0001\u0000\u0000\u0000\u0217\u0af7\u0001\u0000\u0000\u0000\u0219"+ + "\u0aff\u0001\u0000\u0000\u0000\u021b\u0b05\u0001\u0000\u0000\u0000\u021d"+ + "\u0b0b\u0001\u0000\u0000\u0000\u021f\u0b16\u0001\u0000\u0000\u0000\u0221"+ + "\u0b23\u0001\u0000\u0000\u0000\u0223\u0b30\u0001\u0000\u0000\u0000\u0225"+ + "\u0b35\u0001\u0000\u0000\u0000\u0227\u0b3f\u0001\u0000\u0000\u0000\u0229"+ + "\u0b46\u0001\u0000\u0000\u0000\u022b\u0b4c\u0001\u0000\u0000\u0000\u022d"+ + "\u0b55\u0001\u0000\u0000\u0000\u022f\u0b5e\u0001\u0000\u0000\u0000\u0231"+ + "\u0b68\u0001\u0000\u0000\u0000\u0233\u0b6e\u0001\u0000\u0000\u0000\u0235"+ + "\u0b76\u0001\u0000\u0000\u0000\u0237\u0b7f\u0001\u0000\u0000\u0000\u0239"+ + "\u0b86\u0001\u0000\u0000\u0000\u023b\u0b8e\u0001\u0000\u0000\u0000\u023d"+ + "\u0b91\u0001\u0000\u0000\u0000\u023f\u0b96\u0001\u0000\u0000\u0000\u0241"+ + "\u0ba0\u0001\u0000\u0000\u0000\u0243\u0baa\u0001\u0000\u0000\u0000\u0245"+ + "\u0bb2\u0001\u0000\u0000\u0000\u0247\u0bba\u0001\u0000\u0000\u0000\u0249"+ + "\u0bc0\u0001\u0000\u0000\u0000\u024b\u0bc8\u0001\u0000\u0000\u0000\u024d"+ + "\u0bd2\u0001\u0000\u0000\u0000\u024f\u0bd9\u0001\u0000\u0000\u0000\u0251"+ + "\u0be0\u0001\u0000\u0000\u0000\u0253\u0bea\u0001\u0000\u0000\u0000\u0255"+ + "\u0bf6\u0001\u0000\u0000\u0000\u0257\u0bff\u0001\u0000\u0000\u0000\u0259"+ + "\u0c06\u0001\u0000\u0000\u0000\u025b\u0c0b\u0001\u0000\u0000\u0000\u025d"+ + "\u0c12\u0001\u0000\u0000\u0000\u025f\u0c1a\u0001\u0000\u0000\u0000\u0261"+ + "\u0c22\u0001\u0000\u0000\u0000\u0263\u0c2b\u0001\u0000\u0000\u0000\u0265"+ + "\u0c36\u0001\u0000\u0000\u0000\u0267\u0c42\u0001\u0000\u0000\u0000\u0269"+ + "\u0c4c\u0001\u0000\u0000\u0000\u026b\u0c55\u0001\u0000\u0000\u0000\u026d"+ + "\u0c5a\u0001\u0000\u0000\u0000\u026f\u0c60\u0001\u0000\u0000\u0000\u0271"+ + "\u0c68\u0001\u0000\u0000\u0000\u0273\u0c71\u0001\u0000\u0000\u0000\u0275"+ + "\u0c77\u0001\u0000\u0000\u0000\u0277\u0c7d\u0001\u0000\u0000\u0000\u0279"+ + "\u0c84\u0001\u0000\u0000\u0000\u027b\u0c89\u0001\u0000\u0000\u0000\u027d"+ + "\u0c8f\u0001\u0000\u0000\u0000\u027f\u0c97\u0001\u0000\u0000\u0000\u0281"+ + "\u0c9e\u0001\u0000\u0000\u0000\u0283\u0ca3\u0001\u0000\u0000\u0000\u0285"+ + "\u0ca7\u0001\u0000\u0000\u0000\u0287\u0cab\u0001\u0000\u0000\u0000\u0289"+ + "\u0cb0\u0001\u0000\u0000\u0000\u028b\u0cb5\u0001\u0000\u0000\u0000\u028d"+ + "\u0cb8\u0001\u0000\u0000\u0000\u028f\u0cbd\u0001\u0000\u0000\u0000\u0291"+ + "\u0cc8\u0001\u0000\u0000\u0000\u0293\u0ccd\u0001\u0000\u0000\u0000\u0295"+ + "\u0cd8\u0001\u0000\u0000\u0000\u0297\u0ce1\u0001\u0000\u0000\u0000\u0299"+ + "\u0ce6\u0001\u0000\u0000\u0000\u029b\u0cf3\u0001\u0000\u0000\u0000\u029d"+ + "\u0d01\u0001\u0000\u0000\u0000\u029f\u0d0c\u0001\u0000\u0000\u0000\u02a1"+ + "\u0d15\u0001\u0000\u0000\u0000\u02a3\u0d1c\u0001\u0000\u0000\u0000\u02a5"+ + "\u0d23\u0001\u0000\u0000\u0000\u02a7\u0d29\u0001\u0000\u0000\u0000\u02a9"+ + "\u0d2e\u0001\u0000\u0000\u0000\u02ab\u0d31\u0001\u0000\u0000\u0000\u02ad"+ + "\u0d37\u0001\u0000\u0000\u0000\u02af\u0d43\u0001\u0000\u0000\u0000\u02b1"+ + "\u0d48\u0001\u0000\u0000\u0000\u02b3\u0d53\u0001\u0000\u0000\u0000\u02b5"+ + "\u0d5a\u0001\u0000\u0000\u0000\u02b7\u0d5f\u0001\u0000\u0000\u0000\u02b9"+ + "\u0d67\u0001\u0000\u0000\u0000\u02bb\u0d6d\u0001\u0000\u0000\u0000\u02bd"+ + "\u0d74\u0001\u0000\u0000\u0000\u02bf\u0d76\u0001\u0000\u0000\u0000\u02c1"+ + "\u0d7e\u0001\u0000\u0000\u0000\u02c3\u0d84\u0001\u0000\u0000\u0000\u02c5"+ + "\u0d86\u0001\u0000\u0000\u0000\u02c7\u0d89\u0001\u0000\u0000\u0000\u02c9"+ + "\u0d8e\u0001\u0000\u0000\u0000\u02cb\u0d90\u0001\u0000\u0000\u0000\u02cd"+ + "\u0d92\u0001\u0000\u0000\u0000\u02cf\u0d94\u0001\u0000\u0000\u0000\u02d1"+ + "\u0d96\u0001\u0000\u0000\u0000\u02d3\u0d9a\u0001\u0000\u0000\u0000\u02d5"+ + "\u0d9e\u0001\u0000\u0000\u0000\u02d7\u0da2\u0001\u0000\u0000\u0000\u02d9"+ + "\u0da5\u0001\u0000\u0000\u0000\u02db\u0da8\u0001\u0000\u0000\u0000\u02dd"+ + "\u0dab\u0001\u0000\u0000\u0000\u02df\u0dae\u0001\u0000\u0000\u0000\u02e1"+ + "\u0db1\u0001\u0000\u0000\u0000\u02e3\u0db4\u0001\u0000\u0000\u0000\u02e5"+ + "\u0db7\u0001\u0000\u0000\u0000\u02e7\u0dbb\u0001\u0000\u0000\u0000\u02e9"+ + "\u0dbf\u0001\u0000\u0000\u0000\u02eb\u0dc3\u0001\u0000\u0000\u0000\u02ed"+ + "\u0dc7\u0001\u0000\u0000\u0000\u02ef\u0dcb\u0001\u0000\u0000\u0000\u02f1"+ + "\u0dce\u0001\u0000\u0000\u0000\u02f3\u0dd1\u0001\u0000\u0000\u0000\u02f5"+ + "\u0dd4\u0001\u0000\u0000\u0000\u02f7\u0dd7\u0001\u0000\u0000\u0000\u02f9"+ + "\u0dda\u0001\u0000\u0000\u0000\u02fb\u0ddd\u0001\u0000\u0000\u0000\u02fd"+ + "\u0de0\u0001\u0000\u0000\u0000\u02ff\u0de3\u0001\u0000\u0000\u0000\u0301"+ + "\u0de6\u0001\u0000\u0000\u0000\u0303\u0dea\u0001\u0000\u0000\u0000\u0305"+ + "\u0ded\u0001\u0000\u0000\u0000\u0307\u0df1\u0001\u0000\u0000\u0000\u0309"+ + "\u0df4\u0001\u0000\u0000\u0000\u030b\u0df7\u0001\u0000\u0000\u0000\u030d"+ + "\u0dfa\u0001\u0000\u0000\u0000\u030f\u0dfc\u0001\u0000\u0000\u0000\u0311"+ + "\u0dfe\u0001\u0000\u0000\u0000\u0313\u0e00\u0001\u0000\u0000\u0000\u0315"+ + "\u0e02\u0001\u0000\u0000\u0000\u0317\u0e04\u0001\u0000\u0000\u0000\u0319"+ + "\u0e06\u0001\u0000\u0000\u0000\u031b\u0e08\u0001\u0000\u0000\u0000\u031d"+ + "\u0e0a\u0001\u0000\u0000\u0000\u031f\u0e0c\u0001\u0000\u0000\u0000\u0321"+ + "\u0e0e\u0001\u0000\u0000\u0000\u0323\u0e10\u0001\u0000\u0000\u0000\u0325"+ + "\u0e12\u0001\u0000\u0000\u0000\u0327\u0e14\u0001\u0000\u0000\u0000\u0329"+ + "\u0e16\u0001\u0000\u0000\u0000\u032b\u0e18\u0001\u0000\u0000\u0000\u032d"+ + "\u0e1a\u0001\u0000\u0000\u0000\u032f\u0e1c\u0001\u0000\u0000\u0000\u0331"+ + "\u0e1e\u0001\u0000\u0000\u0000\u0333\u0e20\u0001\u0000\u0000\u0000\u0335"+ + "\u0e22\u0001\u0000\u0000\u0000\u0337\u0e24\u0001\u0000\u0000\u0000\u0339"+ + "\u0e26\u0001\u0000\u0000\u0000\u033b\u0e28\u0001\u0000\u0000\u0000\u033d"+ + "\u0e2a\u0001\u0000\u0000\u0000\u033f\u0e2c\u0001\u0000\u0000\u0000\u0341"+ + "\u0e2e\u0001\u0000\u0000\u0000\u0343\u0e30\u0001\u0000\u0000\u0000\u0345"+ + "\u0e32\u0001\u0000\u0000\u0000\u0347\u0e34\u0001\u0000\u0000\u0000\u0349"+ + "\u0e36\u0001\u0000\u0000\u0000\u034b\u0e38\u0001\u0000\u0000\u0000\u034d"+ + "\u0e3a\u0001\u0000\u0000\u0000\u034f\u0e3d\u0001\u0000\u0000\u0000\u0351"+ + "\u0e4e\u0001\u0000\u0000\u0000\u0353\u0e50\u0001\u0000\u0000\u0000\u0355"+ + "\u0e5e\u0001\u0000\u0000\u0000\u0357\u0e69\u0001\u0000\u0000\u0000\u0359"+ + "\u0e74\u0001\u0000\u0000\u0000\u035b\u0e76\u0001\u0000\u0000\u0000\u035d"+ + "\u0e78\u0001\u0000\u0000\u0000\u035f\u0e7a\u0001\u0000\u0000\u0000\u0361"+ + "\u0e7c\u0001\u0000\u0000\u0000\u0363\u0e7e\u0001\u0000\u0000\u0000\u0365"+ + "\u0e80\u0001\u0000\u0000\u0000\u0367\u0e82\u0001\u0000\u0000\u0000\u0369"+ + "\u0e84\u0001\u0000\u0000\u0000\u036b\u0e86\u0001\u0000\u0000\u0000\u036d"+ + "\u0e88\u0001\u0000\u0000\u0000\u036f\u0e8a\u0001\u0000\u0000\u0000\u0371"+ + "\u037a\u0003\u02fd\u017e\u0000\u0372\u0373\u0007\u0000\u0000\u0000\u0373"+ + "\u0374\u0007\u0001\u0000\u0000\u0374\u0375\u0007\u0002\u0000\u0000\u0375"+ + "\u0376\u0007\u0003\u0000\u0000\u0376\u0377\u0007\u0000\u0000\u0000\u0377"+ + "\u0378\u0007\u0004\u0000\u0000\u0378\u037a\u0007\u0005\u0000\u0000\u0379"+ + "\u0371\u0001\u0000\u0000\u0000\u0379\u0372\u0001\u0000\u0000\u0000\u037a"+ + "\u0002\u0001\u0000\u0000\u0000\u037b\u037c\u0003\u02bd\u015e\u0000\u037c"+ + "\u0004\u0001\u0000\u0000\u0000\u037d\u037e\u0007\u0006\u0000\u0000\u037e"+ + "\u037f\u0007\u0007\u0000\u0000\u037f\u0380\u0007\b\u0000\u0000\u0380\u038e"+ + "\u0007\u0004\u0000\u0000\u0381\u0382\u0007\t\u0000\u0000\u0382\u0383\u0007"+ + "\n\u0000\u0000\u0383\u0384\u0007\u0003\u0000\u0000\u0384\u0385\u0007\u0005"+ + "\u0000\u0000\u0385\u038e\u0007\u0004\u0000\u0000\u0386\u0387\u0007\b\u0000"+ + "\u0000\u0387\u0388\u0007\u000b\u0000\u0000\u0388\u0389\u0007\f\u0000\u0000"+ + "\u0389\u038a\u0007\u000b\u0000\u0000\u038a\u038b\u0007\r\u0000\u0000\u038b"+ + "\u038c\u0007\u000e\u0000\u0000\u038c\u038e\u0007\u000b\u0000\u0000\u038d"+ + "\u037d\u0001\u0000\u0000\u0000\u038d\u0381\u0001\u0000\u0000\u0000\u038d"+ + "\u0386\u0001\u0000\u0000\u0000\u038e\u0006\u0001\u0000\u0000\u0000\u038f"+ + "\u0391\u0003\r\u0006\u0000\u0390\u038f\u0001\u0000\u0000\u0000\u0390\u0391"+ + "\u0001\u0000\u0000\u0000\u0391\u0392\u0001\u0000\u0000\u0000\u0392\u0393"+ + "\u0003\u000f\u0007\u0000\u0393\b\u0001\u0000\u0000\u0000\u0394\u0396\u0003"+ + "\r\u0006\u0000\u0395\u0394\u0001\u0000\u0000\u0000\u0395\u0396\u0001\u0000"+ + "\u0000\u0000\u0396\u0397\u0001\u0000\u0000\u0000\u0397\u0398\u0003\u0011"+ + "\b\u0000\u0398\n\u0001\u0000\u0000\u0000\u0399\u039b\u0003\r\u0006\u0000"+ + "\u039a\u0399\u0001\u0000\u0000\u0000\u039a\u039b\u0001\u0000\u0000\u0000"+ + "\u039b\u039c\u0001\u0000\u0000\u0000\u039c\u039d\u0003\u0013\t\u0000\u039d"+ + "\f\u0001\u0000\u0000\u0000\u039e\u039f\u0003\u0315\u018a\u0000\u039f\u000e"+ + "\u0001\u0000\u0000\u0000\u03a0\u03a4\u0003\u0335\u019a\u0000\u03a1\u03a3"+ + "\u0003\u0015\n\u0000\u03a2\u03a1\u0001\u0000\u0000\u0000\u03a3\u03a6\u0001"+ + "\u0000\u0000\u0000\u03a4\u03a2\u0001\u0000\u0000\u0000\u03a4\u03a5\u0001"+ + "\u0000\u0000\u0000\u03a5\u03a7\u0001\u0000\u0000\u0000\u03a6\u03a4\u0001"+ + "\u0000\u0000\u0000\u03a7\u03a8\u0003\u0335\u019a\u0000\u03a8\u0010\u0001"+ + "\u0000\u0000\u0000\u03a9\u03ad\u0003\u0319\u018c\u0000\u03aa\u03ac\u0003"+ + "\u0017\u000b\u0000\u03ab\u03aa\u0001\u0000\u0000\u0000\u03ac\u03af\u0001"+ + "\u0000\u0000\u0000\u03ad\u03ab\u0001\u0000\u0000\u0000\u03ad\u03ae\u0001"+ + "\u0000\u0000\u0000\u03ae\u03b0\u0001\u0000\u0000\u0000\u03af\u03ad\u0001"+ + "\u0000\u0000\u0000\u03b0\u03b1\u0003\u0319\u018c\u0000\u03b1\u0012\u0001"+ + "\u0000\u0000\u0000\u03b2\u03b6\u0003\u0321\u0190\u0000\u03b3\u03b5\u0003"+ + "\u0019\f\u0000\u03b4\u03b3\u0001\u0000\u0000\u0000\u03b5\u03b8\u0001\u0000"+ + "\u0000\u0000\u03b6\u03b4\u0001\u0000\u0000\u0000\u03b6\u03b7\u0001\u0000"+ + "\u0000\u0000\u03b7\u03b9\u0001\u0000\u0000\u0000\u03b8\u03b6\u0001\u0000"+ + "\u0000\u0000\u03b9\u03ba\u0003\u0321\u0190\u0000\u03ba\u0014\u0001\u0000"+ + "\u0000\u0000\u03bb\u03be\u0003\u001b\r\u0000\u03bc\u03be\b\u000f\u0000"+ + "\u0000\u03bd\u03bb\u0001\u0000\u0000\u0000\u03bd\u03bc\u0001\u0000\u0000"+ + "\u0000\u03be\u03bf\u0001\u0000\u0000\u0000\u03bf\u03bd\u0001\u0000\u0000"+ + "\u0000\u03bf\u03c0\u0001\u0000\u0000\u0000\u03c0\u0016\u0001\u0000\u0000"+ + "\u0000\u03c1\u03c4\u0003\u001b\r\u0000\u03c2\u03c4\b\u0010\u0000\u0000"+ + "\u03c3\u03c1\u0001\u0000\u0000\u0000\u03c3\u03c2\u0001\u0000\u0000\u0000"+ + "\u03c4\u03c5\u0001\u0000\u0000\u0000\u03c5\u03c3\u0001\u0000\u0000\u0000"+ + "\u03c5\u03c6\u0001\u0000\u0000\u0000\u03c6\u0018\u0001\u0000\u0000\u0000"+ + "\u03c7\u03ca\u0003\u001b\r\u0000\u03c8\u03ca\b\u0011\u0000\u0000\u03c9"+ + "\u03c7\u0001\u0000\u0000\u0000\u03c9\u03c8\u0001\u0000\u0000\u0000\u03ca"+ + "\u03cb\u0001\u0000\u0000\u0000\u03cb\u03c9\u0001\u0000\u0000\u0000\u03cb"+ + "\u03cc\u0001\u0000\u0000\u0000\u03cc\u001a\u0001\u0000\u0000\u0000\u03cd"+ + "\u03d9\u0003\u001d\u000e\u0000\u03ce\u03d9\u0003\u001f\u000f\u0000\u03cf"+ + "\u03d9\u0003!\u0010\u0000\u03d0\u03d9\u0003#\u0011\u0000\u03d1\u03d9\u0003"+ + "%\u0012\u0000\u03d2\u03d9\u0003\'\u0013\u0000\u03d3\u03d9\u0003)\u0014"+ + "\u0000\u03d4\u03d9\u0003+\u0015\u0000\u03d5\u03d9\u0003-\u0016\u0000\u03d6"+ + "\u03d9\u0003/\u0017\u0000\u03d7\u03d9\u00031\u0018\u0000\u03d8\u03cd\u0001"+ + "\u0000\u0000\u0000\u03d8\u03ce\u0001\u0000\u0000\u0000\u03d8\u03cf\u0001"+ + "\u0000\u0000\u0000\u03d8\u03d0\u0001\u0000\u0000\u0000\u03d8\u03d1\u0001"+ + "\u0000\u0000\u0000\u03d8\u03d2\u0001\u0000\u0000\u0000\u03d8\u03d3\u0001"+ + "\u0000\u0000\u0000\u03d8\u03d4\u0001\u0000\u0000\u0000\u03d8\u03d5\u0001"+ + "\u0000\u0000\u0000\u03d8\u03d6\u0001\u0000\u0000\u0000\u03d8\u03d7\u0001"+ + "\u0000\u0000\u0000\u03d9\u001c\u0001\u0000\u0000\u0000\u03da\u03db\u0003"+ + "\u0337\u019b\u0000\u03db\u03dc\u0003\u0337\u019b\u0000\u03dc\u001e\u0001"+ + "\u0000\u0000\u0000\u03dd\u03de\u0003\u0337\u019b\u0000\u03de\u03df\u0003"+ + "\u0335\u019a\u0000\u03df \u0001\u0000\u0000\u0000\u03e0\u03e1\u0003\u0337"+ + "\u019b\u0000\u03e1\u03e2\u0003\u0319\u018c\u0000\u03e2\"\u0001\u0000\u0000"+ + "\u0000\u03e3\u03e4\u0003\u0337\u019b\u0000\u03e4\u03e5\u0003\u0321\u0190"+ + "\u0000\u03e5$\u0001\u0000\u0000\u0000\u03e6\u03e7\u0003\u0337\u019b\u0000"+ + "\u03e7\u03e8\u0007\u0006\u0000\u0000\u03e8&\u0001\u0000\u0000\u0000\u03e9"+ + "\u03ea\u0003\u0337\u019b\u0000\u03ea\u03eb\u0007\u0012\u0000\u0000\u03eb"+ + "(\u0001\u0000\u0000\u0000\u03ec\u03ed\u0003\u0337\u019b\u0000\u03ed\u03ee"+ + "\u0007\u000b\u0000\u0000\u03ee*\u0001\u0000\u0000\u0000\u03ef\u03f0\u0003"+ + "\u0337\u019b\u0000\u03f0\u03f1\u0007\u0007\u0000\u0000\u03f1,\u0001\u0000"+ + "\u0000\u0000\u03f2\u03f3\u0003\u0337\u019b\u0000\u03f3\u03f4\u0007\t\u0000"+ + "\u0000\u03f4.\u0001\u0000\u0000\u0000\u03f5\u03f6\u0003\u0337\u019b\u0000"+ + "\u03f6\u03f7\u0007\b\u0000\u0000\u03f7\u03f8\u0003\u0347\u01a3\u0000\u03f8"+ + "\u03f9\u0003\u0347\u01a3\u0000\u03f9\u03fa\u0003\u0347\u01a3\u0000\u03fa"+ + "\u03fb\u0003\u0347\u01a3\u0000\u03fb0\u0001\u0000\u0000\u0000\u03fc\u03fd"+ + "\u0003\u0337\u019b\u0000\u03fd\u03fe\u0007\b\u0000\u0000\u03fe\u03ff\u0003"+ + "\u0347\u01a3\u0000\u03ff\u0400\u0003\u0347\u01a3\u0000\u0400\u0401\u0003"+ + "\u0347\u01a3\u0000\u0401\u0402\u0003\u0347\u01a3\u0000\u0402\u0403\u0003"+ + "\u0347\u01a3\u0000\u0403\u0404\u0003\u0347\u01a3\u0000\u04042\u0001\u0000"+ + "\u0000\u0000\u0405\u0406\u0007\u0013\u0000\u0000\u0406\u040a\u0003\u0335"+ + "\u019a\u0000\u0407\u0409\u0003\u0361\u01b0\u0000\u0408\u0407\u0001\u0000"+ + "\u0000\u0000\u0409\u040c\u0001\u0000\u0000\u0000\u040a\u0408\u0001\u0000"+ + "\u0000\u0000\u040a\u040b\u0001\u0000\u0000\u0000\u040b\u041d\u0001\u0000"+ + "\u0000\u0000\u040c\u040a\u0001\u0000\u0000\u0000\u040d\u0411\u0003\u0347"+ + "\u01a3\u0000\u040e\u0410\u0003\u0361\u01b0\u0000\u040f\u040e\u0001\u0000"+ + "\u0000\u0000\u0410\u0413\u0001\u0000\u0000\u0000\u0411\u040f\u0001\u0000"+ + "\u0000\u0000\u0411\u0412\u0001\u0000\u0000\u0000\u0412\u0414\u0001\u0000"+ + "\u0000\u0000\u0413\u0411\u0001\u0000\u0000\u0000\u0414\u0418\u0003\u0347"+ + "\u01a3\u0000\u0415\u0417\u0003\u0361\u01b0\u0000\u0416\u0415\u0001\u0000"+ + "\u0000\u0000\u0417\u041a\u0001\u0000\u0000\u0000\u0418\u0416\u0001\u0000"+ + "\u0000\u0000\u0418\u0419\u0001\u0000\u0000\u0000\u0419\u041c\u0001\u0000"+ + "\u0000\u0000\u041a\u0418\u0001\u0000\u0000\u0000\u041b\u040d\u0001\u0000"+ + "\u0000\u0000\u041c\u041f\u0001\u0000\u0000\u0000\u041d\u041b\u0001\u0000"+ + "\u0000\u0000\u041d\u041e\u0001\u0000\u0000\u0000\u041e\u0420\u0001\u0000"+ + "\u0000\u0000\u041f\u041d\u0001\u0000\u0000\u0000\u0420\u0421\u0003\u0335"+ + "\u019a\u0000\u04214\u0001\u0000\u0000\u0000\u0422\u0423\u0003I$\u0000"+ + "\u0423\u0424\u0003G#\u0000\u04246\u0001\u0000\u0000\u0000\u0425\u0426"+ + "\u0003I$\u0000\u04268\u0001\u0000\u0000\u0000\u0427\u0428\u0003I$\u0000"+ + "\u0428\u0429\u0003Y,\u0000\u0429:\u0001\u0000\u0000\u0000\u042a\u042b"+ + "\u0003O\'\u0000\u042b\u042c\u0003G#\u0000\u042c<\u0001\u0000\u0000\u0000"+ + "\u042d\u042e\u0003O\'\u0000\u042e>\u0001\u0000\u0000\u0000\u042f\u0430"+ + "\u0003O\'\u0000\u0430\u0431\u0003Y,\u0000\u0431@\u0001\u0000\u0000\u0000"+ + "\u0432\u0433\u0003E\"\u0000\u0433\u0434\u0003G#\u0000\u0434B\u0001\u0000"+ + "\u0000\u0000\u0435\u0436\u0003E\"\u0000\u0436\u0437\u0003Y,\u0000\u0437"+ + "D\u0001\u0000\u0000\u0000\u0438\u043f\u0003\u0349\u01a4\u0000\u0439\u043b"+ + "\u0003\u0343\u01a1\u0000\u043a\u0439\u0001\u0000\u0000\u0000\u043a\u043b"+ + "\u0001\u0000\u0000\u0000\u043b\u043c\u0001\u0000\u0000\u0000\u043c\u043e"+ + "\u0003\u0349\u01a4\u0000\u043d\u043a\u0001\u0000\u0000\u0000\u043e\u0441"+ + "\u0001\u0000\u0000\u0000\u043f\u043d\u0001\u0000\u0000\u0000\u043f\u0440"+ + "\u0001\u0000\u0000\u0000\u0440F\u0001\u0000\u0000\u0000\u0441\u043f\u0001"+ + "\u0000\u0000\u0000\u0442\u0443\u0007\u0001\u0000\u0000\u0443H\u0001\u0000"+ + "\u0000\u0000\u0444\u0445\u0003K%\u0000\u0445\u0446\u0007\u0004\u0000\u0000"+ + "\u0446\u0447\u0003M&\u0000\u0447J\u0001\u0000\u0000\u0000\u0448\u044b"+ + "\u0003O\'\u0000\u0449\u044b\u0003E\"\u0000\u044a\u0448\u0001\u0000\u0000"+ + "\u0000\u044a\u0449\u0001\u0000\u0000\u0000\u044bL\u0001\u0000\u0000\u0000"+ + "\u044c\u044d\u0003Q(\u0000\u044dN\u0001\u0000\u0000\u0000\u044e\u044f"+ + "\u0003E\"\u0000\u044f\u0451\u0003\u032f\u0197\u0000\u0450\u0452\u0003"+ + "E\"\u0000\u0451\u0450\u0001\u0000\u0000\u0000\u0451\u0452\u0001\u0000"+ + "\u0000\u0000\u0452\u0457\u0001\u0000\u0000\u0000\u0453\u0454\u0003\u032f"+ + "\u0197\u0000\u0454\u0455\u0003E\"\u0000\u0455\u0457\u0001\u0000\u0000"+ + "\u0000\u0456\u044e\u0001\u0000\u0000\u0000\u0456\u0453\u0001\u0000\u0000"+ + "\u0000\u0457P\u0001\u0000\u0000\u0000\u0458\u045b\u0003\u0331\u0198\u0000"+ + "\u0459\u045b\u0003\u032b\u0195\u0000\u045a\u0458\u0001\u0000\u0000\u0000"+ + "\u045a\u0459\u0001\u0000\u0000\u0000\u045a\u045b\u0001\u0000\u0000\u0000"+ + "\u045b\u045c\u0001\u0000\u0000\u0000\u045c\u045d\u0003E\"\u0000\u045d"+ + "R\u0001\u0000\u0000\u0000\u045e\u045f\u00050\u0000\u0000\u045f\u0460\u0007"+ + "\u0013\u0000\u0000\u0460\u0465\u0001\u0000\u0000\u0000\u0461\u0463\u0005"+ + "_\u0000\u0000\u0462\u0461\u0001\u0000\u0000\u0000\u0462\u0463\u0001\u0000"+ + "\u0000\u0000\u0463\u0464\u0001\u0000\u0000\u0000\u0464\u0466\u0003\u0347"+ + "\u01a3\u0000\u0465\u0462\u0001\u0000\u0000\u0000\u0466\u0467\u0001\u0000"+ + "\u0000\u0000\u0467\u0465\u0001\u0000\u0000\u0000\u0467\u0468\u0001\u0000"+ + "\u0000\u0000\u0468T\u0001\u0000\u0000\u0000\u0469\u046a\u00050\u0000\u0000"+ + "\u046a\u046b\u0007\r\u0000\u0000\u046b\u0470\u0001\u0000\u0000\u0000\u046c"+ + "\u046e\u0005_\u0000\u0000\u046d\u046c\u0001\u0000\u0000\u0000\u046d\u046e"+ + "\u0001\u0000\u0000\u0000\u046e\u046f\u0001\u0000\u0000\u0000\u046f\u0471"+ + "\u0003\u034b\u01a5\u0000\u0470\u046d\u0001\u0000\u0000\u0000\u0471\u0472"+ + "\u0001\u0000\u0000\u0000\u0472\u0470\u0001\u0000\u0000\u0000\u0472\u0473"+ + "\u0001\u0000\u0000\u0000\u0473V\u0001\u0000\u0000\u0000\u0474\u0475\u0005"+ + "0\u0000\u0000\u0475\u0476\u0007\u0012\u0000\u0000\u0476\u047b\u0001\u0000"+ + "\u0000\u0000\u0477\u0479\u0005_\u0000\u0000\u0478\u0477\u0001\u0000\u0000"+ + "\u0000\u0478\u0479\u0001\u0000\u0000\u0000\u0479\u047a\u0001\u0000\u0000"+ + "\u0000\u047a\u047c\u0003\u034d\u01a6\u0000\u047b\u0478\u0001\u0000\u0000"+ + "\u0000\u047c\u047d\u0001\u0000\u0000\u0000\u047d\u047b\u0001\u0000\u0000"+ + "\u0000\u047d\u047e\u0001\u0000\u0000\u0000\u047eX\u0001\u0000\u0000\u0000"+ + "\u047f\u0480\u0007\u0014\u0000\u0000\u0480Z\u0001\u0000\u0000\u0000\u0481"+ + "\u0482\u0007\n\u0000\u0000\u0482\u0483\u0007\u0012\u0000\u0000\u0483\u0484"+ + "\u0007\u0005\u0000\u0000\u0484\\\u0001\u0000\u0000\u0000\u0485\u0486\u0007"+ + "\n\u0000\u0000\u0486\u0487\u0007\u0015\u0000\u0000\u0487\u0488\u0007\r"+ + "\u0000\u0000\u0488\u0489\u0007\u0005\u0000\u0000\u0489^\u0001\u0000\u0000"+ + "\u0000\u048a\u048b\u0007\n\u0000\u0000\u048b\u048c\u0007\u0003\u0000\u0000"+ + "\u048c\u048d\u0007\u0003\u0000\u0000\u048d`\u0001\u0000\u0000\u0000\u048e"+ + "\u048f\u0007\n\u0000\u0000\u048f\u0490\u0007\u0003\u0000\u0000\u0490\u0491"+ + "\u0007\u0003\u0000\u0000\u0491\u0492\u0005_\u0000\u0000\u0492\u0493\u0007"+ + "\u0016\u0000\u0000\u0493\u0494\u0007\u0000\u0000\u0000\u0494\u0495\u0007"+ + "\t\u0000\u0000\u0495\u0496\u0007\t\u0000\u0000\u0496\u0497\u0007\u0004"+ + "\u0000\u0000\u0497\u0498\u0007\u0007\u0000\u0000\u0498\u0499\u0007\u0004"+ + "\u0000\u0000\u0499\u049a\u0007\u000b\u0000\u0000\u049a\u049b\u0007\u0006"+ + "\u0000\u0000\u049bb\u0001\u0000\u0000\u0000\u049c\u049d\u0007\n\u0000"+ + "\u0000\u049d\u049e\u0007\u000b\u0000\u0000\u049e\u049f\u0007\u0016\u0000"+ + "\u0000\u049fd\u0001\u0000\u0000\u0000\u04a0\u04a1\u0007\n\u0000\u0000"+ + "\u04a1\u04a2\u0007\u000b\u0000\u0000\u04a2\u04a3\u0007\u0017\u0000\u0000"+ + "\u04a3f\u0001\u0000\u0000\u0000\u04a4\u04a5\u0007\n\u0000\u0000\u04a5"+ + "\u04a6\u0007\u0007\u0000\u0000\u04a6\u04a7\u0007\u0007\u0000\u0000\u04a7"+ + "\u04a8\u0007\n\u0000\u0000\u04a8\u04a9\u0007\u0017\u0000\u0000\u04a9h"+ + "\u0001\u0000\u0000\u0000\u04aa\u04ab\u0007\n\u0000\u0000\u04ab\u04ac\u0007"+ + "\u0005\u0000\u0000\u04acj\u0001\u0000\u0000\u0000\u04ad\u04ae\u0007\n"+ + "\u0000\u0000\u04ae\u04af\u0007\u0005\u0000\u0000\u04af\u04b0\u0007\u0015"+ + "\u0000\u0000\u04b0l\u0001\u0000\u0000\u0000\u04b1\u04b2\u0007\n\u0000"+ + "\u0000\u04b2\u04b3\u0007\u0005\u0000\u0000\u04b3\u04b4\u0007\u0015\u0000"+ + "\u0000\u04b4\u04b5\u0007\u0004\u0000\u0000\u04b5\u04b6\u0007\u000b\u0000"+ + "\u0000\u04b6\u04b7\u0007\u0016\u0000\u0000\u04b7\u04b8\u0007\u0000\u0000"+ + "\u0000\u04b8\u04b9\u0007\u000b\u0000\u0000\u04b9\u04ba\u0007\u0018\u0000"+ + "\u0000\u04ban\u0001\u0000\u0000\u0000\u04bb\u04bc\u0007\n\u0000\u0000"+ + "\u04bc\u04bd\u0007\u0005\u0000\u0000\u04bd\u04be\u0007\u0000\u0000\u0000"+ + "\u04be\u04bf\u0007\u000b\u0000\u0000\u04bfp\u0001\u0000\u0000\u0000\u04c0"+ + "\u04c1\u0007\n\u0000\u0000\u04c1\u04c2\u0007\u0006\u0000\u0000\u04c2r"+ + "\u0001\u0000\u0000\u0000\u04c3\u04c4\u0007\n\u0000\u0000\u04c4\u04c5\u0007"+ + "\u0006\u0000\u0000\u04c5\u04c6\u0007\n\u0000\u0000\u04c6\u04c7\u0007\u000b"+ + "\u0000\u0000\u04c7t\u0001\u0000\u0000\u0000\u04c8\u04c9\u0007\n\u0000"+ + "\u0000\u04c9\u04ca\u0007\u0019\u0000\u0000\u04ca\u04cb\u0007\u0018\u0000"+ + "\u0000\u04cbv\u0001\u0000\u0000\u0000\u04cc\u04cd\u0007\u0012\u0000\u0000"+ + "\u04cd\u04ce\u0007\u0000\u0000\u0000\u04ce\u04cf\u0007\u0018\u0000\u0000"+ + "\u04cfx\u0001\u0000\u0000\u0000\u04d0\u04d1\u0007\u0012\u0000\u0000\u04d1"+ + "\u04d2\u0007\u0000\u0000\u0000\u04d2\u04d3\u0007\u0018\u0000\u0000\u04d3"+ + "\u04d4\u0007\u0000\u0000\u0000\u04d4\u04d5\u0007\u000b\u0000\u0000\u04d5"+ + "\u04d6\u0007\u0006\u0000\u0000\u04d6z\u0001\u0000\u0000\u0000\u04d7\u04d8"+ + "\u0007\u0012\u0000\u0000\u04d8\u04d9\u0007\u0000\u0000\u0000\u04d9\u04da"+ + "\u0007\u000b\u0000\u0000\u04da\u04db\u0007\n\u0000\u0000\u04db\u04dc\u0007"+ + "\u0007\u0000\u0000\u04dc\u04dd\u0007\u0017\u0000\u0000\u04dd|\u0001\u0000"+ + "\u0000\u0000\u04de\u04df\u0007\u0012\u0000\u0000\u04df\u04e0\u0007\r\u0000"+ + "\u0000\u04e0\u04e1\u0007\r\u0000\u0000\u04e1\u04e2\u0007\u0003\u0000\u0000"+ + "\u04e2~\u0001\u0000\u0000\u0000\u04e3\u04e4\u0007\u0012\u0000\u0000\u04e4"+ + "\u04e5\u0007\r\u0000\u0000\u04e5\u04e6\u0007\r\u0000\u0000\u04e6\u04e7"+ + "\u0007\u0003\u0000\u0000\u04e7\u04e8\u0007\u0004\u0000\u0000\u04e8\u04e9"+ + "\u0007\n\u0000\u0000\u04e9\u04ea\u0007\u000b\u0000\u0000\u04ea\u0080\u0001"+ + "\u0000\u0000\u0000\u04eb\u04ec\u0007\u0012\u0000\u0000\u04ec\u04ed\u0007"+ + "\r\u0000\u0000\u04ed\u04ee\u0007\u0006\u0000\u0000\u04ee\u04ef\u0007\u001a"+ + "\u0000\u0000\u04ef\u0082\u0001\u0000\u0000\u0000\u04f0\u04f1\u0007\u0012"+ + "\u0000\u0000\u04f1\u04f2\u0007\u0006\u0000\u0000\u04f2\u04f3\u0007\u0007"+ + "\u0000\u0000\u04f3\u04f4\u0007\u0000\u0000\u0000\u04f4\u04f5\u0007\u0001"+ + "\u0000\u0000\u04f5\u0084\u0001\u0000\u0000\u0000\u04f6\u04f7\u0007\u0012"+ + "\u0000\u0000\u04f7\u04f8\u0007\u0017\u0000\u0000\u04f8\u0086\u0001\u0000"+ + "\u0000\u0000\u04f9\u04fa\u0007\u0012\u0000\u0000\u04fa\u04fb\u0007\u0017"+ + "\u0000\u0000\u04fb\u04fc\u0007\u0006\u0000\u0000\u04fc\u04fd\u0007\u0004"+ + "\u0000\u0000\u04fd\u04fe\u0005_\u0000\u0000\u04fe\u04ff\u0007\u0003\u0000"+ + "\u0000\u04ff\u0500\u0007\u0004\u0000\u0000\u0500\u0501\u0007\u000b\u0000"+ + "\u0000\u0501\u0502\u0007\u0018\u0000\u0000\u0502\u0503\u0007\u0006\u0000"+ + "\u0000\u0503\u0504\u0007\u001a\u0000\u0000\u0504\u0088\u0001\u0000\u0000"+ + "\u0000\u0505\u0506\u0007\u0012\u0000\u0000\u0506\u0507\u0007\u0017\u0000"+ + "\u0000\u0507\u0508\u0007\u0006\u0000\u0000\u0508\u0509\u0007\u0004\u0000"+ + "\u0000\u0509\u050a\u0007\u0005\u0000\u0000\u050a\u008a\u0001\u0000\u0000"+ + "\u0000\u050b\u050c\u0007\u0015\u0000\u0000\u050c\u050d\u0007\n\u0000\u0000"+ + "\u050d\u050e\u0007\u0003\u0000\u0000\u050e\u050f\u0007\u0003\u0000\u0000"+ + "\u050f\u008c\u0001\u0000\u0000\u0000\u0510\u0511\u0007\u0015\u0000\u0000"+ + "\u0511\u0512\u0007\n\u0000\u0000\u0512\u0513\u0007\u0007\u0000\u0000\u0513"+ + "\u0514\u0007\u0016\u0000\u0000\u0514\u0515\u0007\u0000\u0000\u0000\u0515"+ + "\u0516\u0007\u000b\u0000\u0000\u0516\u0517\u0007\n\u0000\u0000\u0517\u0518"+ + "\u0007\u0003\u0000\u0000\u0518\u0519\u0007\u0000\u0000\u0000\u0519\u051a"+ + "\u0007\u0006\u0000\u0000\u051a\u051b\u0007\u0017\u0000\u0000\u051b\u008e"+ + "\u0001\u0000\u0000\u0000\u051c\u051d\u0007\u0015\u0000\u0000\u051d\u051e"+ + "\u0007\n\u0000\u0000\u051e\u051f\u0007\u0005\u0000\u0000\u051f\u0520\u0007"+ + "\u0004\u0000\u0000\u0520\u0090\u0001\u0000\u0000\u0000\u0521\u0522\u0007"+ + "\u0015\u0000\u0000\u0522\u0523\u0007\n\u0000\u0000\u0523\u0524\u0007\u0005"+ + "\u0000\u0000\u0524\u0525\u0007\u0006\u0000\u0000\u0525\u0092\u0001\u0000"+ + "\u0000\u0000\u0526\u0527\u0007\u0015\u0000\u0000\u0527\u0528\u0007\u0004"+ + "\u0000\u0000\u0528\u0529\u0007\u0000\u0000\u0000\u0529\u052a\u0007\u0003"+ + "\u0000\u0000\u052a\u0094\u0001\u0000\u0000\u0000\u052b\u052c\u0007\u0015"+ + "\u0000\u0000\u052c\u052d\u0007\u0004\u0000\u0000\u052d\u052e\u0007\u0000"+ + "\u0000\u0000\u052e\u052f\u0007\u0003\u0000\u0000\u052f\u0530\u0007\u0000"+ + "\u0000\u0000\u0530\u0531\u0007\u000b\u0000\u0000\u0531\u0532\u0007\u0018"+ + "\u0000\u0000\u0532\u0096\u0001\u0000\u0000\u0000\u0533\u0534\u0007\u0015"+ + "\u0000\u0000\u0534\u0535\u0007\u001a\u0000\u0000\u0535\u0536\u0007\n\u0000"+ + "\u0000\u0536\u0537\u0007\u0007\u0000\u0000\u0537\u0098\u0001\u0000\u0000"+ + "\u0000\u0538\u0539\u0007\u0015\u0000\u0000\u0539\u053a\u0007\u001a\u0000"+ + "\u0000\u053a\u053b\u0007\n\u0000\u0000\u053b\u053c\u0007\u0007\u0000\u0000"+ + "\u053c\u053d\u0005_\u0000\u0000\u053d\u053e\u0007\u0003\u0000\u0000\u053e"+ + "\u053f\u0007\u0004\u0000\u0000\u053f\u0540\u0007\u000b\u0000\u0000\u0540"+ + "\u0541\u0007\u0018\u0000\u0000\u0541\u0542\u0007\u0006\u0000\u0000\u0542"+ + "\u0543\u0007\u001a\u0000\u0000\u0543\u009a\u0001\u0000\u0000\u0000\u0544"+ + "\u0545\u0007\u0015\u0000\u0000\u0545\u0546\u0007\u001a\u0000\u0000\u0546"+ + "\u0547\u0007\n\u0000\u0000\u0547\u0548\u0007\u0007\u0000\u0000\u0548\u0549"+ + "\u0007\n\u0000\u0000\u0549\u054a\u0007\u0015\u0000\u0000\u054a\u054b\u0007"+ + "\u0006\u0000\u0000\u054b\u054c\u0007\u0004\u0000\u0000\u054c\u054d\u0007"+ + "\u0007\u0000\u0000\u054d\u054e\u0005_\u0000\u0000\u054e\u054f\u0007\u0003"+ + "\u0000\u0000\u054f\u0550\u0007\u0004\u0000\u0000\u0550\u0551\u0007\u000b"+ + "\u0000\u0000\u0551\u0552\u0007\u0018\u0000\u0000\u0552\u0553\u0007\u0006"+ + "\u0000\u0000\u0553\u0554\u0007\u001a\u0000\u0000\u0554\u009c\u0001\u0000"+ + "\u0000\u0000\u0555\u0556\u0007\u0015\u0000\u0000\u0556\u0557\u0007\u001a"+ + "\u0000\u0000\u0557\u0558\u0007\n\u0000\u0000\u0558\u0559\u0007\u0007\u0000"+ + "\u0000\u0559\u055a\u0007\n\u0000\u0000\u055a\u055b\u0007\u0015\u0000\u0000"+ + "\u055b\u055c\u0007\u0006\u0000\u0000\u055c\u055d\u0007\u0004\u0000\u0000"+ + "\u055d\u055e\u0007\u0007\u0000\u0000\u055e\u055f\u0007\u0000\u0000\u0000"+ + "\u055f\u0560\u0007\u0005\u0000\u0000\u0560\u0561\u0007\u0006\u0000\u0000"+ + "\u0561\u0562\u0007\u0000\u0000\u0000\u0562\u0563\u0007\u0015\u0000\u0000"+ + "\u0563\u0564\u0007\u0005\u0000\u0000\u0564\u009e\u0001\u0000\u0000\u0000"+ + "\u0565\u0566\u0007\u0015\u0000\u0000\u0566\u0567\u0007\u0003\u0000\u0000"+ + "\u0567\u0568\u0007\r\u0000\u0000\u0568\u0569\u0007\u0005\u0000\u0000\u0569"+ + "\u056a\u0007\u0004\u0000\u0000\u056a\u00a0\u0001\u0000\u0000\u0000\u056b"+ + "\u056c\u0007\u0015\u0000\u0000\u056c\u056d\u0007\r\u0000\u0000\u056d\u056e"+ + "\u0007\n\u0000\u0000\u056e\u056f\u0007\u0003\u0000\u0000\u056f\u0570\u0007"+ + "\u0004\u0000\u0000\u0570\u0571\u0007\u0005\u0000\u0000\u0571\u0572\u0007"+ + "\u0015\u0000\u0000\u0572\u0573\u0007\u0004\u0000\u0000\u0573\u00a2\u0001"+ + "\u0000\u0000\u0000\u0574\u0575\u0007\u0015\u0000\u0000\u0575\u0576\u0007"+ + "\r\u0000\u0000\u0576\u0577\u0007\u0003\u0000\u0000\u0577\u0578\u0007\u0003"+ + "\u0000\u0000\u0578\u0579\u0007\u0004\u0000\u0000\u0579\u057a\u0007\u0015"+ + "\u0000\u0000\u057a\u057b\u0007\u0006\u0000\u0000\u057b\u057c\u0005_\u0000"+ + "\u0000\u057c\u057d\u0007\u0003\u0000\u0000\u057d\u057e\u0007\u0000\u0000"+ + "\u0000\u057e\u057f\u0007\u0005\u0000\u0000\u057f\u0580\u0007\u0006\u0000"+ + "\u0000\u0580\u00a4\u0001\u0000\u0000\u0000\u0581\u0582\u0007\u0015\u0000"+ + "\u0000\u0582\u0583\u0007\r\u0000\u0000\u0583\u0584\u0007\u0001\u0000\u0000"+ + "\u0584\u0585\u0007\u0001\u0000\u0000\u0585\u0586\u0007\u0000\u0000\u0000"+ + "\u0586\u0587\u0007\u0006\u0000\u0000\u0587\u00a6\u0001\u0000\u0000\u0000"+ + "\u0588\u0589\u0007\u0015\u0000\u0000\u0589\u058a\u0007\r\u0000\u0000\u058a"+ + "\u058b\u0007\u0002\u0000\u0000\u058b\u058c\u0007\u0017\u0000\u0000\u058c"+ + "\u00a8\u0001\u0000\u0000\u0000\u058d\u058e\u0007\u0015\u0000\u0000\u058e"+ + "\u058f\u0007\r\u0000\u0000\u058f\u0590\u0007\u0005\u0000\u0000\u0590\u00aa"+ + "\u0001\u0000\u0000\u0000\u0591\u0592\u0007\u0015\u0000\u0000\u0592\u0593"+ + "\u0007\r\u0000\u0000\u0593\u0594\u0007\u0005\u0000\u0000\u0594\u0595\u0007"+ + "\u001a\u0000\u0000\u0595\u00ac\u0001\u0000\u0000\u0000\u0596\u0597\u0007"+ + "\u0015\u0000\u0000\u0597\u0598\u0007\r\u0000\u0000\u0598\u0599\u0007\u0006"+ + "\u0000\u0000\u0599\u00ae\u0001\u0000\u0000\u0000\u059a\u059b\u0007\u0015"+ + "\u0000\u0000\u059b\u059c\u0007\r\u0000\u0000\u059c\u059d\u0007\b\u0000"+ + "\u0000\u059d\u059e\u0007\u000b\u0000\u0000\u059e\u059f\u0007\u0006\u0000"+ + "\u0000\u059f\u00b0\u0001\u0000\u0000\u0000\u05a0\u05a1\u0007\u0015\u0000"+ + "\u0000\u05a1\u05a2\u0007\u0007\u0000\u0000\u05a2\u05a3\u0007\u0004\u0000"+ + "\u0000\u05a3\u05a4\u0007\n\u0000\u0000\u05a4\u05a5\u0007\u0006\u0000\u0000"+ + "\u05a5\u05a6\u0007\u0004\u0000\u0000\u05a6\u00b2\u0001\u0000\u0000\u0000"+ + "\u05a7\u05a8\u0007\u0015\u0000\u0000\u05a8\u05a9\u0007\b\u0000\u0000\u05a9"+ + "\u05aa\u0007\u0007\u0000\u0000\u05aa\u05ab\u0007\u0007\u0000\u0000\u05ab"+ + "\u05ac\u0007\u0004\u0000\u0000\u05ac\u05ad\u0007\u000b\u0000\u0000\u05ad"+ + "\u05ae\u0007\u0006\u0000\u0000\u05ae\u05af\u0005_\u0000\u0000\u05af\u05b0"+ + "\u0007\u0016\u0000\u0000\u05b0\u05b1\u0007\n\u0000\u0000\u05b1\u05b2\u0007"+ + "\u0006\u0000\u0000\u05b2\u05b3\u0007\u0004\u0000\u0000\u05b3\u00b4\u0001"+ + "\u0000\u0000\u0000\u05b4\u05b5\u0007\u0015\u0000\u0000\u05b5\u05b6\u0007"+ + "\b\u0000\u0000\u05b6\u05b7\u0007\u0007\u0000\u0000\u05b7\u05b8\u0007\u0007"+ + "\u0000\u0000\u05b8\u05b9\u0007\u0004\u0000\u0000\u05b9\u05ba\u0007\u000b"+ + "\u0000\u0000\u05ba\u05bb\u0007\u0006\u0000\u0000\u05bb\u05bc\u0005_\u0000"+ + "\u0000\u05bc\u05bd"; + private static final String _serializedATNSegment1 = + "\u0007\u0018\u0000\u0000\u05bd\u05be\u0007\u0007\u0000\u0000\u05be\u05bf"+ + "\u0007\n\u0000\u0000\u05bf\u05c0\u0007\u0002\u0000\u0000\u05c0\u05c1\u0007"+ + "\u001a\u0000\u0000\u05c1\u00b6\u0001\u0000\u0000\u0000\u05c2\u05c3\u0007"+ + "\u0015\u0000\u0000\u05c3\u05c4\u0007\b\u0000\u0000\u05c4\u05c5\u0007\u0007"+ + "\u0000\u0000\u05c5\u05c6\u0007\u0007\u0000\u0000\u05c6\u05c7\u0007\u0004"+ + "\u0000\u0000\u05c7\u05c8\u0007\u000b\u0000\u0000\u05c8\u05c9\u0007\u0006"+ + "\u0000\u0000\u05c9\u05ca\u0005_\u0000\u0000\u05ca\u05cb\u0007\u0002\u0000"+ + "\u0000\u05cb\u05cc\u0007\u0007\u0000\u0000\u05cc\u05cd\u0007\r\u0000\u0000"+ + "\u05cd\u05ce\u0007\u0002\u0000\u0000\u05ce\u05cf\u0007\u0004\u0000\u0000"+ + "\u05cf\u05d0\u0007\u0007\u0000\u0000\u05d0\u05d1\u0007\u0006\u0000\u0000"+ + "\u05d1\u05d2\u0007\u0017\u0000\u0000\u05d2\u05d3\u0005_\u0000\u0000\u05d3"+ + "\u05d4\u0007\u0018\u0000\u0000\u05d4\u05d5\u0007\u0007\u0000\u0000\u05d5"+ + "\u05d6\u0007\n\u0000\u0000\u05d6\u05d7\u0007\u0002\u0000\u0000\u05d7\u05d8"+ + "\u0007\u001a\u0000\u0000\u05d8\u00b8\u0001\u0000\u0000\u0000\u05d9\u05da"+ + "\u0007\u0015\u0000\u0000\u05da\u05db\u0007\b\u0000\u0000\u05db\u05dc\u0007"+ + "\u0007\u0000\u0000\u05dc\u05dd\u0007\u0007\u0000\u0000\u05dd\u05de\u0007"+ + "\u0004\u0000\u0000\u05de\u05df\u0007\u000b\u0000\u0000\u05df\u05e0\u0007"+ + "\u0006\u0000\u0000\u05e0\u05e1\u0005_\u0000\u0000\u05e1\u05e2\u0007\u0005"+ + "\u0000\u0000\u05e2\u05e3\u0007\u0015\u0000\u0000\u05e3\u05e4\u0007\u001a"+ + "\u0000\u0000\u05e4\u05e5\u0007\u0004\u0000\u0000\u05e5\u05e6\u0007\u0001"+ + "\u0000\u0000\u05e6\u05e7\u0007\n\u0000\u0000\u05e7\u00ba\u0001\u0000\u0000"+ + "\u0000\u05e8\u05e9\u0007\u0015\u0000\u0000\u05e9\u05ea\u0007\b\u0000\u0000"+ + "\u05ea\u05eb\u0007\u0007\u0000\u0000\u05eb\u05ec\u0007\u0007\u0000\u0000"+ + "\u05ec\u05ed\u0007\u0004\u0000\u0000\u05ed\u05ee\u0007\u000b\u0000\u0000"+ + "\u05ee\u05ef\u0007\u0006\u0000\u0000\u05ef\u05f0\u0005_\u0000\u0000\u05f0"+ + "\u05f1\u0007\u0006\u0000\u0000\u05f1\u05f2\u0007\u0000\u0000\u0000\u05f2"+ + "\u05f3\u0007\u0001\u0000\u0000\u05f3\u05f4\u0007\u0004\u0000\u0000\u05f4"+ + "\u00bc\u0001\u0000\u0000\u0000\u05f5\u05f6\u0007\u0015\u0000\u0000\u05f6"+ + "\u05f7\u0007\b\u0000\u0000\u05f7\u05f8\u0007\u0007\u0000\u0000\u05f8\u05f9"+ + "\u0007\u0007\u0000\u0000\u05f9\u05fa\u0007\u0004\u0000\u0000\u05fa\u05fb"+ + "\u0007\u000b\u0000\u0000\u05fb\u05fc\u0007\u0006\u0000\u0000\u05fc\u05fd"+ + "\u0005_\u0000\u0000\u05fd\u05fe\u0007\u0006\u0000\u0000\u05fe\u05ff\u0007"+ + "\u0000\u0000\u0000\u05ff\u0600\u0007\u0001\u0000\u0000\u0600\u0601\u0007"+ + "\u0004\u0000\u0000\u0601\u0602\u0007\u0005\u0000\u0000\u0602\u0603\u0007"+ + "\u0006\u0000\u0000\u0603\u0604\u0007\n\u0000\u0000\u0604\u0605\u0007\u0001"+ + "\u0000\u0000\u0605\u0606\u0007\u0002\u0000\u0000\u0606\u00be\u0001\u0000"+ + "\u0000\u0000\u0607\u0608\u0007\u0016\u0000\u0000\u0608\u0609\u0007\n\u0000"+ + "\u0000\u0609\u060a\u0007\u0006\u0000\u0000\u060a\u060b\u0007\u0004\u0000"+ + "\u0000\u060b\u00c0\u0001\u0000\u0000\u0000\u060c\u060d\u0007\u0016\u0000"+ + "\u0000\u060d\u060e\u0007\n\u0000\u0000\u060e\u060f\u0007\u0006\u0000\u0000"+ + "\u060f\u0610\u0007\u0004\u0000\u0000\u0610\u0611\u0007\u0006\u0000\u0000"+ + "\u0611\u0612\u0007\u0000\u0000\u0000\u0612\u0613\u0007\u0001\u0000\u0000"+ + "\u0613\u0614\u0007\u0004\u0000\u0000\u0614\u00c2\u0001\u0000\u0000\u0000"+ + "\u0615\u0616\u0007\u0016\u0000\u0000\u0616\u0617\u0007\n\u0000\u0000\u0617"+ + "\u0618\u0007\u0017\u0000\u0000\u0618\u00c4\u0001\u0000\u0000\u0000\u0619"+ + "\u061a\u0007\u0016\u0000\u0000\u061a\u061b\u0007\u0004\u0000\u0000\u061b"+ + "\u061c\u0007\u0015\u0000\u0000\u061c\u00c6\u0001\u0000\u0000\u0000\u061d"+ + "\u061e\u0007\u0016\u0000\u0000\u061e\u061f\u0007\u0004\u0000\u0000\u061f"+ + "\u0620\u0007\u0015\u0000\u0000\u0620\u0621\u0007\u0000\u0000\u0000\u0621"+ + "\u0622\u0007\u0001\u0000\u0000\u0622\u0623\u0007\n\u0000\u0000\u0623\u0624"+ + "\u0007\u0003\u0000\u0000\u0624\u00c8\u0001\u0000\u0000\u0000\u0625\u0626"+ + "\u0007\u0016\u0000\u0000\u0626\u0627\u0007\u0004\u0000\u0000\u0627\u0628"+ + "\u0007\u0018\u0000\u0000\u0628\u0629\u0007\u0007\u0000\u0000\u0629\u062a"+ + "\u0007\u0004\u0000\u0000\u062a\u062b\u0007\u0004\u0000\u0000\u062b\u062c"+ + "\u0007\u0005\u0000\u0000\u062c\u00ca\u0001\u0000\u0000\u0000\u062d\u062e"+ + "\u0007\u0016\u0000\u0000\u062e\u062f\u0007\u0004\u0000\u0000\u062f\u0630"+ + "\u0007\u0003\u0000\u0000\u0630\u0631\u0007\u0004\u0000\u0000\u0631\u0632"+ + "\u0007\u0006\u0000\u0000\u0632\u0633\u0007\u0004\u0000\u0000\u0633\u00cc"+ + "\u0001\u0000\u0000\u0000\u0634\u0635\u0007\u0016\u0000\u0000\u0635\u0636"+ + "\u0007\u0004\u0000\u0000\u0636\u0637\u0007\u0005\u0000\u0000\u0637\u0638"+ + "\u0007\u0015\u0000\u0000\u0638\u00ce\u0001\u0000\u0000\u0000\u0639\u063a"+ + "\u0007\u0016\u0000\u0000\u063a\u063b\u0007\u0004\u0000\u0000\u063b\u063c"+ + "\u0007\u0005\u0000\u0000\u063c\u063d\u0007\u0015\u0000\u0000\u063d\u063e"+ + "\u0007\u0004\u0000\u0000\u063e\u063f\u0007\u000b\u0000\u0000\u063f\u0640"+ + "\u0007\u0016\u0000\u0000\u0640\u0641\u0007\u0000\u0000\u0000\u0641\u0642"+ + "\u0007\u000b\u0000\u0000\u0642\u0643\u0007\u0018\u0000\u0000\u0643\u00d0"+ + "\u0001\u0000\u0000\u0000\u0644\u0645\u0007\u0016\u0000\u0000\u0645\u0646"+ + "\u0007\u0004\u0000\u0000\u0646\u0647\u0007\u0006\u0000\u0000\u0647\u0648"+ + "\u0007\n\u0000\u0000\u0648\u0649\u0007\u0015\u0000\u0000\u0649\u064a\u0007"+ + "\u001a\u0000\u0000\u064a\u00d2\u0001\u0000\u0000\u0000\u064b\u064c\u0007"+ + "\u0016\u0000\u0000\u064c\u064d\u0007\u0000\u0000\u0000\u064d\u064e\u0007"+ + "\u0005\u0000\u0000\u064e\u064f\u0007\u0006\u0000\u0000\u064f\u0650\u0007"+ + "\u0000\u0000\u0000\u0650\u0651\u0007\u000b\u0000\u0000\u0651\u0652\u0007"+ + "\u0015\u0000\u0000\u0652\u0653\u0007\u0006\u0000\u0000\u0653\u00d4\u0001"+ + "\u0000\u0000\u0000\u0654\u0655\u0007\u0016\u0000\u0000\u0655\u0656\u0007"+ + "\r\u0000\u0000\u0656\u0657\u0007\b\u0000\u0000\u0657\u0658\u0007\u0012"+ + "\u0000\u0000\u0658\u0659\u0007\u0003\u0000\u0000\u0659\u065a\u0007\u0004"+ + "\u0000\u0000\u065a\u00d6\u0001\u0000\u0000\u0000\u065b\u065c\u0007\u0016"+ + "\u0000\u0000\u065c\u065d\u0007\u0007\u0000\u0000\u065d\u065e\u0007\r\u0000"+ + "\u0000\u065e\u065f\u0007\u0002\u0000\u0000\u065f\u00d8\u0001\u0000\u0000"+ + "\u0000\u0660\u0661\u0007\u0016\u0000\u0000\u0661\u0662\u0007\b\u0000\u0000"+ + "\u0662\u0663\u0007\u0007\u0000\u0000\u0663\u0664\u0007\n\u0000\u0000\u0664"+ + "\u0665\u0007\u0006\u0000\u0000\u0665\u0666\u0007\u0000\u0000\u0000\u0666"+ + "\u0667\u0007\r\u0000\u0000\u0667\u0668\u0007\u000b\u0000\u0000\u0668\u00da"+ + "\u0001\u0000\u0000\u0000\u0669\u066a\u0007\u0016\u0000\u0000\u066a\u066b"+ + "\u0007\b\u0000\u0000\u066b\u066c\u0007\u0007\u0000\u0000\u066c\u066d\u0007"+ + "\n\u0000\u0000\u066d\u066e\u0007\u0006\u0000\u0000\u066e\u066f\u0007\u0000"+ + "\u0000\u0000\u066f\u0670\u0007\r\u0000\u0000\u0670\u0671\u0007\u000b\u0000"+ + "\u0000\u0671\u0672\u0005_\u0000\u0000\u0672\u0673\u0007\u0012\u0000\u0000"+ + "\u0673\u0674\u0007\u0004\u0000\u0000\u0674\u0675\u0007\u0006\u0000\u0000"+ + "\u0675\u0676\u0007\u000e\u0000\u0000\u0676\u0677\u0007\u0004\u0000\u0000"+ + "\u0677\u0678\u0007\u0004\u0000\u0000\u0678\u0679\u0007\u000b\u0000\u0000"+ + "\u0679\u00dc\u0001\u0000\u0000\u0000\u067a\u067b\u0007\u0004\u0000\u0000"+ + "\u067b\u067c\u0007\u0003\u0000\u0000\u067c\u067d\u0007\u0004\u0000\u0000"+ + "\u067d\u067e\u0007\u0001\u0000\u0000\u067e\u067f\u0007\u0004\u0000\u0000"+ + "\u067f\u0680\u0007\u000b\u0000\u0000\u0680\u0681\u0007\u0006\u0000\u0000"+ + "\u0681\u0682\u0005_\u0000\u0000\u0682\u0683\u0007\u0000\u0000\u0000\u0683"+ + "\u0684\u0007\u0016\u0000\u0000\u0684\u00de\u0001\u0000\u0000\u0000\u0685"+ + "\u0686\u0007\u0004\u0000\u0000\u0686\u0687\u0007\u0003\u0000\u0000\u0687"+ + "\u0688\u0007\u0005\u0000\u0000\u0688\u0689\u0007\u0004\u0000\u0000\u0689"+ + "\u00e0\u0001\u0000\u0000\u0000\u068a\u068b\u0007\u0004\u0000\u0000\u068b"+ + "\u068c\u0007\u000b\u0000\u0000\u068c\u068d\u0007\u0016\u0000\u0000\u068d"+ + "\u00e2\u0001\u0000\u0000\u0000\u068e\u068f\u0007\u0004\u0000\u0000\u068f"+ + "\u0690\u0007\u0013\u0000\u0000\u0690\u0691\u0007\u0015\u0000\u0000\u0691"+ + "\u0692\u0007\u0004\u0000\u0000\u0692\u0693\u0007\u0002\u0000\u0000\u0693"+ + "\u0694\u0007\u0006\u0000\u0000\u0694\u00e4\u0001\u0000\u0000\u0000\u0695"+ + "\u0696\u0007\u0004\u0000\u0000\u0696\u0697\u0007\u0013\u0000\u0000\u0697"+ + "\u0698\u0007\u0000\u0000\u0000\u0698\u0699\u0007\u0005\u0000\u0000\u0699"+ + "\u069a\u0007\u0006\u0000\u0000\u069a\u069b\u0007\u0005\u0000\u0000\u069b"+ + "\u00e6\u0001\u0000\u0000\u0000\u069c\u069d\u0007\u0004\u0000\u0000\u069d"+ + "\u069e\u0007\u0013\u0000\u0000\u069e\u069f\u0007\u0002\u0000\u0000\u069f"+ + "\u00e8\u0001\u0000\u0000\u0000\u06a0\u06a1\u0007\t\u0000\u0000\u06a1\u06a2"+ + "\u0007\u0000\u0000\u0000\u06a2\u06a3\u0007\u0003\u0000\u0000\u06a3\u06a4"+ + "\u0007\u0006\u0000\u0000\u06a4\u06a5\u0007\u0004\u0000\u0000\u06a5\u06a6"+ + "\u0007\u0007\u0000\u0000\u06a6\u00ea\u0001\u0000\u0000\u0000\u06a7\u06a8"+ + "\u0007\t\u0000\u0000\u06a8\u06a9\u0007\u0000\u0000\u0000\u06a9\u06aa\u0007"+ + "\u000b\u0000\u0000\u06aa\u06ab\u0007\u0000\u0000\u0000\u06ab\u06ac\u0007"+ + "\u0005\u0000\u0000\u06ac\u06ad\u0007\u001a\u0000\u0000\u06ad\u00ec\u0001"+ + "\u0000\u0000\u0000\u06ae\u06af\u0007\t\u0000\u0000\u06af\u06b0\u0007\u0003"+ + "\u0000\u0000\u06b0\u06b1\u0007\r\u0000\u0000\u06b1\u06b2\u0007\n\u0000"+ + "\u0000\u06b2\u06b3\u0007\u0006\u0000\u0000\u06b3\u00ee\u0001\u0000\u0000"+ + "\u0000\u06b4\u06b5\u0007\t\u0000\u0000\u06b5\u06b6\u0007\u0003\u0000\u0000"+ + "\u06b6\u06b7\u0007\r\u0000\u0000\u06b7\u06b8\u0007\n\u0000\u0000\u06b8"+ + "\u06b9\u0007\u0006\u0000\u0000\u06b9\u06ba\u00051\u0000\u0000\u06ba\u06bb"+ + "\u00056\u0000\u0000\u06bb\u00f0\u0001\u0000\u0000\u0000\u06bc\u06bd\u0007"+ + "\t\u0000\u0000\u06bd\u06be\u0007\u0003\u0000\u0000\u06be\u06bf\u0007\r"+ + "\u0000\u0000\u06bf\u06c0\u0007\n\u0000\u0000\u06c0\u06c1\u0007\u0006\u0000"+ + "\u0000\u06c1\u06c2\u00053\u0000\u0000\u06c2\u06c3\u00052\u0000\u0000\u06c3"+ + "\u00f2\u0001\u0000\u0000\u0000\u06c4\u06c5\u0007\t\u0000\u0000\u06c5\u06c6"+ + "\u0007\u0003\u0000\u0000\u06c6\u06c7\u0007\r\u0000\u0000\u06c7\u06c8\u0007"+ + "\n\u0000\u0000\u06c8\u06c9\u0007\u0006\u0000\u0000\u06c9\u06ca\u00056"+ + "\u0000\u0000\u06ca\u06cb\u00054\u0000\u0000\u06cb\u00f4\u0001\u0000\u0000"+ + "\u0000\u06cc\u06cd\u0007\t\u0000\u0000\u06cd\u06ce\u0007\u0003\u0000\u0000"+ + "\u06ce\u06cf\u0007\r\u0000\u0000\u06cf\u06d0\u0007\n\u0000\u0000\u06d0"+ + "\u06d1\u0007\u0006\u0000\u0000\u06d1\u06d2\u00051\u0000\u0000\u06d2\u06d3"+ + "\u00052\u0000\u0000\u06d3\u06d4\u00058\u0000\u0000\u06d4\u00f6\u0001\u0000"+ + "\u0000\u0000\u06d5\u06d6\u0007\t\u0000\u0000\u06d6\u06d7\u0007\u0003\u0000"+ + "\u0000\u06d7\u06d8\u0007\r\u0000\u0000\u06d8\u06d9\u0007\n\u0000\u0000"+ + "\u06d9\u06da\u0007\u0006\u0000\u0000\u06da\u06db\u00052\u0000\u0000\u06db"+ + "\u06dc\u00055\u0000\u0000\u06dc\u06dd\u00056\u0000\u0000\u06dd\u00f8\u0001"+ + "\u0000\u0000\u0000\u06de\u06df\u0007\t\u0000\u0000\u06df\u06e0\u0007\u0003"+ + "\u0000\u0000\u06e0\u06e1\u0007\r\u0000\u0000\u06e1\u06e2\u0007\r\u0000"+ + "\u0000\u06e2\u06e3\u0007\u0007\u0000\u0000\u06e3\u00fa\u0001\u0000\u0000"+ + "\u0000\u06e4\u06e5\u0007\t\u0000\u0000\u06e5\u06e6\u0007\r\u0000\u0000"+ + "\u06e6\u06e7\u0007\u0007\u0000\u0000\u06e7\u00fc\u0001\u0000\u0000\u0000"+ + "\u06e8\u06e9\u0007\t\u0000\u0000\u06e9\u06ea\u0007\u0007\u0000\u0000\u06ea"+ + "\u06eb\u0007\r\u0000\u0000\u06eb\u06ec\u0007\u0001\u0000\u0000\u06ec\u00fe"+ + "\u0001\u0000\u0000\u0000\u06ed\u06ee\u0007\u0018\u0000\u0000\u06ee\u06ef"+ + "\u0007\u0007\u0000\u0000\u06ef\u06f0\u0007\r\u0000\u0000\u06f0\u06f1\u0007"+ + "\b\u0000\u0000\u06f1\u06f2\u0007\u0002\u0000\u0000\u06f2\u0100\u0001\u0000"+ + "\u0000\u0000\u06f3\u06f4\u0007\u001a\u0000\u0000\u06f4\u06f5\u0007\n\u0000"+ + "\u0000\u06f5\u06f6\u0007\u0019\u0000\u0000\u06f6\u06f7\u0007\u0000\u0000"+ + "\u0000\u06f7\u06f8\u0007\u000b\u0000\u0000\u06f8\u06f9\u0007\u0018\u0000"+ + "\u0000\u06f9\u0102\u0001\u0000\u0000\u0000\u06fa\u06fb\u0007\u001a\u0000"+ + "\u0000\u06fb\u06fc\u0007\r\u0000\u0000\u06fc\u06fd\u0007\u0001\u0000\u0000"+ + "\u06fd\u06fe\u0007\u0004\u0000\u0000\u06fe\u06ff\u0005_\u0000\u0000\u06ff"+ + "\u0700\u0007\u0018\u0000\u0000\u0700\u0701\u0007\u0007\u0000\u0000\u0701"+ + "\u0702\u0007\n\u0000\u0000\u0702\u0703\u0007\u0002\u0000\u0000\u0703\u0704"+ + "\u0007\u001a\u0000\u0000\u0704\u0104\u0001\u0000\u0000\u0000\u0705\u0706"+ + "\u0007\u001a\u0000\u0000\u0706\u0707\u0007\r\u0000\u0000\u0707\u0708\u0007"+ + "\u0001\u0000\u0000\u0708\u0709\u0007\u0004\u0000\u0000\u0709\u070a\u0005"+ + "_\u0000\u0000\u070a\u070b\u0007\u0002\u0000\u0000\u070b\u070c\u0007\u0007"+ + "\u0000\u0000\u070c\u070d\u0007\r\u0000\u0000\u070d\u070e\u0007\u0002\u0000"+ + "\u0000\u070e\u070f\u0007\u0004\u0000\u0000\u070f\u0710\u0007\u0007\u0000"+ + "\u0000\u0710\u0711\u0007\u0006\u0000\u0000\u0711\u0712\u0007\u0017\u0000"+ + "\u0000\u0712\u0713\u0005_\u0000\u0000\u0713\u0714\u0007\u0018\u0000\u0000"+ + "\u0714\u0715\u0007\u0007\u0000\u0000\u0715\u0716\u0007\n\u0000\u0000\u0716"+ + "\u0717\u0007\u0002\u0000\u0000\u0717\u0718\u0007\u001a\u0000\u0000\u0718"+ + "\u0106\u0001\u0000\u0000\u0000\u0719\u071a\u0007\u001a\u0000\u0000\u071a"+ + "\u071b\u0007\r\u0000\u0000\u071b\u071c\u0007\u0001\u0000\u0000\u071c\u071d"+ + "\u0007\u0004\u0000\u0000\u071d\u071e\u0005_\u0000\u0000\u071e\u071f\u0007"+ + "\u0005\u0000\u0000\u071f\u0720\u0007\u0015\u0000\u0000\u0720\u0721\u0007"+ + "\u001a\u0000\u0000\u0721\u0722\u0007\u0004\u0000\u0000\u0722\u0723\u0007"+ + "\u0001\u0000\u0000\u0723\u0724\u0007\n\u0000\u0000\u0724\u0108\u0001\u0000"+ + "\u0000\u0000\u0725\u0726\u0007\u001a\u0000\u0000\u0726\u0727\u0007\r\u0000"+ + "\u0000\u0727\u0728\u0007\b\u0000\u0000\u0728\u0729\u0007\u0007\u0000\u0000"+ + "\u0729\u010a\u0001\u0000\u0000\u0000\u072a\u072b\u0007\u0000\u0000\u0000"+ + "\u072b\u072c\u0007\t\u0000\u0000\u072c\u010c\u0001\u0000\u0000\u0000\u072d"+ + "\u072e\u0007\u0000\u0000\u0000\u072e\u072f\u0007\u000b\u0000\u0000\u072f"+ + "\u010e\u0001\u0000\u0000\u0000\u0730\u0731\u0007\u0000\u0000\u0000\u0731"+ + "\u0732\u0007\u000b\u0000\u0000\u0732\u0733\u0007\u0005\u0000\u0000\u0733"+ + "\u0734\u0007\u0004\u0000\u0000\u0734\u0735\u0007\u0007\u0000\u0000\u0735"+ + "\u0736\u0007\u0006\u0000\u0000\u0736\u0110\u0001\u0000\u0000\u0000\u0737"+ + "\u0738\u0007\u0000\u0000\u0000\u0738\u0739\u0007\u000b\u0000\u0000\u0739"+ + "\u073a\u0007\u0006\u0000\u0000\u073a\u0112\u0001\u0000\u0000\u0000\u073b"+ + "\u073c\u0007\u0000\u0000\u0000\u073c\u073d\u0007\u000b\u0000\u0000\u073d"+ + "\u073e\u0007\u0006\u0000\u0000\u073e\u073f\u0007\u0004\u0000\u0000\u073f"+ + "\u0740\u0007\u0018\u0000\u0000\u0740\u0741\u0007\u0004\u0000\u0000\u0741"+ + "\u0742\u0007\u0007\u0000\u0000\u0742\u0114\u0001\u0000\u0000\u0000\u0743"+ + "\u0744\u0007\u0000\u0000\u0000\u0744\u0745\u0007\u000b\u0000\u0000\u0745"+ + "\u0746\u0007\u0006\u0000\u0000\u0746\u0747\u00058\u0000\u0000\u0747\u0116"+ + "\u0001\u0000\u0000\u0000\u0748\u0749\u0007\u0000\u0000\u0000\u0749\u074a"+ + "\u0007\u000b\u0000\u0000\u074a\u074b\u0007\u0006\u0000\u0000\u074b\u074c"+ + "\u0007\u0004\u0000\u0000\u074c\u074d\u0007\u0018\u0000\u0000\u074d\u074e"+ + "\u0007\u0004\u0000\u0000\u074e\u074f\u0007\u0007\u0000\u0000\u074f\u0750"+ + "\u00058\u0000\u0000\u0750\u0118\u0001\u0000\u0000\u0000\u0751\u0752\u0007"+ + "\u0000\u0000\u0000\u0752\u0753\u0007\u000b\u0000\u0000\u0753\u0754\u0007"+ + "\u0006\u0000\u0000\u0754\u0755\u00051\u0000\u0000\u0755\u0756\u00056\u0000"+ + "\u0000\u0756\u011a\u0001\u0000\u0000\u0000\u0757\u0758\u0007\u0000\u0000"+ + "\u0000\u0758\u0759\u0007\u000b\u0000\u0000\u0759\u075a\u0007\u0006\u0000"+ + "\u0000\u075a\u075b\u0007\u0004\u0000\u0000\u075b\u075c\u0007\u0018\u0000"+ + "\u0000\u075c\u075d\u0007\u0004\u0000\u0000\u075d\u075e\u0007\u0007\u0000"+ + "\u0000\u075e\u075f\u00051\u0000\u0000\u075f\u0760\u00056\u0000\u0000\u0760"+ + "\u011c\u0001\u0000\u0000\u0000\u0761\u0762\u0007\u0000\u0000\u0000\u0762"+ + "\u0763\u0007\u000b\u0000\u0000\u0763\u0764\u0007\u0006\u0000\u0000\u0764"+ + "\u0765\u00053\u0000\u0000\u0765\u0766\u00052\u0000\u0000\u0766\u011e\u0001"+ + "\u0000\u0000\u0000\u0767\u0768\u0007\u0000\u0000\u0000\u0768\u0769\u0007"+ + "\u000b\u0000\u0000\u0769\u076a\u0007\u0006\u0000\u0000\u076a\u076b\u0007"+ + "\u0004\u0000\u0000\u076b\u076c\u0007\u0018\u0000\u0000\u076c\u076d\u0007"+ + "\u0004\u0000\u0000\u076d\u076e\u0007\u0007\u0000\u0000\u076e\u076f\u0005"+ + "3\u0000\u0000\u076f\u0770\u00052\u0000\u0000\u0770\u0120\u0001\u0000\u0000"+ + "\u0000\u0771\u0772\u0007\u0000\u0000\u0000\u0772\u0773\u0007\u000b\u0000"+ + "\u0000\u0773\u0774\u0007\u0006\u0000\u0000\u0774\u0775\u00056\u0000\u0000"+ + "\u0775\u0776\u00054\u0000\u0000\u0776\u0122\u0001\u0000\u0000\u0000\u0777"+ + "\u0778\u0007\u0000\u0000\u0000\u0778\u0779\u0007\u000b\u0000\u0000\u0779"+ + "\u077a\u0007\u0006\u0000\u0000\u077a\u077b\u0007\u0004\u0000\u0000\u077b"+ + "\u077c\u0007\u0018\u0000\u0000\u077c\u077d\u0007\u0004\u0000\u0000\u077d"+ + "\u077e\u0007\u0007\u0000\u0000\u077e\u077f\u00056\u0000\u0000\u077f\u0780"+ + "\u00054\u0000\u0000\u0780\u0124\u0001\u0000\u0000\u0000\u0781\u0782\u0007"+ + "\u0000\u0000\u0000\u0782\u0783\u0007\u000b\u0000\u0000\u0783\u0784\u0007"+ + "\u0006\u0000\u0000\u0784\u0785\u00051\u0000\u0000\u0785\u0786\u00052\u0000"+ + "\u0000\u0786\u0787\u00058\u0000\u0000\u0787\u0126\u0001\u0000\u0000\u0000"+ + "\u0788\u0789\u0007\u0000\u0000\u0000\u0789\u078a\u0007\u000b\u0000\u0000"+ + "\u078a\u078b\u0007\u0006\u0000\u0000\u078b\u078c\u0007\u0004\u0000\u0000"+ + "\u078c\u078d\u0007\u0018\u0000\u0000\u078d\u078e\u0007\u0004\u0000\u0000"+ + "\u078e\u078f\u0007\u0007\u0000\u0000\u078f\u0790\u00051\u0000\u0000\u0790"+ + "\u0791\u00052\u0000\u0000\u0791\u0792\u00058\u0000\u0000\u0792\u0128\u0001"+ + "\u0000\u0000\u0000\u0793\u0794\u0007\u0000\u0000\u0000\u0794\u0795\u0007"+ + "\u000b\u0000\u0000\u0795\u0796\u0007\u0006\u0000\u0000\u0796\u0797\u0005"+ + "2\u0000\u0000\u0797\u0798\u00055\u0000\u0000\u0798\u0799\u00056\u0000"+ + "\u0000\u0799\u012a\u0001\u0000\u0000\u0000\u079a\u079b\u0007\u0000\u0000"+ + "\u0000\u079b\u079c\u0007\u000b\u0000\u0000\u079c\u079d\u0007\u0006\u0000"+ + "\u0000\u079d\u079e\u0007\u0004\u0000\u0000\u079e\u079f\u0007\u0018\u0000"+ + "\u0000\u079f\u07a0\u0007\u0004\u0000\u0000\u07a0\u07a1\u0007\u0007\u0000"+ + "\u0000\u07a1\u07a2\u00052\u0000\u0000\u07a2\u07a3\u00055\u0000\u0000\u07a3"+ + "\u07a4\u00056\u0000\u0000\u07a4\u012c\u0001\u0000\u0000\u0000\u07a5\u07a6"+ + "\u0007\u0000\u0000\u0000\u07a6\u07a7\u0007\u000b\u0000\u0000\u07a7\u07a8"+ + "\u0007\u0006\u0000\u0000\u07a8\u07a9\u0007\u0004\u0000\u0000\u07a9\u07aa"+ + "\u0007\u0007\u0000\u0000\u07aa\u07ab\u0007\u0005\u0000\u0000\u07ab\u07ac"+ + "\u0007\u0004\u0000\u0000\u07ac\u07ad\u0007\u0015\u0000\u0000\u07ad\u07ae"+ + "\u0007\u0006\u0000\u0000\u07ae\u012e\u0001\u0000\u0000\u0000\u07af\u07b0"+ + "\u0007\u0000\u0000\u0000\u07b0\u07b1\u0007\u000b\u0000\u0000\u07b1\u07b2"+ + "\u0007\u0006\u0000\u0000\u07b2\u07b3\u0007\u0004\u0000\u0000\u07b3\u07b4"+ + "\u0007\u0007\u0000\u0000\u07b4\u07b5\u0007\u0019\u0000\u0000\u07b5\u07b6"+ + "\u0007\n\u0000\u0000\u07b6\u07b7\u0007\u0003\u0000\u0000\u07b7\u0130\u0001"+ + "\u0000\u0000\u0000\u07b8\u07b9\u0007\u0000\u0000\u0000\u07b9\u07ba\u0007"+ + "\u0005\u0000\u0000\u07ba\u0132\u0001\u0000\u0000\u0000\u07bb\u07bc\u0007"+ + "\u0003\u0000\u0000\u07bc\u07bd\u0007\u0004\u0000\u0000\u07bd\u07be\u0007"+ + "\n\u0000\u0000\u07be\u07bf\u0007\u0016\u0000\u0000\u07bf\u07c0\u0007\u0000"+ + "\u0000\u0000\u07c0\u07c1\u0007\u000b\u0000\u0000\u07c1\u07c2\u0007\u0018"+ + "\u0000\u0000\u07c2\u0134\u0001\u0000\u0000\u0000\u07c3\u07c4\u0007\u0003"+ + "\u0000\u0000\u07c4\u07c5\u0007\u0004\u0000\u0000\u07c5\u07c6\u0007\t\u0000"+ + "\u0000\u07c6\u07c7\u0007\u0006\u0000\u0000\u07c7\u0136\u0001\u0000\u0000"+ + "\u0000\u07c8\u07c9\u0007\u0003\u0000\u0000\u07c9\u07ca\u0007\u0004\u0000"+ + "\u0000\u07ca\u07cb\u0007\u0006\u0000\u0000\u07cb\u0138\u0001\u0000\u0000"+ + "\u0000\u07cc\u07cd\u0007\u0003\u0000\u0000\u07cd\u07ce\u0007\u0000\u0000"+ + "\u0000\u07ce\u07cf\u0007\f\u0000\u0000\u07cf\u07d0\u0007\u0004\u0000\u0000"+ + "\u07d0\u013a\u0001\u0000\u0000\u0000\u07d1\u07d2\u0007\u0003\u0000\u0000"+ + "\u07d2\u07d3\u0007\u0000\u0000\u0000\u07d3\u07d4\u0007\u0001\u0000\u0000"+ + "\u07d4\u07d5\u0007\u0000\u0000\u0000\u07d5\u07d6\u0007\u0006\u0000\u0000"+ + "\u07d6\u013c\u0001\u0000\u0000\u0000\u07d7\u07d8\u0007\u0003\u0000\u0000"+ + "\u07d8\u07d9\u0007\u0000\u0000\u0000\u07d9\u07da\u0007\u0005\u0000\u0000"+ + "\u07da\u07db\u0007\u0006\u0000\u0000\u07db\u013e\u0001\u0000\u0000\u0000"+ + "\u07dc\u07dd\u0007\u0003\u0000\u0000\u07dd\u07de\u0007\u000b\u0000\u0000"+ + "\u07de\u0140\u0001\u0000\u0000\u0000\u07df\u07e0\u0007\u0003\u0000\u0000"+ + "\u07e0\u07e1\u0007\r\u0000\u0000\u07e1\u07e2\u0007\u0015\u0000\u0000\u07e2"+ + "\u07e3\u0007\n\u0000\u0000\u07e3\u07e4\u0007\u0003\u0000\u0000\u07e4\u0142"+ + "\u0001\u0000\u0000\u0000\u07e5\u07e6\u0007\u0003\u0000\u0000\u07e6\u07e7"+ + "\u0007\r\u0000\u0000\u07e7\u07e8\u0007\u0015\u0000\u0000\u07e8\u07e9\u0007"+ + "\n\u0000\u0000\u07e9\u07ea\u0007\u0003\u0000\u0000\u07ea\u07eb\u0005_"+ + "\u0000\u0000\u07eb\u07ec\u0007\u0016\u0000\u0000\u07ec\u07ed\u0007\n\u0000"+ + "\u0000\u07ed\u07ee\u0007\u0006\u0000\u0000\u07ee\u07ef\u0007\u0004\u0000"+ + "\u0000\u07ef\u07f0\u0007\u0006\u0000\u0000\u07f0\u07f1\u0007\u0000\u0000"+ + "\u0000\u07f1\u07f2\u0007\u0001\u0000\u0000\u07f2\u07f3\u0007\u0004\u0000"+ + "\u0000\u07f3\u0144\u0001\u0000\u0000\u0000\u07f4\u07f5\u0007\u0003\u0000"+ + "\u0000\u07f5\u07f6\u0007\r\u0000\u0000\u07f6\u07f7\u0007\u0015\u0000\u0000"+ + "\u07f7\u07f8\u0007\n\u0000\u0000\u07f8\u07f9\u0007\u0003\u0000\u0000\u07f9"+ + "\u07fa\u0005_\u0000\u0000\u07fa\u07fb\u0007\u0006\u0000\u0000\u07fb\u07fc"+ + "\u0007\u0000\u0000\u0000\u07fc\u07fd\u0007\u0001\u0000\u0000\u07fd\u07fe"+ + "\u0007\u0004\u0000\u0000\u07fe\u0146\u0001\u0000\u0000\u0000\u07ff\u0800"+ + "\u0007\u0003\u0000\u0000\u0800\u0801\u0007\r\u0000\u0000\u0801\u0802\u0007"+ + "\u0015\u0000\u0000\u0802\u0803\u0007\n\u0000\u0000\u0803\u0804\u0007\u0003"+ + "\u0000\u0000\u0804\u0805\u0005_\u0000\u0000\u0805\u0806\u0007\u0006\u0000"+ + "\u0000\u0806\u0807\u0007\u0000\u0000\u0000\u0807\u0808\u0007\u0001\u0000"+ + "\u0000\u0808\u0809\u0007\u0004\u0000\u0000\u0809\u080a\u0007\u0005\u0000"+ + "\u0000\u080a\u080b\u0007\u0006\u0000\u0000\u080b\u080c\u0007\n\u0000\u0000"+ + "\u080c\u080d\u0007\u0001\u0000\u0000\u080d\u080e\u0007\u0002\u0000\u0000"+ + "\u080e\u0148\u0001\u0000\u0000\u0000\u080f\u0810\u0007\u0003\u0000\u0000"+ + "\u0810\u0811\u0007\r\u0000\u0000\u0811\u0812\u0007\u0018\u0000\u0000\u0812"+ + "\u014a\u0001\u0000\u0000\u0000\u0813\u0814\u0007\u0003\u0000\u0000\u0814"+ + "\u0815\u0007\r\u0000\u0000\u0815\u0816\u0007\u0018\u0000\u0000\u0816\u0817"+ + "\u00051\u0000\u0000\u0817\u0818\u00050\u0000\u0000\u0818\u014c\u0001\u0000"+ + "\u0000\u0000\u0819\u081a\u0007\u0003\u0000\u0000\u081a\u081b\u0007\r\u0000"+ + "\u0000\u081b\u081c\u0007\u000e\u0000\u0000\u081c\u081d\u0007\u0004\u0000"+ + "\u0000\u081d\u081e\u0007\u0007\u0000\u0000\u081e\u014e\u0001\u0000\u0000"+ + "\u0000\u081f\u0820\u0007\u0003\u0000\u0000\u0820\u0821\u0007\u0006\u0000"+ + "\u0000\u0821\u0822\u0007\u0007\u0000\u0000\u0822\u0823\u0007\u0000\u0000"+ + "\u0000\u0823\u0824\u0007\u0001\u0000\u0000\u0824\u0150\u0001\u0000\u0000"+ + "\u0000\u0825\u0826\u0007\u0001\u0000\u0000\u0826\u0827\u0007\n\u0000\u0000"+ + "\u0827\u0828\u0007\u0006\u0000\u0000\u0828\u0829\u0007\u0015\u0000\u0000"+ + "\u0829\u082a\u0007\u001a\u0000\u0000\u082a\u0152\u0001\u0000\u0000\u0000"+ + "\u082b\u082c\u0007\u0001\u0000\u0000\u082c\u082d\u0007\n\u0000\u0000\u082d"+ + "\u082e\u0007\u0013\u0000\u0000\u082e\u0154\u0001\u0000\u0000\u0000\u082f"+ + "\u0830\u0007\u0001\u0000\u0000\u0830\u0831\u0007\u0000\u0000\u0000\u0831"+ + "\u0832\u0007\u000b\u0000\u0000\u0832\u0156\u0001\u0000\u0000\u0000\u0833"+ + "\u0834\u0007\u0001\u0000\u0000\u0834\u0835\u0007\u0000\u0000\u0000\u0835"+ + "\u0836\u0007\u000b\u0000\u0000\u0836\u0837\u0007\b\u0000\u0000\u0837\u0838"+ + "\u0007\u0006\u0000\u0000\u0838\u0839\u0007\u0004\u0000\u0000\u0839\u0158"+ + "\u0001\u0000\u0000\u0000\u083a\u083b\u0007\u0001\u0000\u0000\u083b\u083c"+ + "\u0007\r\u0000\u0000\u083c\u083d\u0007\u0016\u0000\u0000\u083d\u015a\u0001"+ + "\u0000\u0000\u0000\u083e\u083f\u0007\u0001\u0000\u0000\u083f\u0840\u0007"+ + "\r\u0000\u0000\u0840\u0841\u0007\u000b\u0000\u0000\u0841\u0842\u0007\u0006"+ + "\u0000\u0000\u0842\u0843\u0007\u001a\u0000\u0000\u0843\u015c\u0001\u0000"+ + "\u0000\u0000\u0844\u0845\u0007\u000b\u0000\u0000\u0845\u0846\u0007\u0004"+ + "\u0000\u0000\u0846\u0847\u0007\u0013\u0000\u0000\u0847\u0848\u0007\u0006"+ + "\u0000\u0000\u0848\u015e\u0001\u0000\u0000\u0000\u0849\u084a\u0007\u000b"+ + "\u0000\u0000\u084a\u084b\u0007\r\u0000\u0000\u084b\u084c\u0007\u0016\u0000"+ + "\u0000\u084c\u084d\u0007\u0004\u0000\u0000\u084d\u084e\u0007\u0006\u0000"+ + "\u0000\u084e\u084f\u0007\n\u0000\u0000\u084f\u0850\u0007\u0015\u0000\u0000"+ + "\u0850\u0851\u0007\u001a\u0000\u0000\u0851\u0160\u0001\u0000\u0000\u0000"+ + "\u0852\u0853\u0007\u000b\u0000\u0000\u0853\u0854\u0007\r\u0000\u0000\u0854"+ + "\u0855\u0007\u0007\u0000\u0000\u0855\u0856\u0007\u0001\u0000\u0000\u0856"+ + "\u0857\u0007\n\u0000\u0000\u0857\u0858\u0007\u0003\u0000\u0000\u0858\u0859"+ + "\u0007\u0000\u0000\u0000\u0859\u085a\u0007\u001b\u0000\u0000\u085a\u085b"+ + "\u0007\u0004\u0000\u0000\u085b\u0162\u0001\u0000\u0000\u0000\u085c\u085d"+ + "\u0007\u000b\u0000\u0000\u085d\u085e\u0007\r\u0000\u0000\u085e\u085f\u0007"+ + "\u0006\u0000\u0000\u085f\u0164\u0001\u0000\u0000\u0000\u0860\u0861\u0007"+ + "\u000b\u0000\u0000\u0861\u0862\u0007\r\u0000\u0000\u0862\u0863\u0007\u0006"+ + "\u0000\u0000\u0863\u0864\u0007\u001a\u0000\u0000\u0864\u0865\u0007\u0000"+ + "\u0000\u0000\u0865\u0866\u0007\u000b\u0000\u0000\u0866\u0867\u0007\u0018"+ + "\u0000\u0000\u0867\u0166\u0001\u0000\u0000\u0000\u0868\u0869\u0007\u000b"+ + "\u0000\u0000\u0869\u086a\u0007\b\u0000\u0000\u086a\u086b\u0007\u0003\u0000"+ + "\u0000\u086b\u086c\u0007\u0003\u0000\u0000\u086c\u0168\u0001\u0000\u0000"+ + "\u0000\u086d\u086e\u0007\u000b\u0000\u0000\u086e\u086f\u0007\b\u0000\u0000"+ + "\u086f\u0870\u0007\u0003\u0000\u0000\u0870\u0871\u0007\u0003\u0000\u0000"+ + "\u0871\u0872\u0007\u0005\u0000\u0000\u0872\u016a\u0001\u0000\u0000\u0000"+ + "\u0873\u0874\u0007\u000b\u0000\u0000\u0874\u0875\u0007\b\u0000\u0000\u0875"+ + "\u0876\u0007\u0003\u0000\u0000\u0876\u0877\u0007\u0003\u0000\u0000\u0877"+ + "\u0878\u0007\u0000\u0000\u0000\u0878\u0879\u0007\t\u0000\u0000\u0879\u016c"+ + "\u0001\u0000\u0000\u0000\u087a\u087b\u0007\r\u0000\u0000\u087b\u087c\u0007"+ + "\u0015\u0000\u0000\u087c\u087d\u0007\u0006\u0000\u0000\u087d\u087e\u0007"+ + "\u0004\u0000\u0000\u087e\u087f\u0007\u0006\u0000\u0000\u087f\u0880\u0005"+ + "_\u0000\u0000\u0880\u0881\u0007\u0003\u0000\u0000\u0881\u0882\u0007\u0004"+ + "\u0000\u0000\u0882\u0883\u0007\u000b\u0000\u0000\u0883\u0884\u0007\u0018"+ + "\u0000\u0000\u0884\u0885\u0007\u0006\u0000\u0000\u0885\u0886\u0007\u001a"+ + "\u0000\u0000\u0886\u016e\u0001\u0000\u0000\u0000\u0887\u0888\u0007\r\u0000"+ + "\u0000\u0888\u0889\u0007\t\u0000\u0000\u0889\u0170\u0001\u0000\u0000\u0000"+ + "\u088a\u088b\u0007\r\u0000\u0000\u088b\u088c\u0007\t\u0000\u0000\u088c"+ + "\u088d\u0007\t\u0000\u0000\u088d\u088e\u0007\u0005\u0000\u0000\u088e\u088f"+ + "\u0007\u0004\u0000\u0000\u088f\u0890\u0007\u0006\u0000\u0000\u0890\u0172"+ + "\u0001\u0000\u0000\u0000\u0891\u0892\u0007\r\u0000\u0000\u0892\u0893\u0007"+ + "\u0002\u0000\u0000\u0893\u0894\u0007\u0006\u0000\u0000\u0894\u0895\u0007"+ + "\u0000\u0000\u0000\u0895\u0896\u0007\r\u0000\u0000\u0896\u0897\u0007\u000b"+ + "\u0000\u0000\u0897\u0898\u0007\n\u0000\u0000\u0898\u0899\u0007\u0003\u0000"+ + "\u0000\u0899\u0174\u0001\u0000\u0000\u0000\u089a\u089b\u0007\r\u0000\u0000"+ + "\u089b\u089c\u0007\u0007\u0000\u0000\u089c\u0176\u0001\u0000\u0000\u0000"+ + "\u089d\u089e\u0007\r\u0000\u0000\u089e\u089f\u0007\u0007\u0000\u0000\u089f"+ + "\u08a0\u0007\u0016\u0000\u0000\u08a0\u08a1\u0007\u0004\u0000\u0000\u08a1"+ + "\u08a2\u0007\u0007\u0000\u0000\u08a2\u0178\u0001\u0000\u0000\u0000\u08a3"+ + "\u08a4\u0007\r\u0000\u0000\u08a4\u08a5\u0007\u0006\u0000\u0000\u08a5\u08a6"+ + "\u0007\u001a\u0000\u0000\u08a6\u08a7\u0007\u0004\u0000\u0000\u08a7\u08a8"+ + "\u0007\u0007\u0000\u0000\u08a8\u08a9\u0007\u000e\u0000\u0000\u08a9\u08aa"+ + "\u0007\u0000\u0000\u0000\u08aa\u08ab\u0007\u0005\u0000\u0000\u08ab\u08ac"+ + "\u0007\u0004\u0000\u0000\u08ac\u017a\u0001\u0000\u0000\u0000\u08ad\u08ae"+ + "\u0007\u0002\u0000\u0000\u08ae\u08af\u0007\n\u0000\u0000\u08af\u08b0\u0007"+ + "\u0007\u0000\u0000\u08b0\u08b1\u0007\n\u0000\u0000\u08b1\u08b2\u0007\u0001"+ + "\u0000\u0000\u08b2\u08b3\u0007\u0004\u0000\u0000\u08b3\u08b4\u0007\u0006"+ + "\u0000\u0000\u08b4\u08b5\u0007\u0004\u0000\u0000\u08b5\u08b6\u0007\u0007"+ + "\u0000\u0000\u08b6\u017c\u0001\u0000\u0000\u0000\u08b7\u08b8\u0007\u0002"+ + "\u0000\u0000\u08b8\u08b9\u0007\n\u0000\u0000\u08b9\u08ba\u0007\u0007\u0000"+ + "\u0000\u08ba\u08bb\u0007\n\u0000\u0000\u08bb\u08bc\u0007\u0001\u0000\u0000"+ + "\u08bc\u08bd\u0007\u0004\u0000\u0000\u08bd\u08be\u0007\u0006\u0000\u0000"+ + "\u08be\u08bf\u0007\u0004\u0000\u0000\u08bf\u08c0\u0007\u0007\u0000\u0000"+ + "\u08c0\u08c1\u0007\u0005\u0000\u0000\u08c1\u017e\u0001\u0000\u0000\u0000"+ + "\u08c2\u08c3\u0007\u0002\u0000\u0000\u08c3\u08c4\u0007\n\u0000\u0000\u08c4"+ + "\u08c5\u0007\u0006\u0000\u0000\u08c5\u08c6\u0007\u001a\u0000\u0000\u08c6"+ + "\u0180\u0001\u0000\u0000\u0000\u08c7\u08c8\u0007\u0002\u0000\u0000\u08c8"+ + "\u08c9\u0007\n\u0000\u0000\u08c9\u08ca\u0007\u0006\u0000\u0000\u08ca\u08cb"+ + "\u0007\u001a\u0000\u0000\u08cb\u08cc\u0005_\u0000\u0000\u08cc\u08cd\u0007"+ + "\u0003\u0000\u0000\u08cd\u08ce\u0007\u0004\u0000\u0000\u08ce\u08cf\u0007"+ + "\u000b\u0000\u0000\u08cf\u08d0\u0007\u0018\u0000\u0000\u08d0\u08d1\u0007"+ + "\u0006\u0000\u0000\u08d1\u08d2\u0007\u001a\u0000\u0000\u08d2\u0182\u0001"+ + "\u0000\u0000\u0000\u08d3\u08d4\u0007\u0002\u0000\u0000\u08d4\u08d5\u0007"+ + "\n\u0000\u0000\u08d5\u08d6\u0007\u0006\u0000\u0000\u08d6\u08d7\u0007\u001a"+ + "\u0000\u0000\u08d7\u08d8\u0007\u0005\u0000\u0000\u08d8\u0184\u0001\u0000"+ + "\u0000\u0000\u08d9\u08da\u0007\u0002\u0000\u0000\u08da\u08db\u0007\u0004"+ + "\u0000\u0000\u08db\u08dc\u0007\u0007\u0000\u0000\u08dc\u08dd\u0007\u0015"+ + "\u0000\u0000\u08dd\u08de\u0007\u0004\u0000\u0000\u08de\u08df\u0007\u000b"+ + "\u0000\u0000\u08df\u08e0\u0007\u0006\u0000\u0000\u08e0\u08e1\u0007\u0000"+ + "\u0000\u0000\u08e1\u08e2\u0007\u0003\u0000\u0000\u08e2\u08e3\u0007\u0004"+ + "\u0000\u0000\u08e3\u08e4\u0005_\u0000\u0000\u08e4\u08e5\u0007\u0015\u0000"+ + "\u0000\u08e5\u08e6\u0007\r\u0000\u0000\u08e6\u08e7\u0007\u000b\u0000\u0000"+ + "\u08e7\u08e8\u0007\u0006\u0000\u0000\u08e8\u0186\u0001\u0000\u0000\u0000"+ + "\u08e9\u08ea\u0007\u0002\u0000\u0000\u08ea\u08eb\u0007\u0004\u0000\u0000"+ + "\u08eb\u08ec\u0007\u0007\u0000\u0000\u08ec\u08ed\u0007\u0015\u0000\u0000"+ + "\u08ed\u08ee\u0007\u0004\u0000\u0000\u08ee\u08ef\u0007\u000b\u0000\u0000"+ + "\u08ef\u08f0\u0007\u0006\u0000\u0000\u08f0\u08f1\u0007\u0000\u0000\u0000"+ + "\u08f1\u08f2\u0007\u0003\u0000\u0000\u08f2\u08f3\u0007\u0004\u0000\u0000"+ + "\u08f3\u08f4\u0005_\u0000\u0000\u08f4\u08f5\u0007\u0016\u0000\u0000\u08f5"+ + "\u08f6\u0007\u0000\u0000\u0000\u08f6\u08f7\u0007\u0005\u0000\u0000\u08f7"+ + "\u08f8\u0007\u0015\u0000\u0000\u08f8\u0188\u0001\u0000\u0000\u0000\u08f9"+ + "\u08fa\u0007\u0002\u0000\u0000\u08fa\u08fb\u0007\r\u0000\u0000\u08fb\u08fc"+ + "\u0007\u000e\u0000\u0000\u08fc\u08fd\u0007\u0004\u0000\u0000\u08fd\u08fe"+ + "\u0007\u0007\u0000\u0000\u08fe\u018a\u0001\u0000\u0000\u0000\u08ff\u0900"+ + "\u0007\u0002\u0000\u0000\u0900\u0901\u0007\u0007\u0000\u0000\u0901\u0902"+ + "\u0007\u0004\u0000\u0000\u0902\u0903\u0007\u0015\u0000\u0000\u0903\u0904"+ + "\u0007\u0000\u0000\u0000\u0904\u0905\u0007\u0005\u0000\u0000\u0905\u0906"+ + "\u0007\u0000\u0000\u0000\u0906\u0907\u0007\r\u0000\u0000\u0907\u0908\u0007"+ + "\u000b\u0000\u0000\u0908\u018c\u0001\u0000\u0000\u0000\u0909\u090a\u0007"+ + "\u0002\u0000\u0000\u090a\u090b\u0007\u0007\u0000\u0000\u090b\u090c\u0007"+ + "\r\u0000\u0000\u090c\u090d\u0007\u0002\u0000\u0000\u090d\u090e\u0007\u0004"+ + "\u0000\u0000\u090e\u090f\u0007\u0007\u0000\u0000\u090f\u0910\u0007\u0006"+ + "\u0000\u0000\u0910\u0911\u0007\u0017\u0000\u0000\u0911\u0912\u0005_\u0000"+ + "\u0000\u0912\u0913\u0007\u0004\u0000\u0000\u0913\u0914\u0007\u0013\u0000"+ + "\u0000\u0914\u0915\u0007\u0000\u0000\u0000\u0915\u0916\u0007\u0005\u0000"+ + "\u0000\u0916\u0917\u0007\u0006\u0000\u0000\u0917\u0918\u0007\u0005\u0000"+ + "\u0000\u0918\u018e\u0001\u0000\u0000\u0000\u0919\u091a\u0007\u0007\u0000"+ + "\u0000\u091a\u091b\u0007\n\u0000\u0000\u091b\u091c\u0007\u0016\u0000\u0000"+ + "\u091c\u091d\u0007\u0000\u0000\u0000\u091d\u091e\u0007\n\u0000\u0000\u091e"+ + "\u091f\u0007\u000b\u0000\u0000\u091f\u0920\u0007\u0005\u0000\u0000\u0920"+ + "\u0190\u0001\u0000\u0000\u0000\u0921\u0922\u0007\u0007\u0000\u0000\u0922"+ + "\u0923\u0007\u0004\u0000\u0000\u0923\u0924\u0007\n\u0000\u0000\u0924\u0925"+ + "\u0007\u0003\u0000\u0000\u0925\u0192\u0001\u0000\u0000\u0000\u0926\u0927"+ + "\u0007\u0007\u0000\u0000\u0927\u0928\u0007\u0004\u0000\u0000\u0928\u0929"+ + "\u0007\u0015\u0000\u0000\u0929\u092a\u0007\r\u0000\u0000\u092a\u092b\u0007"+ + "\u0007\u0000\u0000\u092b\u092c\u0007\u0016\u0000\u0000\u092c\u0194\u0001"+ + "\u0000\u0000\u0000\u092d\u092e\u0007\u0007\u0000\u0000\u092e\u092f\u0007"+ + "\u0004\u0000\u0000\u092f\u0930\u0007\u0001\u0000\u0000\u0930\u0931\u0007"+ + "\r\u0000\u0000\u0931\u0932\u0007\u0019\u0000\u0000\u0932\u0933\u0007\u0004"+ + "\u0000\u0000\u0933\u0196\u0001\u0000\u0000\u0000\u0934\u0935\u0007\u0007"+ + "\u0000\u0000\u0935\u0936\u0007\u0004\u0000\u0000\u0936\u0937\u0007\u0002"+ + "\u0000\u0000\u0937\u0938\u0007\u0003\u0000\u0000\u0938\u0939\u0007\n\u0000"+ + "\u0000\u0939\u093a\u0007\u0015\u0000\u0000\u093a\u093b\u0007\u0004\u0000"+ + "\u0000\u093b\u0198\u0001\u0000\u0000\u0000\u093c\u093d\u0007\u0007\u0000"+ + "\u0000\u093d\u093e\u0007\u0004\u0000\u0000\u093e\u093f\u0007\u0005\u0000"+ + "\u0000\u093f\u0940\u0007\u0004\u0000\u0000\u0940\u0941\u0007\u0006\u0000"+ + "\u0000\u0941\u019a\u0001\u0000\u0000\u0000\u0942\u0943\u0007\u0007\u0000"+ + "\u0000\u0943\u0944\u0007\u0004\u0000\u0000\u0944\u0945\u0007\u0006\u0000"+ + "\u0000\u0945\u0946\u0007\b\u0000\u0000\u0946\u0947\u0007\u0007\u0000\u0000"+ + "\u0947\u0948\u0007\u000b\u0000\u0000\u0948\u019c\u0001\u0000\u0000\u0000"+ + "\u0949\u094a\u0007\u0007\u0000\u0000\u094a\u094b\u0007\u0000\u0000\u0000"+ + "\u094b\u094c\u0007\u0018\u0000\u0000\u094c\u094d\u0007\u001a\u0000\u0000"+ + "\u094d\u094e\u0007\u0006\u0000\u0000\u094e\u019e\u0001\u0000\u0000\u0000"+ + "\u094f\u0950\u0007\u0007\u0000\u0000\u0950\u0951\u0007\r\u0000\u0000\u0951"+ + "\u0952\u0007\u0003\u0000\u0000\u0952\u0953\u0007\u0003\u0000\u0000\u0953"+ + "\u0954\u0007\u0012\u0000\u0000\u0954\u0955\u0007\n\u0000\u0000\u0955\u0956"+ + "\u0007\u0015\u0000\u0000\u0956\u0957\u0007\f\u0000\u0000\u0957\u01a0\u0001"+ + "\u0000\u0000\u0000\u0958\u0959\u0007\u0007\u0000\u0000\u0959\u095a\u0007"+ + "\u0006\u0000\u0000\u095a\u095b\u0007\u0007\u0000\u0000\u095b\u095c\u0007"+ + "\u0000\u0000\u0000\u095c\u095d\u0007\u0001\u0000\u0000\u095d\u01a2\u0001"+ + "\u0000\u0000\u0000\u095e\u095f\u0007\u0005\u0000\u0000\u095f\u0960\u0007"+ + "\n\u0000\u0000\u0960\u0961\u0007\u0001\u0000\u0000\u0961\u0962\u0007\u0004"+ + "\u0000\u0000\u0962\u01a4\u0001\u0000\u0000\u0000\u0963\u0964\u0007\u0005"+ + "\u0000\u0000\u0964\u0965\u0007\u0015\u0000\u0000\u0965\u0966\u0007\u001a"+ + "\u0000\u0000\u0966\u0967\u0007\u0004\u0000\u0000\u0967\u0968\u0007\u0001"+ + "\u0000\u0000\u0968\u0969\u0007\n\u0000\u0000\u0969\u01a6\u0001\u0000\u0000"+ + "\u0000\u096a\u096b\u0007\u0005\u0000\u0000\u096b\u096c\u0007\u0004\u0000"+ + "\u0000\u096c\u096d\u0007\u0015\u0000\u0000\u096d\u096e\u0007\r\u0000\u0000"+ + "\u096e\u096f\u0007\u000b\u0000\u0000\u096f\u0970\u0007\u0016\u0000\u0000"+ + "\u0970\u01a8\u0001\u0000\u0000\u0000\u0971\u0972\u0007\u0005\u0000\u0000"+ + "\u0972\u0973\u0007\u0004\u0000\u0000\u0973\u0974\u0007\u0003\u0000\u0000"+ + "\u0974\u0975\u0007\u0004\u0000\u0000\u0975\u0976\u0007\u0015\u0000\u0000"+ + "\u0976\u0977\u0007\u0006\u0000\u0000\u0977\u01aa\u0001\u0000\u0000\u0000"+ + "\u0978\u0979\u0007\u0005\u0000\u0000\u0979\u097a\u0007\u0004\u0000\u0000"+ + "\u097a\u097b\u0007\u0005\u0000\u0000\u097b\u097c\u0007\u0005\u0000\u0000"+ + "\u097c\u097d\u0007\u0000\u0000\u0000\u097d\u097e\u0007\r\u0000\u0000\u097e"+ + "\u097f\u0007\u000b\u0000\u0000\u097f\u01ac\u0001\u0000\u0000\u0000\u0980"+ + "\u0981\u0007\u0005\u0000\u0000\u0981\u0982\u0007\u0004\u0000\u0000\u0982"+ + "\u0983\u0007\u0005\u0000\u0000\u0983\u0984\u0007\u0005\u0000\u0000\u0984"+ + "\u0985\u0007\u0000\u0000\u0000\u0985\u0986\u0007\r\u0000\u0000\u0986\u0987"+ + "\u0007\u000b\u0000\u0000\u0987\u0988\u0005_\u0000\u0000\u0988\u0989\u0007"+ + "\b\u0000\u0000\u0989\u098a\u0007\u0005\u0000\u0000\u098a\u098b\u0007\u0004"+ + "\u0000\u0000\u098b\u098c\u0007\u0007\u0000\u0000\u098c\u01ae\u0001\u0000"+ + "\u0000\u0000\u098d\u098e\u0007\u0005\u0000\u0000\u098e\u098f\u0007\u0004"+ + "\u0000\u0000\u098f\u0990\u0007\u0006\u0000\u0000\u0990\u01b0\u0001\u0000"+ + "\u0000\u0000\u0991\u0992\u0007\u0005\u0000\u0000\u0992\u0993\u0007\u0000"+ + "\u0000\u0000\u0993\u0994\u0007\u0018\u0000\u0000\u0994\u0995\u0007\u000b"+ + "\u0000\u0000\u0995\u0996\u0007\u0004\u0000\u0000\u0996\u0997\u0007\u0016"+ + "\u0000\u0000\u0997\u01b2\u0001\u0000\u0000\u0000\u0998\u0999\u0007\u0005"+ + "\u0000\u0000\u0999\u099a\u0007\u0000\u0000\u0000\u099a\u099b\u0007\u000b"+ + "\u0000\u0000\u099b\u01b4\u0001\u0000\u0000\u0000\u099c\u099d\u0007\u0005"+ + "\u0000\u0000\u099d\u099e\u0007\u0000\u0000\u0000\u099e\u099f\u0007\u000b"+ + "\u0000\u0000\u099f\u09a0\u0007\u001a\u0000\u0000\u09a0\u01b6\u0001\u0000"+ + "\u0000\u0000\u09a1\u09a2\u0007\u0005\u0000\u0000\u09a2\u09a3\u0007\u0000"+ + "\u0000\u0000\u09a3\u09a4\u0007\u001b\u0000\u0000\u09a4\u09a5\u0007\u0004"+ + "\u0000\u0000\u09a5\u01b8\u0001\u0000\u0000\u0000\u09a6\u09a7\u0007\u0005"+ + "\u0000\u0000\u09a7\u09a8\u0007\f\u0000\u0000\u09a8\u09a9\u0007\u0000\u0000"+ + "\u0000\u09a9\u09aa\u0007\u0002\u0000\u0000\u09aa\u01ba\u0001\u0000\u0000"+ + "\u0000\u09ab\u09ac\u0007\u0005\u0000\u0000\u09ac\u09ad\u0007\u0001\u0000"+ + "\u0000\u09ad\u09ae\u0007\n\u0000\u0000\u09ae\u09af\u0007\u0003\u0000\u0000"+ + "\u09af\u09b0\u0007\u0003\u0000\u0000\u09b0\u01bc\u0001\u0000\u0000\u0000"+ + "\u09b1\u09b2\u0007\u0005\u0000\u0000\u09b2\u09b3\u0007\u0001\u0000\u0000"+ + "\u09b3\u09b4\u0007\n\u0000\u0000\u09b4\u09b5\u0007\u0003\u0000\u0000\u09b5"+ + "\u09b6\u0007\u0003\u0000\u0000\u09b6\u09b7\u0007\u0000\u0000\u0000\u09b7"+ + "\u09b8\u0007\u000b\u0000\u0000\u09b8\u09b9\u0007\u0006\u0000\u0000\u09b9"+ + "\u01be\u0001\u0000\u0000\u0000\u09ba\u09bb\u0007\u0005\u0000\u0000\u09bb"+ + "\u09bc\u0007\u001c\u0000\u0000\u09bc\u09bd\u0007\u0007\u0000\u0000\u09bd"+ + "\u09be\u0007\u0006\u0000\u0000\u09be\u01c0\u0001\u0000\u0000\u0000\u09bf"+ + "\u09c0\u0007\u0005\u0000\u0000\u09c0\u09c1\u0007\u0006\u0000\u0000\u09c1"+ + "\u09c2\u0007\n\u0000\u0000\u09c2\u09c3\u0007\u0007\u0000\u0000\u09c3\u09c4"+ + "\u0007\u0006\u0000\u0000\u09c4\u01c2\u0001\u0000\u0000\u0000\u09c5\u09c6"+ + "\u0007\u0005\u0000\u0000\u09c6\u09c7\u0007\u0006\u0000\u0000\u09c7\u09c8"+ + "\u0007\u0016\u0000\u0000\u09c8\u09c9\u0007\u0016\u0000\u0000\u09c9\u09ca"+ + "\u0007\u0004\u0000\u0000\u09ca\u09cb\u0007\u0019\u0000\u0000\u09cb\u09cc"+ + "\u0005_\u0000\u0000\u09cc\u09cd\u0007\u0002\u0000\u0000\u09cd\u09ce\u0007"+ + "\r\u0000\u0000\u09ce\u09cf\u0007\u0002\u0000\u0000\u09cf\u01c4\u0001\u0000"+ + "\u0000\u0000\u09d0\u09d1\u0007\u0005\u0000\u0000\u09d1\u09d2\u0007\u0006"+ + "\u0000\u0000\u09d2\u09d3\u0007\u0016\u0000\u0000\u09d3\u09d4\u0007\u0016"+ + "\u0000\u0000\u09d4\u09d5\u0007\u0004\u0000\u0000\u09d5\u09d6\u0007\u0019"+ + "\u0000\u0000\u09d6\u09d7\u0005_\u0000\u0000\u09d7\u09d8\u0007\u0005\u0000"+ + "\u0000\u09d8\u09d9\u0007\n\u0000\u0000\u09d9\u09da\u0007\u0001\u0000\u0000"+ + "\u09da\u09db\u0007\u0002\u0000\u0000\u09db\u01c6\u0001\u0000\u0000\u0000"+ + "\u09dc\u09dd\u0007\u0005\u0000\u0000\u09dd\u09de\u0007\u0006\u0000\u0000"+ + "\u09de\u09df\u0007\u0007\u0000\u0000\u09df\u09e0\u0007\u0000\u0000\u0000"+ + "\u09e0\u09e1\u0007\u000b\u0000\u0000\u09e1\u09e2\u0007\u0018\u0000\u0000"+ + "\u09e2\u01c8\u0001\u0000\u0000\u0000\u09e3\u09e4\u0007\u0005\u0000\u0000"+ + "\u09e4\u09e5\u0007\b\u0000\u0000\u09e5\u09e6\u0007\u0001\u0000\u0000\u09e6"+ + "\u01ca\u0001\u0000\u0000\u0000\u09e7\u09e8\u0007\u0006\u0000\u0000\u09e8"+ + "\u09e9\u0007\n\u0000\u0000\u09e9\u09ea\u0007\u000b\u0000\u0000\u09ea\u01cc"+ + "\u0001\u0000\u0000\u0000\u09eb\u09ec\u0007\u0006\u0000\u0000\u09ec\u09ed"+ + "\u0007\n\u0000\u0000\u09ed\u09ee\u0007\u000b\u0000\u0000\u09ee\u09ef\u0007"+ + "\u001a\u0000\u0000\u09ef\u01ce\u0001\u0000\u0000\u0000\u09f0\u09f1\u0007"+ + "\u0006\u0000\u0000\u09f1\u09f2\u0007\u001a\u0000\u0000\u09f2\u09f3\u0007"+ + "\u0004\u0000\u0000\u09f3\u09f4\u0007\u000b\u0000\u0000\u09f4\u01d0\u0001"+ + "\u0000\u0000\u0000\u09f5\u09f6\u0007\u0006\u0000\u0000\u09f6\u09f7\u0007"+ + "\u0000\u0000\u0000\u09f7\u09f8\u0007\u0001\u0000\u0000\u09f8\u09f9\u0007"+ + "\u0004\u0000\u0000\u09f9\u01d2\u0001\u0000\u0000\u0000\u09fa\u09fb\u0007"+ + "\u0006\u0000\u0000\u09fb\u09fc\u0007\u0000\u0000\u0000\u09fc\u09fd\u0007"+ + "\u0001\u0000\u0000\u09fd\u09fe\u0007\u0004\u0000\u0000\u09fe\u09ff\u0007"+ + "\u0005\u0000\u0000\u09ff\u0a00\u0007\u0006\u0000\u0000\u0a00\u0a01\u0007"+ + "\n\u0000\u0000\u0a01\u0a02\u0007\u0001\u0000\u0000\u0a02\u0a03\u0007\u0002"+ + "\u0000\u0000\u0a03\u01d4\u0001\u0000\u0000\u0000\u0a04\u0a05\u0007\u0006"+ + "\u0000\u0000\u0a05\u0a06\u0007\u0007\u0000\u0000\u0a06\u0a07\u0007\n\u0000"+ + "\u0000\u0a07\u0a08\u0007\u0000\u0000\u0000\u0a08\u0a09\u0007\u0003\u0000"+ + "\u0000\u0a09\u0a0a\u0007\u0000\u0000\u0000\u0a0a\u0a0b\u0007\u000b\u0000"+ + "\u0000\u0a0b\u0a0c\u0007\u0018\u0000\u0000\u0a0c\u01d6\u0001\u0000\u0000"+ + "\u0000\u0a0d\u0a0e\u0007\u0006\u0000\u0000\u0a0e\u0a0f\u0007\u0007\u0000"+ + "\u0000\u0a0f\u0a10\u0007\u0000\u0000\u0000\u0a10\u0a11\u0007\u0001\u0000"+ + "\u0000\u0a11\u01d8\u0001\u0000\u0000\u0000\u0a12\u0a13\u0007\u0006\u0000"+ + "\u0000\u0a13\u0a14\u0007\u0017\u0000\u0000\u0a14\u0a15\u0007\u0002\u0000"+ + "\u0000\u0a15\u0a16\u0007\u0004\u0000\u0000\u0a16\u0a17\u0007\u0016\u0000"+ + "\u0000\u0a17\u01da\u0001\u0000\u0000\u0000\u0a18\u0a19\u0007\b\u0000\u0000"+ + "\u0a19\u0a1a\u0007\u0012\u0000\u0000\u0a1a\u0a1b\u0007\u0000\u0000\u0000"+ + "\u0a1b\u0a1c\u0007\u0018\u0000\u0000\u0a1c\u0a1d\u0007\u0000\u0000\u0000"+ + "\u0a1d\u0a1e\u0007\u000b\u0000\u0000\u0a1e\u0a1f\u0007\u0006\u0000\u0000"+ + "\u0a1f\u01dc\u0001\u0000\u0000\u0000\u0a20\u0a21\u0007\b\u0000\u0000\u0a21"+ + "\u0a22\u0007\u0000\u0000\u0000\u0a22\u0a23\u0007\u000b\u0000\u0000\u0a23"+ + "\u0a24\u0007\u0006\u0000\u0000\u0a24\u01de\u0001\u0000\u0000\u0000\u0a25"+ + "\u0a26\u0007\b\u0000\u0000\u0a26\u0a27\u0007\u0000\u0000\u0000\u0a27\u0a28"+ + "\u0007\u000b\u0000\u0000\u0a28\u0a29\u0007\u0006\u0000\u0000\u0a29\u0a2a"+ + "\u00058\u0000\u0000\u0a2a\u01e0\u0001\u0000\u0000\u0000\u0a2b\u0a2c\u0007"+ + "\b\u0000\u0000\u0a2c\u0a2d\u0007\u0000\u0000\u0000\u0a2d\u0a2e\u0007\u000b"+ + "\u0000\u0000\u0a2e\u0a2f\u0007\u0006\u0000\u0000\u0a2f\u0a30\u00051\u0000"+ + "\u0000\u0a30\u0a31\u00056\u0000\u0000\u0a31\u01e2\u0001\u0000\u0000\u0000"+ + "\u0a32\u0a33\u0007\b\u0000\u0000\u0a33\u0a34\u0007\u0000\u0000\u0000\u0a34"+ + "\u0a35\u0007\u000b\u0000\u0000\u0a35\u0a36\u0007\u0006\u0000\u0000\u0a36"+ + "\u0a37\u00053\u0000\u0000\u0a37\u0a38\u00052\u0000\u0000\u0a38\u01e4\u0001"+ + "\u0000\u0000\u0000\u0a39\u0a3a\u0007\b\u0000\u0000\u0a3a\u0a3b\u0007\u0000"+ + "\u0000\u0000\u0a3b\u0a3c\u0007\u000b\u0000\u0000\u0a3c\u0a3d\u0007\u0006"+ + "\u0000\u0000\u0a3d\u0a3e\u00056\u0000\u0000\u0a3e\u0a3f\u00054\u0000\u0000"+ + "\u0a3f\u01e6\u0001\u0000\u0000\u0000\u0a40\u0a41\u0007\b\u0000\u0000\u0a41"+ + "\u0a42\u0007\u0000\u0000\u0000\u0a42\u0a43\u0007\u000b\u0000\u0000\u0a43"+ + "\u0a44\u0007\u0006\u0000\u0000\u0a44\u0a45\u00051\u0000\u0000\u0a45\u0a46"+ + "\u00052\u0000\u0000\u0a46\u0a47\u00058\u0000\u0000\u0a47\u01e8\u0001\u0000"+ + "\u0000\u0000\u0a48\u0a49\u0007\b\u0000\u0000\u0a49\u0a4a\u0007\u0000\u0000"+ + "\u0000\u0a4a\u0a4b\u0007\u000b\u0000\u0000\u0a4b\u0a4c\u0007\u0006\u0000"+ + "\u0000\u0a4c\u0a4d\u00052\u0000\u0000\u0a4d\u0a4e\u00055\u0000\u0000\u0a4e"+ + "\u0a4f\u00056\u0000\u0000\u0a4f\u01ea\u0001\u0000\u0000\u0000\u0a50\u0a51"+ + "\u0007\b\u0000\u0000\u0a51\u0a52\u0007\u000b\u0000\u0000\u0a52\u0a53\u0007"+ + "\u0000\u0000\u0000\u0a53\u0a54\u0007\r\u0000\u0000\u0a54\u0a55\u0007\u000b"+ + "\u0000\u0000\u0a55\u01ec\u0001\u0000\u0000\u0000\u0a56\u0a57\u0007\b\u0000"+ + "\u0000\u0a57\u0a58\u0007\u000b\u0000\u0000\u0a58\u0a59\u0007\u0005\u0000"+ + "\u0000\u0a59\u0a5a\u0007\u0000\u0000\u0000\u0a5a\u0a5b\u0007\u0018\u0000"+ + "\u0000\u0a5b\u0a5c\u0007\u000b\u0000\u0000\u0a5c\u0a5d\u0007\u0004\u0000"+ + "\u0000\u0a5d\u0a5e\u0007\u0016\u0000\u0000\u0a5e\u01ee\u0001\u0000\u0000"+ + "\u0000\u0a5f\u0a60\u0007\b\u0000\u0000\u0a60\u0a61\u0007\u0002\u0000\u0000"+ + "\u0a61\u0a62\u0007\u0002\u0000\u0000\u0a62\u0a63\u0007\u0004\u0000\u0000"+ + "\u0a63\u0a64\u0007\u0007\u0000\u0000\u0a64\u01f0\u0001\u0000\u0000\u0000"+ + "\u0a65\u0a66\u0007\b\u0000\u0000\u0a66\u0a67\u0007\u0005\u0000\u0000\u0a67"+ + "\u0a68\u0007\u0004\u0000\u0000\u0a68\u01f2\u0001\u0000\u0000\u0000\u0a69"+ + "\u0a6a\u0007\b\u0000\u0000\u0a6a\u0a6b\u0007\u0005\u0000\u0000\u0a6b\u0a6c"+ + "\u0007\u0001\u0000\u0000\u0a6c\u0a6d\u0007\n\u0000\u0000\u0a6d\u0a6e\u0007"+ + "\u0003\u0000\u0000\u0a6e\u0a6f\u0007\u0003\u0000\u0000\u0a6f\u0a70\u0007"+ + "\u0000\u0000\u0000\u0a70\u0a71\u0007\u000b\u0000\u0000\u0a71\u0a72\u0007"+ + "\u0006\u0000\u0000\u0a72\u01f4\u0001\u0000\u0000\u0000\u0a73\u0a74\u0007"+ + "\u0019\u0000\u0000\u0a74\u0a75\u0007\n\u0000\u0000\u0a75\u0a76\u0007\u0003"+ + "\u0000\u0000\u0a76\u0a77\u0007\b\u0000\u0000\u0a77\u0a78\u0007\u0004\u0000"+ + "\u0000\u0a78\u01f6\u0001\u0000\u0000\u0000\u0a79\u0a7a\u0007\u0019\u0000"+ + "\u0000\u0a7a\u0a7b\u0007\n\u0000\u0000\u0a7b\u0a7c\u0007\u0007\u0000\u0000"+ + "\u0a7c\u0a7d\u0007\u0012\u0000\u0000\u0a7d\u0a7e\u0007\u0000\u0000\u0000"+ + "\u0a7e\u0a7f\u0007\u000b\u0000\u0000\u0a7f\u0a80\u0007\n\u0000\u0000\u0a80"+ + "\u0a81\u0007\u0007\u0000\u0000\u0a81\u0a82\u0007\u0017\u0000\u0000\u0a82"+ + "\u01f8\u0001\u0000\u0000\u0000\u0a83\u0a84\u0007\u0019\u0000\u0000\u0a84"+ + "\u0a85\u0007\n\u0000\u0000\u0a85\u0a86\u0007\u0007\u0000\u0000\u0a86\u0a87"+ + "\u0007\u0015\u0000\u0000\u0a87\u0a88\u0007\u001a\u0000\u0000\u0a88\u0a89"+ + "\u0007\n\u0000\u0000\u0a89\u0a8a\u0007\u0007\u0000\u0000\u0a8a\u01fa\u0001"+ + "\u0000\u0000\u0000\u0a8b\u0a8c\u0007\u0019\u0000\u0000\u0a8c\u0a8d\u0007"+ + "\n\u0000\u0000\u0a8d\u0a8e\u0007\u0007\u0000\u0000\u0a8e\u0a8f\u0007\u0000"+ + "\u0000\u0000\u0a8f\u0a90\u0007\n\u0000\u0000\u0a90\u0a91\u0007\u0012\u0000"+ + "\u0000\u0a91\u0a92\u0007\u0003\u0000\u0000\u0a92\u0a93\u0007\u0004\u0000"+ + "\u0000\u0a93\u01fc\u0001\u0000\u0000\u0000\u0a94\u0a95\u0007\u000e\u0000"+ + "\u0000\u0a95\u0a96\u0007\u001a\u0000\u0000\u0a96\u0a97\u0007\u0004\u0000"+ + "\u0000\u0a97\u0a98\u0007\u000b\u0000\u0000\u0a98\u01fe\u0001\u0000\u0000"+ + "\u0000\u0a99\u0a9a\u0007\u000e\u0000\u0000\u0a9a\u0a9b\u0007\u001a\u0000"+ + "\u0000\u0a9b\u0a9c\u0007\u0004\u0000\u0000\u0a9c\u0a9d\u0007\u0007\u0000"+ + "\u0000\u0a9d\u0a9e\u0007\u0004\u0000\u0000\u0a9e\u0200\u0001\u0000\u0000"+ + "\u0000\u0a9f\u0aa0\u0007\u000e\u0000\u0000\u0aa0\u0aa1\u0007\u0000\u0000"+ + "\u0000\u0aa1\u0aa2\u0007\u0006\u0000\u0000\u0aa2\u0aa3\u0007\u001a\u0000"+ + "\u0000\u0aa3\u0202\u0001\u0000\u0000\u0000\u0aa4\u0aa5\u0007\u0013\u0000"+ + "\u0000\u0aa5\u0aa6\u0007\r\u0000\u0000\u0aa6\u0aa7\u0007\u0007\u0000\u0000"+ + "\u0aa7\u0204\u0001\u0000\u0000\u0000\u0aa8\u0aa9\u0007\u0017\u0000\u0000"+ + "\u0aa9\u0aaa\u0007\u0004\u0000\u0000\u0aaa\u0aab\u0007\n\u0000\u0000\u0aab"+ + "\u0aac\u0007\u0007\u0000\u0000\u0aac\u0206\u0001\u0000\u0000\u0000\u0aad"+ + "\u0aae\u0007\u0017\u0000\u0000\u0aae\u0aaf\u0007\u0000\u0000\u0000\u0aaf"+ + "\u0ab0\u0007\u0004\u0000\u0000\u0ab0\u0ab1\u0007\u0003\u0000\u0000\u0ab1"+ + "\u0ab2\u0007\u0016\u0000\u0000\u0ab2\u0208\u0001\u0000\u0000\u0000\u0ab3"+ + "\u0ab4\u0007\u001b\u0000\u0000\u0ab4\u0ab5\u0007\r\u0000\u0000\u0ab5\u0ab6"+ + "\u0007\u000b\u0000\u0000\u0ab6\u0ab7\u0007\u0004\u0000\u0000\u0ab7\u0ab8"+ + "\u0007\u0016\u0000\u0000\u0ab8\u020a\u0001\u0000\u0000\u0000\u0ab9\u0aba"+ + "\u0007\u001b\u0000\u0000\u0aba\u0abb\u0007\r\u0000\u0000\u0abb\u0abc\u0007"+ + "\u000b\u0000\u0000\u0abc\u0abd\u0007\u0004\u0000\u0000\u0abd\u0abe\u0007"+ + "\u0016\u0000\u0000\u0abe\u0abf\u0005_\u0000\u0000\u0abf\u0ac0\u0007\u0016"+ + "\u0000\u0000\u0ac0\u0ac1\u0007\n\u0000\u0000\u0ac1\u0ac2\u0007\u0006\u0000"+ + "\u0000\u0ac2\u0ac3\u0007\u0004\u0000\u0000\u0ac3\u0ac4\u0007\u0006\u0000"+ + "\u0000\u0ac4\u0ac5\u0007\u0000\u0000\u0000\u0ac5\u0ac6\u0007\u0001\u0000"+ + "\u0000\u0ac6\u0ac7\u0007\u0004\u0000\u0000\u0ac7\u020c\u0001\u0000\u0000"+ + "\u0000\u0ac8\u0ac9\u0007\u001b\u0000\u0000\u0ac9\u0aca\u0007\r\u0000\u0000"+ + "\u0aca\u0acb\u0007\u000b\u0000\u0000\u0acb\u0acc\u0007\u0004\u0000\u0000"+ + "\u0acc\u0acd\u0007\u0016\u0000\u0000\u0acd\u0ace\u0005_\u0000\u0000\u0ace"+ + "\u0acf\u0007\u0006\u0000\u0000\u0acf\u0ad0\u0007\u0000\u0000\u0000\u0ad0"+ + "\u0ad1\u0007\u0001\u0000\u0000\u0ad1\u0ad2\u0007\u0004\u0000\u0000\u0ad2"+ + "\u020e\u0001\u0000\u0000\u0000\u0ad3\u0ad4\u0007\n\u0000\u0000\u0ad4\u0ad5"+ + "\u0007\u0012\u0000\u0000\u0ad5\u0ad6\u0007\u0005\u0000\u0000\u0ad6\u0ad7"+ + "\u0007\u0006\u0000\u0000\u0ad7\u0ad8\u0007\u0007\u0000\u0000\u0ad8\u0ad9"+ + "\u0007\n\u0000\u0000\u0ad9\u0ada\u0007\u0015\u0000\u0000\u0ada\u0adb\u0007"+ + "\u0006\u0000\u0000\u0adb\u0210\u0001\u0000\u0000\u0000\u0adc\u0add\u0007"+ + "\n\u0000\u0000\u0add\u0ade\u0007\u0018\u0000\u0000\u0ade\u0adf\u0007\u0018"+ + "\u0000\u0000\u0adf\u0ae0\u0007\u0007\u0000\u0000\u0ae0\u0ae1\u0007\u0004"+ + "\u0000\u0000\u0ae1\u0ae2\u0007\u0018\u0000\u0000\u0ae2\u0ae3\u0007\n\u0000"+ + "\u0000\u0ae3\u0ae4\u0007\u0006\u0000\u0000\u0ae4\u0ae5\u0007\u0004\u0000"+ + "\u0000\u0ae5\u0212\u0001\u0000\u0000\u0000\u0ae6\u0ae7\u0007\n\u0000\u0000"+ + "\u0ae7\u0ae8\u0007\u0018\u0000\u0000\u0ae8\u0ae9\u0007\u0018\u0000\u0000"+ + "\u0ae9\u0aea\u0007\u0007\u0000\u0000\u0aea\u0aeb\u0007\u0004\u0000\u0000"+ + "\u0aeb\u0aec\u0007\u0018\u0000\u0000\u0aec\u0aed\u0007\n\u0000\u0000\u0aed"+ + "\u0aee\u0007\u0006\u0000\u0000\u0aee\u0aef\u0007\u0004\u0000\u0000\u0aef"+ + "\u0af0\u0007\u0005\u0000\u0000\u0af0\u0214\u0001\u0000\u0000\u0000\u0af1"+ + "\u0af2\u0007\n\u0000\u0000\u0af2\u0af3\u0007\u0003\u0000\u0000\u0af3\u0af4"+ + "\u0007\u0006\u0000\u0000\u0af4\u0af5\u0007\u0004\u0000\u0000\u0af5\u0af6"+ + "\u0007\u0007\u0000\u0000\u0af6\u0216\u0001\u0000\u0000\u0000\u0af7\u0af8"+ + "\u0007\u0015\u0000\u0000\u0af8\u0af9\u0007\n\u0000\u0000\u0af9\u0afa\u0007"+ + "\u0006\u0000\u0000\u0afa\u0afb\u0007\n\u0000\u0000\u0afb\u0afc\u0007\u0003"+ + "\u0000\u0000\u0afc\u0afd\u0007\r\u0000\u0000\u0afd\u0afe\u0007\u0018\u0000"+ + "\u0000\u0afe\u0218\u0001\u0000\u0000\u0000\u0aff\u0b00\u0007\u0015\u0000"+ + "\u0000\u0b00\u0b01\u0007\u0003\u0000\u0000\u0b01\u0b02\u0007\u0004\u0000"+ + "\u0000\u0b02\u0b03\u0007\n\u0000\u0000\u0b03\u0b04\u0007\u0007\u0000\u0000"+ + "\u0b04\u021a\u0001\u0000\u0000\u0000\u0b05\u0b06\u0007\u0015\u0000\u0000"+ + "\u0b06\u0b07\u0007\u0003\u0000\u0000\u0b07\u0b08\u0007\r\u0000\u0000\u0b08"+ + "\u0b09\u0007\u000b\u0000\u0000\u0b09\u0b0a\u0007\u0004\u0000\u0000\u0b0a"+ + "\u021c\u0001\u0000\u0000\u0000\u0b0b\u0b0c\u0007\u0015\u0000\u0000\u0b0c"+ + "\u0b0d\u0007\r\u0000\u0000\u0b0d\u0b0e\u0007\u000b\u0000\u0000\u0b0e\u0b0f"+ + "\u0007\u0005\u0000\u0000\u0b0f\u0b10\u0007\u0006\u0000\u0000\u0b10\u0b11"+ + "\u0007\u0007\u0000\u0000\u0b11\u0b12\u0007\n\u0000\u0000\u0b12\u0b13\u0007"+ + "\u0000\u0000\u0000\u0b13\u0b14\u0007\u000b\u0000\u0000\u0b14\u0b15\u0007"+ + "\u0006\u0000\u0000\u0b15\u021e\u0001\u0000\u0000\u0000\u0b16\u0b17\u0007"+ + "\u0015\u0000\u0000\u0b17\u0b18\u0007\b\u0000\u0000\u0b18\u0b19\u0007\u0007"+ + "\u0000\u0000\u0b19\u0b1a\u0007\u0007\u0000\u0000\u0b1a\u0b1b\u0007\u0004"+ + "\u0000\u0000\u0b1b\u0b1c\u0007\u000b\u0000\u0000\u0b1c\u0b1d\u0007\u0006"+ + "\u0000\u0000\u0b1d\u0b1e\u0005_\u0000\u0000\u0b1e\u0b1f\u0007\u0007\u0000"+ + "\u0000\u0b1f\u0b20\u0007\r\u0000\u0000\u0b20\u0b21\u0007\u0003\u0000\u0000"+ + "\u0b21\u0b22\u0007\u0004\u0000\u0000\u0b22\u0220\u0001\u0000\u0000\u0000"+ + "\u0b23\u0b24\u0007\u0015\u0000\u0000\u0b24\u0b25\u0007\b\u0000\u0000\u0b25"+ + "\u0b26\u0007\u0007\u0000\u0000\u0b26\u0b27\u0007\u0007\u0000\u0000\u0b27"+ + "\u0b28\u0007\u0004\u0000\u0000\u0b28\u0b29\u0007\u000b\u0000\u0000\u0b29"+ + "\u0b2a\u0007\u0006\u0000\u0000\u0b2a\u0b2b\u0005_\u0000\u0000\u0b2b\u0b2c"+ + "\u0007\b\u0000\u0000\u0b2c\u0b2d\u0007\u0005\u0000\u0000\u0b2d\u0b2e\u0007"+ + "\u0004\u0000\u0000\u0b2e\u0b2f\u0007\u0007\u0000\u0000\u0b2f\u0222\u0001"+ + "\u0000\u0000\u0000\u0b30\u0b31\u0007\u0016\u0000\u0000\u0b31\u0b32\u0007"+ + "\n\u0000\u0000\u0b32\u0b33\u0007\u0006\u0000\u0000\u0b33\u0b34\u0007\n"+ + "\u0000\u0000\u0b34\u0224\u0001\u0000\u0000\u0000\u0b35\u0b36\u0007\u0016"+ + "\u0000\u0000\u0b36\u0b37\u0007\u0000\u0000\u0000\u0b37\u0b38\u0007\u0007"+ + "\u0000\u0000\u0b38\u0b39\u0007\u0004\u0000\u0000\u0b39\u0b3a\u0007\u0015"+ + "\u0000\u0000\u0b3a\u0b3b\u0007\u0006\u0000\u0000\u0b3b\u0b3c\u0007\r\u0000"+ + "\u0000\u0b3c\u0b3d\u0007\u0007\u0000\u0000\u0b3d\u0b3e\u0007\u0017\u0000"+ + "\u0000\u0b3e\u0226\u0001\u0000\u0000\u0000\u0b3f\u0b40\u0007\u0016\u0000"+ + "\u0000\u0b40\u0b41\u0007\u0007\u0000\u0000\u0b41\u0b42\u0007\u0017\u0000"+ + "\u0000\u0b42\u0b43\u0007\u0007\u0000\u0000\u0b43\u0b44\u0007\b\u0000\u0000"+ + "\u0b44\u0b45\u0007\u000b\u0000\u0000\u0b45\u0228\u0001\u0000\u0000\u0000"+ + "\u0b46\u0b47\u0007\u0004\u0000\u0000\u0b47\u0b48\u0007\u0013\u0000\u0000"+ + "\u0b48\u0b49\u0007\n\u0000\u0000\u0b49\u0b4a\u0007\u0015\u0000\u0000\u0b4a"+ + "\u0b4b\u0007\u0006\u0000\u0000\u0b4b\u022a\u0001\u0000\u0000\u0000\u0b4c"+ + "\u0b4d\u0007\u0004\u0000\u0000\u0b4d\u0b4e\u0007\u0013\u0000\u0000\u0b4e"+ + "\u0b4f\u0007\u0000\u0000\u0000\u0b4f\u0b50\u0007\u0005\u0000\u0000\u0b50"+ + "\u0b51\u0007\u0006\u0000\u0000\u0b51\u0b52\u0007\u0000\u0000\u0000\u0b52"+ + "\u0b53\u0007\u000b\u0000\u0000\u0b53\u0b54\u0007\u0018\u0000\u0000\u0b54"+ + "\u022c\u0001\u0000\u0000\u0000\u0b55\u0b56\u0007\t\u0000\u0000\u0b56\u0b57"+ + "\u0007\b\u0000\u0000\u0b57\u0b58\u0007\u000b\u0000\u0000\u0b58\u0b59\u0007"+ + "\u0015\u0000\u0000\u0b59\u0b5a\u0007\u0006\u0000\u0000\u0b5a\u0b5b\u0007"+ + "\u0000\u0000\u0000\u0b5b\u0b5c\u0007\r\u0000\u0000\u0b5c\u0b5d\u0007\u000b"+ + "\u0000\u0000\u0b5d\u022e\u0001\u0000\u0000\u0000\u0b5e\u0b5f\u0007\u0018"+ + "\u0000\u0000\u0b5f\u0b60\u0007\u001c\u0000\u0000\u0b60\u0b61\u0007\u0003"+ + "\u0000\u0000\u0b61\u0b62\u0007\u0005\u0000\u0000\u0b62\u0b63\u0007\u0006"+ + "\u0000\u0000\u0b63\u0b64\u0007\n\u0000\u0000\u0b64\u0b65\u0007\u0006\u0000"+ + "\u0000\u0b65\u0b66\u0007\b\u0000\u0000\u0b66\u0b67\u0007\u0005\u0000\u0000"+ + "\u0b67\u0230\u0001\u0000\u0000\u0000\u0b68\u0b69\u0007\u0018\u0000\u0000"+ + "\u0b69\u0b6a\u0007\u0007\u0000\u0000\u0b6a\u0b6b\u0007\n\u0000\u0000\u0b6b"+ + "\u0b6c\u0007\u000b\u0000\u0000\u0b6c\u0b6d\u0007\u0006\u0000\u0000\u0b6d"+ + "\u0232\u0001\u0000\u0000\u0000\u0b6e\u0b6f\u0007\u0000\u0000\u0000\u0b6f"+ + "\u0b70\u0007\u000b\u0000\u0000\u0b70\u0b71\u0007\u0005\u0000\u0000\u0b71"+ + "\u0b72\u0007\u0006\u0000\u0000\u0b72\u0b73\u0007\n\u0000\u0000\u0b73\u0b74"+ + "\u0007\u000b\u0000\u0000\u0b74\u0b75\u0007\u0006\u0000\u0000\u0b75\u0234"+ + "\u0001\u0000\u0000\u0000\u0b76\u0b77\u0007\u0000\u0000\u0000\u0b77\u0b78"+ + "\u0007\u000b\u0000\u0000\u0b78\u0b79\u0007\t\u0000\u0000\u0b79\u0b7a\u0007"+ + "\u0000\u0000\u0000\u0b7a\u0b7b\u0007\u000b\u0000\u0000\u0b7b\u0b7c\u0007"+ + "\u0000\u0000\u0000\u0b7c\u0b7d\u0007\u0006\u0000\u0000\u0b7d\u0b7e\u0007"+ + "\u0017\u0000\u0000\u0b7e\u0236\u0001\u0000\u0000\u0000\u0b7f\u0b80\u0007"+ + "\u000b\u0000\u0000\u0b80\u0b81\u0007\b\u0000\u0000\u0b81\u0b82\u0007\u0001"+ + "\u0000\u0000\u0b82\u0b83\u0007\u0012\u0000\u0000\u0b83\u0b84\u0007\u0004"+ + "\u0000\u0000\u0b84\u0b85\u0007\u0007\u0000\u0000\u0b85\u0238\u0001\u0000"+ + "\u0000\u0000\u0b86\u0b87\u0007\u000b\u0000\u0000\u0b87\u0b88\u0007\b\u0000"+ + "\u0000\u0b88\u0b89\u0007\u0001\u0000\u0000\u0b89\u0b8a\u0007\u0004\u0000"+ + "\u0000\u0b8a\u0b8b\u0007\u0007\u0000\u0000\u0b8b\u0b8c\u0007\u0000\u0000"+ + "\u0000\u0b8c\u0b8d\u0007\u0015\u0000\u0000\u0b8d\u023a\u0001\u0000\u0000"+ + "\u0000\u0b8e\u0b8f\u0007\r\u0000\u0000\u0b8f\u0b90\u0007\u000b\u0000\u0000"+ + "\u0b90\u023c\u0001\u0000\u0000\u0000\u0b91\u0b92\u0007\r\u0000\u0000\u0b92"+ + "\u0b93\u0007\u0002\u0000\u0000\u0b93\u0b94\u0007\u0004\u0000\u0000\u0b94"+ + "\u0b95\u0007\u000b\u0000\u0000\u0b95\u023e\u0001\u0000\u0000\u0000\u0b96"+ + "\u0b97\u0007\u0002\u0000\u0000\u0b97\u0b98\u0007\n\u0000\u0000\u0b98\u0b99"+ + "\u0007\u0007\u0000\u0000\u0b99\u0b9a\u0007\u0006\u0000\u0000\u0b9a\u0b9b"+ + "\u0007\u0000\u0000\u0000\u0b9b\u0b9c\u0007\u0006\u0000\u0000\u0b9c\u0b9d"+ + "\u0007\u0000\u0000\u0000\u0b9d\u0b9e\u0007\r\u0000\u0000\u0b9e\u0b9f\u0007"+ + "\u000b\u0000\u0000\u0b9f\u0240\u0001\u0000\u0000\u0000\u0ba0\u0ba1\u0007"+ + "\u0002\u0000\u0000\u0ba1\u0ba2\u0007\u0007\u0000\u0000\u0ba2\u0ba3\u0007"+ + "\r\u0000\u0000\u0ba3\u0ba4\u0007\u0015\u0000\u0000\u0ba4\u0ba5\u0007\u0004"+ + "\u0000\u0000\u0ba5\u0ba6\u0007\u0016\u0000\u0000\u0ba6\u0ba7\u0007\b\u0000"+ + "\u0000\u0ba7\u0ba8\u0007\u0007\u0000\u0000\u0ba8\u0ba9\u0007\u0004\u0000"+ + "\u0000\u0ba9\u0242\u0001\u0000\u0000\u0000\u0baa\u0bab\u0007\u0002\u0000"+ + "\u0000\u0bab\u0bac\u0007\u0007\u0000\u0000\u0bac\u0bad\u0007\r\u0000\u0000"+ + "\u0bad\u0bae\u0007\u0016\u0000\u0000\u0bae\u0baf\u0007\b\u0000\u0000\u0baf"+ + "\u0bb0\u0007\u0015\u0000\u0000\u0bb0\u0bb1\u0007\u0006\u0000\u0000\u0bb1"+ + "\u0244\u0001\u0000\u0000\u0000\u0bb2\u0bb3\u0007\u0002\u0000\u0000\u0bb3"+ + "\u0bb4\u0007\u0007\u0000\u0000\u0bb4\u0bb5\u0007\r\u0000\u0000\u0bb5\u0bb6"+ + "\u0007\u001d\u0000\u0000\u0bb6\u0bb7\u0007\u0004\u0000\u0000\u0bb7\u0bb8"+ + "\u0007\u0015\u0000\u0000\u0bb8\u0bb9\u0007\u0006\u0000\u0000\u0bb9\u0246"+ + "\u0001\u0000\u0000\u0000\u0bba\u0bbb\u0007\u001c\u0000\u0000\u0bbb\u0bbc"+ + "\u0007\b\u0000\u0000\u0bbc\u0bbd\u0007\u0004\u0000\u0000\u0bbd\u0bbe\u0007"+ + "\u0007\u0000\u0000\u0bbe\u0bbf\u0007\u0017\u0000\u0000\u0bbf\u0248\u0001"+ + "\u0000\u0000\u0000\u0bc0\u0bc1\u0007\u0007\u0000\u0000\u0bc1\u0bc2\u0007"+ + "\u0004\u0000\u0000\u0bc2\u0bc3\u0007\u0015\u0000\u0000\u0bc3\u0bc4\u0007"+ + "\r\u0000\u0000\u0bc4\u0bc5\u0007\u0007\u0000\u0000\u0bc5\u0bc6\u0007\u0016"+ + "\u0000\u0000\u0bc6\u0bc7\u0007\u0005\u0000\u0000\u0bc7\u024a\u0001\u0000"+ + "\u0000\u0000\u0bc8\u0bc9\u0007\u0007\u0000\u0000\u0bc9\u0bca\u0007\u0004"+ + "\u0000\u0000\u0bca\u0bcb\u0007\t\u0000\u0000\u0bcb\u0bcc\u0007\u0004\u0000"+ + "\u0000\u0bcc\u0bcd\u0007\u0007\u0000\u0000\u0bcd\u0bce\u0007\u0004\u0000"+ + "\u0000\u0bce\u0bcf\u0007\u000b\u0000\u0000\u0bcf\u0bd0\u0007\u0015\u0000"+ + "\u0000\u0bd0\u0bd1\u0007\u0004\u0000\u0000\u0bd1\u024c\u0001\u0000\u0000"+ + "\u0000\u0bd2\u0bd3\u0007\u0007\u0000\u0000\u0bd3\u0bd4\u0007\u0004\u0000"+ + "\u0000\u0bd4\u0bd5\u0007\u000b\u0000\u0000\u0bd5\u0bd6\u0007\n\u0000\u0000"+ + "\u0bd6\u0bd7\u0007\u0001\u0000\u0000\u0bd7\u0bd8\u0007\u0004\u0000\u0000"+ + "\u0bd8\u024e\u0001\u0000\u0000\u0000\u0bd9\u0bda\u0007\u0007\u0000\u0000"+ + "\u0bda\u0bdb\u0007\u0004\u0000\u0000\u0bdb\u0bdc\u0007\u0019\u0000\u0000"+ + "\u0bdc\u0bdd\u0007\r\u0000\u0000\u0bdd\u0bde\u0007\f\u0000\u0000\u0bde"+ + "\u0bdf\u0007\u0004\u0000\u0000\u0bdf\u0250\u0001\u0000\u0000\u0000\u0be0"+ + "\u0be1\u0007\u0005\u0000\u0000\u0be1\u0be2\u0007\b\u0000\u0000\u0be2\u0be3"+ + "\u0007\u0012\u0000\u0000\u0be3\u0be4\u0007\u0005\u0000\u0000\u0be4\u0be5"+ + "\u0007\u0006\u0000\u0000\u0be5\u0be6\u0007\u0007\u0000\u0000\u0be6\u0be7"+ + "\u0007\u0000\u0000\u0000\u0be7\u0be8\u0007\u000b\u0000\u0000\u0be8\u0be9"+ + "\u0007\u0018\u0000\u0000\u0be9\u0252\u0001\u0000\u0000\u0000\u0bea\u0beb"+ + "\u0007\u0005\u0000\u0000\u0beb\u0bec\u0007\u0017\u0000\u0000\u0bec\u0bed"+ + "\u0007\u0005\u0000\u0000\u0bed\u0bee\u0007\u0006\u0000\u0000\u0bee\u0bef"+ + "\u0007\u0004\u0000\u0000\u0bef\u0bf0\u0007\u0001\u0000\u0000\u0bf0\u0bf1"+ + "\u0005_\u0000\u0000\u0bf1\u0bf2\u0007\b\u0000\u0000\u0bf2\u0bf3\u0007"+ + "\u0005\u0000\u0000\u0bf3\u0bf4\u0007\u0004\u0000\u0000\u0bf4\u0bf5\u0007"+ + "\u0007\u0000\u0000\u0bf5\u0254\u0001\u0000\u0000\u0000\u0bf6\u0bf7\u0007"+ + "\u0006\u0000\u0000\u0bf7\u0bf8\u0007\u0004\u0000\u0000\u0bf8\u0bf9\u0007"+ + "\u0001\u0000\u0000\u0bf9\u0bfa\u0007\u0002\u0000\u0000\u0bfa\u0bfb\u0007"+ + "\r\u0000\u0000\u0bfb\u0bfc\u0007\u0007\u0000\u0000\u0bfc\u0bfd\u0007\n"+ + "\u0000\u0000\u0bfd\u0bfe\u0007\u0003\u0000\u0000\u0bfe\u0256\u0001\u0000"+ + "\u0000\u0000\u0bff\u0c00\u0007\b\u0000\u0000\u0c00\u0c01\u0007\u000b\u0000"+ + "\u0000\u0c01\u0c02\u0007\u0000\u0000\u0000\u0c02\u0c03\u0007\u001c\u0000"+ + "\u0000\u0c03\u0c04\u0007\b\u0000\u0000\u0c04\u0c05\u0007\u0004\u0000\u0000"+ + "\u0c05\u0258\u0001\u0000\u0000\u0000\u0c06\u0c07\u0007\b\u0000\u0000\u0c07"+ + "\u0c08\u0007\u000b\u0000\u0000\u0c08\u0c09\u0007\u0000\u0000\u0000\u0c09"+ + "\u0c0a\u0007\u0006\u0000\u0000\u0c0a\u025a\u0001\u0000\u0000\u0000\u0c0b"+ + "\u0c0c\u0007\u0019\u0000\u0000\u0c0c\u0c0d\u0007\n\u0000\u0000\u0c0d\u0c0e"+ + "\u0007\u0003\u0000\u0000\u0c0e\u0c0f\u0007\b\u0000\u0000\u0c0f\u0c10\u0007"+ + "\u0004\u0000\u0000\u0c10\u0c11\u0007\u0005\u0000\u0000\u0c11\u025c\u0001"+ + "\u0000\u0000\u0000\u0c12\u0c13\u0007\n\u0000\u0000\u0c13\u0c14\u0007\u0015"+ + "\u0000\u0000\u0c14\u0c15\u0007\u0017\u0000\u0000\u0c15\u0c16\u0007\u0015"+ + "\u0000\u0000\u0c16\u0c17\u0007\u0003\u0000\u0000\u0c17\u0c18\u0007\u0000"+ + "\u0000\u0000\u0c18\u0c19\u0007\u0015\u0000\u0000\u0c19\u025e\u0001\u0000"+ + "\u0000\u0000\u0c1a\u0c1b\u0007\u0012\u0000\u0000\u0c1b\u0c1c\u0007\u0000"+ + "\u0000\u0000\u0c1c\u0c1d\u0007\u000b\u0000\u0000\u0c1d\u0c1e\u0007\u0016"+ + "\u0000\u0000\u0c1e\u0c1f\u0007\u0000\u0000\u0000\u0c1f\u0c20\u0007\u000b"+ + "\u0000\u0000\u0c20\u0c21\u0007\u0018\u0000\u0000\u0c21\u0260\u0001\u0000"+ + "\u0000\u0000\u0c22\u0c23\u0007\u0012\u0000\u0000\u0c23\u0c24\u0007\u0000"+ + "\u0000\u0000\u0c24\u0c25\u0007\u000b\u0000\u0000\u0c25\u0c26\u0007\u0016"+ + "\u0000\u0000\u0c26\u0c27\u0007\u0000\u0000\u0000\u0c27\u0c28\u0007\u000b"+ + "\u0000\u0000\u0c28\u0c29\u0007\u0018\u0000\u0000\u0c29\u0c2a\u0007\u0005"+ + "\u0000\u0000\u0c2a\u0262\u0001\u0000\u0000\u0000\u0c2b\u0c2c\u0007\u0015"+ + "\u0000\u0000\u0c2c\u0c2d\u0007\r\u0000\u0000\u0c2d\u0c2e\u0007\u000b\u0000"+ + "\u0000\u0c2e\u0c2f\u0007\u000b\u0000\u0000\u0c2f\u0c30\u0007\u0004\u0000"+ + "\u0000\u0c30\u0c31\u0007\u0015\u0000\u0000\u0c31\u0c32\u0007\u0006\u0000"+ + "\u0000\u0c32\u0c33\u0007\u0000\u0000\u0000\u0c33\u0c34\u0007\u000b\u0000"+ + "\u0000\u0c34\u0c35\u0007\u0018\u0000\u0000\u0c35\u0264\u0001\u0000\u0000"+ + "\u0000\u0c36\u0c37\u0007\u0016\u0000\u0000\u0c37\u0c38\u0007\u0004\u0000"+ + "\u0000\u0c38\u0c39\u0007\u0005\u0000\u0000\u0c39\u0c3a\u0007\u0006\u0000"+ + "\u0000\u0c3a\u0c3b\u0007\u0000\u0000\u0000\u0c3b\u0c3c\u0007\u000b\u0000"+ + "\u0000\u0c3c\u0c3d\u0007\n\u0000\u0000\u0c3d\u0c3e\u0007\u0006\u0000\u0000"+ + "\u0c3e\u0c3f\u0007\u0000\u0000\u0000\u0c3f\u0c40\u0007\r\u0000\u0000\u0c40"+ + "\u0c41\u0007\u000b\u0000\u0000\u0c41\u0266\u0001\u0000\u0000\u0000\u0c42"+ + "\u0c43\u0007\u0016\u0000\u0000\u0c43\u0c44\u0007\u0000\u0000\u0000\u0c44"+ + "\u0c45\u0007\t\u0000\u0000\u0c45\u0c46\u0007\t\u0000\u0000\u0c46\u0c47"+ + "\u0007\u0004\u0000\u0000\u0c47\u0c48\u0007\u0007\u0000\u0000\u0c48\u0c49"+ + "\u0007\u0004\u0000\u0000\u0c49\u0c4a\u0007\u000b\u0000\u0000\u0c4a\u0c4b"+ + "\u0007\u0006\u0000\u0000\u0c4b\u0268\u0001\u0000\u0000\u0000\u0c4c\u0c4d"+ + "\u0007\u0016\u0000\u0000\u0c4d\u0c4e\u0007\u0000\u0000\u0000\u0c4e\u0c4f"+ + "\u0007\u0007\u0000\u0000\u0c4f\u0c50\u0007\u0004\u0000\u0000\u0c50\u0c51"+ + "\u0007\u0015\u0000\u0000\u0c51\u0c52\u0007\u0006\u0000\u0000\u0c52\u0c53"+ + "\u0007\u0004\u0000\u0000\u0c53\u0c54\u0007\u0016\u0000\u0000\u0c54\u026a"+ + "\u0001\u0000\u0000\u0000\u0c55\u0c56\u0007\u0004\u0000\u0000\u0c56\u0c57"+ + "\u0007\u0016\u0000\u0000\u0c57\u0c58\u0007\u0018\u0000\u0000\u0c58\u0c59"+ + "\u0007\u0004\u0000\u0000\u0c59\u026c\u0001\u0000\u0000\u0000\u0c5a\u0c5b"+ + "\u0007\u0004\u0000\u0000\u0c5b\u0c5c\u0007\u0016\u0000\u0000\u0c5c\u0c5d"+ + "\u0007\u0018\u0000\u0000\u0c5d\u0c5e\u0007\u0004\u0000\u0000\u0c5e\u0c5f"+ + "\u0007\u0005\u0000\u0000\u0c5f\u026e\u0001\u0000\u0000\u0000\u0c60\u0c61"+ + "\u0007\u0004\u0000\u0000\u0c61\u0c62\u0007\u0003\u0000\u0000\u0c62\u0c63"+ + "\u0007\u0004\u0000\u0000\u0c63\u0c64\u0007\u0001\u0000\u0000\u0c64\u0c65"+ + "\u0007\u0004\u0000\u0000\u0c65\u0c66\u0007\u000b\u0000\u0000\u0c66\u0c67"+ + "\u0007\u0006\u0000\u0000\u0c67\u0270\u0001\u0000\u0000\u0000\u0c68\u0c69"+ + "\u0007\u0004\u0000\u0000\u0c69\u0c6a\u0007\u0003\u0000\u0000\u0c6a\u0c6b"+ + "\u0007\u0004\u0000\u0000\u0c6b\u0c6c\u0007\u0001\u0000\u0000\u0c6c\u0c6d"+ + "\u0007\u0004\u0000\u0000\u0c6d\u0c6e\u0007\u000b\u0000\u0000\u0c6e\u0c6f"+ + "\u0007\u0006\u0000\u0000\u0c6f\u0c70\u0007\u0005\u0000\u0000\u0c70\u0272"+ + "\u0001\u0000\u0000\u0000\u0c71\u0c72\u0007\t\u0000\u0000\u0c72\u0c73\u0007"+ + "\u0000\u0000\u0000\u0c73\u0c74\u0007\u0007\u0000\u0000\u0c74\u0c75\u0007"+ + "\u0005\u0000\u0000\u0c75\u0c76\u0007\u0006\u0000\u0000\u0c76\u0274\u0001"+ + "\u0000\u0000\u0000\u0c77\u0c78\u0007\u0018\u0000\u0000\u0c78\u0c79\u0007"+ + "\u0007\u0000\u0000\u0c79\u0c7a\u0007\n\u0000\u0000\u0c7a\u0c7b\u0007\u0002"+ + "\u0000\u0000\u0c7b\u0c7c\u0007\u001a\u0000\u0000\u0c7c\u0276\u0001\u0000"+ + "\u0000\u0000\u0c7d\u0c7e\u0007\u0018\u0000\u0000\u0c7e\u0c7f\u0007\u0007"+ + "\u0000\u0000\u0c7f\u0c80\u0007\r\u0000\u0000\u0c80\u0c81\u0007\b\u0000"+ + "\u0000\u0c81\u0c82\u0007\u0002\u0000\u0000\u0c82\u0c83\u0007\u0005\u0000"+ + "\u0000\u0c83\u0278\u0001\u0000\u0000\u0000\u0c84\u0c85\u0007\f\u0000\u0000"+ + "\u0c85\u0c86\u0007\u0004\u0000\u0000\u0c86\u0c87\u0007\u0004\u0000\u0000"+ + "\u0c87\u0c88\u0007\u0002\u0000\u0000\u0c88\u027a\u0001\u0000\u0000\u0000"+ + "\u0c89\u0c8a\u0007\u0003\u0000\u0000\u0c8a\u0c8b\u0007\n\u0000\u0000\u0c8b"+ + "\u0c8c\u0007\u0012\u0000\u0000\u0c8c\u0c8d\u0007\u0004\u0000\u0000\u0c8d"+ + "\u0c8e\u0007\u0003\u0000\u0000\u0c8e\u027c\u0001\u0000\u0000\u0000\u0c8f"+ + "\u0c90\u0007\u0003\u0000\u0000\u0c90\u0c91\u0007\n\u0000\u0000\u0c91\u0c92"+ + "\u0007\u0012\u0000\u0000\u0c92\u0c93\u0007\u0004\u0000\u0000\u0c93\u0c94"+ + "\u0007\u0003\u0000\u0000\u0c94\u0c95\u0007\u0004\u0000\u0000\u0c95\u0c96"+ + "\u0007\u0016\u0000\u0000\u0c96\u027e\u0001\u0000\u0000\u0000\u0c97\u0c98"+ + "\u0007\u0003\u0000\u0000\u0c98\u0c99\u0007\n\u0000\u0000\u0c99\u0c9a\u0007"+ + "\u0012\u0000\u0000\u0c9a\u0c9b\u0007\u0004\u0000\u0000\u0c9b\u0c9c\u0007"+ + "\u0003\u0000\u0000\u0c9c\u0c9d\u0007\u0005\u0000\u0000\u0c9d\u0280\u0001"+ + "\u0000\u0000\u0000\u0c9e\u0c9f\u0007\u0003\u0000\u0000\u0c9f\u0ca0\u0007"+ + "\n\u0000\u0000\u0ca0\u0ca1\u0007\u0005\u0000\u0000\u0ca1\u0ca2\u0007\u0006"+ + "\u0000\u0000\u0ca2\u0282\u0001\u0000\u0000\u0000\u0ca3\u0ca4\u0007\u000b"+ + "\u0000\u0000\u0ca4\u0ca5\u0007\t\u0000\u0000\u0ca5\u0ca6\u0007\u0015\u0000"+ + "\u0000\u0ca6\u0284\u0001\u0000\u0000\u0000\u0ca7\u0ca8\u0007\u000b\u0000"+ + "\u0000\u0ca8\u0ca9\u0007\t\u0000\u0000\u0ca9\u0caa\u0007\u0016\u0000\u0000"+ + "\u0caa\u0286\u0001\u0000\u0000\u0000\u0cab\u0cac\u0007\u000b\u0000\u0000"+ + "\u0cac\u0cad\u0007\t\u0000\u0000\u0cad\u0cae\u0007\f\u0000\u0000\u0cae"+ + "\u0caf\u0007\u0015\u0000\u0000\u0caf\u0288\u0001\u0000\u0000\u0000\u0cb0"+ + "\u0cb1\u0007\u000b\u0000\u0000\u0cb1\u0cb2\u0007\t\u0000\u0000\u0cb2\u0cb3"+ + "\u0007\f\u0000\u0000\u0cb3\u0cb4\u0007\u0016\u0000\u0000\u0cb4\u028a\u0001"+ + "\u0000\u0000\u0000\u0cb5\u0cb6\u0007\u000b\u0000\u0000\u0cb6\u0cb7\u0007"+ + "\r\u0000\u0000\u0cb7\u028c\u0001\u0000\u0000\u0000\u0cb8\u0cb9\u0007\u000b"+ + "\u0000\u0000\u0cb9\u0cba\u0007\r\u0000\u0000\u0cba\u0cbb\u0007\u0016\u0000"+ + "\u0000\u0cbb\u0cbc\u0007\u0004\u0000\u0000\u0cbc\u028e\u0001\u0000\u0000"+ + "\u0000\u0cbd\u0cbe\u0007\u000b\u0000\u0000\u0cbe\u0cbf\u0007\r\u0000\u0000"+ + "\u0cbf\u0cc0\u0007\u0007\u0000\u0000\u0cc0\u0cc1\u0007\u0001\u0000\u0000"+ + "\u0cc1\u0cc2\u0007\n\u0000\u0000\u0cc2\u0cc3\u0007\u0003\u0000\u0000\u0cc3"+ + "\u0cc4\u0007\u0000\u0000\u0000\u0cc4\u0cc5\u0007\u001b\u0000\u0000\u0cc5"+ + "\u0cc6\u0007\u0004\u0000\u0000\u0cc6\u0cc7\u0007\u0016\u0000\u0000\u0cc7"+ + "\u0290\u0001\u0000\u0000\u0000\u0cc8\u0cc9\u0007\r\u0000\u0000\u0cc9\u0cca"+ + "\u0007\u000b\u0000\u0000\u0cca\u0ccb\u0007\u0003\u0000\u0000\u0ccb\u0ccc"+ + "\u0007\u0017\u0000\u0000\u0ccc\u0292\u0001\u0000\u0000\u0000\u0ccd\u0cce"+ + "\u0007\r\u0000\u0000\u0cce\u0ccf\u0007\u0007\u0000\u0000\u0ccf\u0cd0\u0007"+ + "\u0016\u0000\u0000\u0cd0\u0cd1\u0007\u0000\u0000\u0000\u0cd1\u0cd2\u0007"+ + "\u000b\u0000\u0000\u0cd2\u0cd3\u0007\n\u0000\u0000\u0cd3\u0cd4\u0007\u0003"+ + "\u0000\u0000\u0cd4\u0cd5\u0007\u0000\u0000\u0000\u0cd5\u0cd6\u0007\u0006"+ + "\u0000\u0000\u0cd6\u0cd7\u0007\u0017\u0000\u0000\u0cd7\u0294\u0001\u0000"+ + "\u0000\u0000\u0cd8\u0cd9\u0007\u0002\u0000\u0000\u0cd9\u0cda\u0007\u0007"+ + "\u0000\u0000\u0cda\u0cdb\u0007\r\u0000\u0000\u0cdb\u0cdc\u0007\u0002\u0000"+ + "\u0000\u0cdc\u0cdd\u0007\u0004\u0000\u0000\u0cdd\u0cde\u0007\u0007\u0000"+ + "\u0000\u0cde\u0cdf\u0007\u0006\u0000\u0000\u0cdf\u0ce0\u0007\u0017\u0000"+ + "\u0000\u0ce0\u0296\u0001\u0000\u0000\u0000\u0ce1\u0ce2\u0007\u0007\u0000"+ + "\u0000\u0ce2\u0ce3\u0007\u0004\u0000\u0000\u0ce3\u0ce4\u0007\n\u0000\u0000"+ + "\u0ce4\u0ce5\u0007\u0016\u0000\u0000\u0ce5\u0298\u0001\u0000\u0000\u0000"+ + "\u0ce6\u0ce7\u0007\u0007\u0000\u0000\u0ce7\u0ce8\u0007\u0004\u0000\u0000"+ + "\u0ce8\u0ce9\u0007\u0003\u0000\u0000\u0ce9\u0cea\u0007\n\u0000\u0000\u0cea"+ + "\u0ceb\u0007\u0006\u0000\u0000\u0ceb\u0cec\u0007\u0000\u0000\u0000\u0cec"+ + "\u0ced\u0007\r\u0000\u0000\u0ced\u0cee\u0007\u000b\u0000\u0000\u0cee\u0cef"+ + "\u0007\u0005\u0000\u0000\u0cef\u0cf0\u0007\u001a\u0000\u0000\u0cf0\u0cf1"+ + "\u0007\u0000\u0000\u0000\u0cf1\u0cf2\u0007\u0002\u0000\u0000\u0cf2\u029a"+ + "\u0001\u0000\u0000\u0000\u0cf3\u0cf4\u0007\u0007\u0000\u0000\u0cf4\u0cf5"+ + "\u0007\u0004\u0000\u0000\u0cf5\u0cf6\u0007\u0003\u0000\u0000\u0cf6\u0cf7"+ + "\u0007\n\u0000\u0000\u0cf7\u0cf8\u0007\u0006\u0000\u0000\u0cf8\u0cf9\u0007"+ + "\u0000\u0000\u0000\u0cf9\u0cfa\u0007\r\u0000\u0000\u0cfa\u0cfb\u0007\u000b"+ + "\u0000\u0000\u0cfb\u0cfc\u0007\u0005\u0000\u0000\u0cfc\u0cfd\u0007\u001a"+ + "\u0000\u0000\u0cfd\u0cfe\u0007\u0000\u0000\u0000\u0cfe\u0cff\u0007\u0002"+ + "\u0000\u0000\u0cff\u0d00\u0007\u0005\u0000\u0000\u0d00\u029c\u0001\u0000"+ + "\u0000\u0000\u0d01\u0d02\u0007\u0007\u0000\u0000\u0d02\u0d03\u0007\u0004"+ + "\u0000\u0000\u0d03\u0d04\u0007\u0002\u0000\u0000\u0d04\u0d05\u0007\u0004"+ + "\u0000\u0000\u0d05\u0d06\u0007\n\u0000\u0000\u0d06\u0d07\u0007\u0006\u0000"+ + "\u0000\u0d07\u0d08\u0007\n\u0000\u0000\u0d08\u0d09\u0007\u0012\u0000\u0000"+ + "\u0d09\u0d0a\u0007\u0003\u0000\u0000\u0d0a\u0d0b\u0007\u0004\u0000\u0000"+ + "\u0d0b\u029e\u0001\u0000\u0000\u0000\u0d0c\u0d0d\u0007\u0005\u0000\u0000"+ + "\u0d0d\u0d0e\u0007\u001a\u0000\u0000\u0d0e\u0d0f\u0007\r\u0000\u0000\u0d0f"+ + "\u0d10\u0007\u0007\u0000\u0000\u0d10\u0d11\u0007\u0006\u0000\u0000\u0d11"+ + "\u0d12\u0007\u0004\u0000\u0000\u0d12\u0d13\u0007\u0005\u0000\u0000\u0d13"+ + "\u0d14\u0007\u0006\u0000\u0000\u0d14\u02a0\u0001\u0000\u0000\u0000\u0d15"+ + "\u0d16\u0007\u0005\u0000\u0000\u0d16\u0d17\u0007\u0000\u0000\u0000\u0d17"+ + "\u0d18\u0007\u0001\u0000\u0000\u0d18\u0d19\u0007\u0002\u0000\u0000\u0d19"+ + "\u0d1a\u0007\u0003\u0000\u0000\u0d1a\u0d1b\u0007\u0004\u0000\u0000\u0d1b"+ + "\u02a2\u0001\u0000\u0000\u0000\u0d1c\u0d1d\u0007\u0005\u0000\u0000\u0d1d"+ + "\u0d1e\u0007\r\u0000\u0000\u0d1e\u0d1f\u0007\b\u0000\u0000\u0d1f\u0d20"+ + "\u0007\u0007\u0000\u0000\u0d20\u0d21\u0007\u0015\u0000\u0000\u0d21\u0d22"+ + "\u0007\u0004\u0000\u0000\u0d22\u02a4\u0001\u0000\u0000\u0000\u0d23\u0d24"+ + "\u0007\u0006\u0000\u0000\u0d24\u0d25\u0007\n\u0000\u0000\u0d25\u0d26\u0007"+ + "\u0012\u0000\u0000\u0d26\u0d27\u0007\u0003\u0000\u0000\u0d27\u0d28\u0007"+ + "\u0004\u0000\u0000\u0d28\u02a6\u0001\u0000\u0000\u0000\u0d29\u0d2a\u0007"+ + "\u0006\u0000\u0000\u0d2a\u0d2b\u0007\u0004\u0000\u0000\u0d2b\u0d2c\u0007"+ + "\u0001\u0000\u0000\u0d2c\u0d2d\u0007\u0002\u0000\u0000\u0d2d\u02a8\u0001"+ + "\u0000\u0000\u0000\u0d2e\u0d2f\u0007\u0006\u0000\u0000\u0d2f\u0d30\u0007"+ + "\r\u0000\u0000\u0d30\u02aa\u0001\u0000\u0000\u0000\u0d31\u0d32\u0007\u0006"+ + "\u0000\u0000\u0d32\u0d33\u0007\u0007\u0000\u0000\u0d33\u0d34\u0007\n\u0000"+ + "\u0000\u0d34\u0d35\u0007\u0000\u0000\u0000\u0d35\u0d36\u0007\u0003\u0000"+ + "\u0000\u0d36\u02ac\u0001\u0000\u0000\u0000\u0d37\u0d38\u0007\u0006\u0000"+ + "\u0000\u0d38\u0d39\u0007\u0007\u0000\u0000\u0d39\u0d3a\u0007\n\u0000\u0000"+ + "\u0d3a\u0d3b\u0007\u000b\u0000\u0000\u0d3b\u0d3c\u0007\u0005\u0000\u0000"+ + "\u0d3c\u0d3d\u0007\n\u0000\u0000\u0d3d\u0d3e\u0007\u0015\u0000\u0000\u0d3e"+ + "\u0d3f\u0007\u0006\u0000\u0000\u0d3f\u0d40\u0007\u0000\u0000\u0000\u0d40"+ + "\u0d41\u0007\r\u0000\u0000\u0d41\u0d42\u0007\u000b\u0000\u0000\u0d42\u02ae"+ + "\u0001\u0000\u0000\u0000\u0d43\u0d44\u0007\u0006\u0000\u0000\u0d44\u0d45"+ + "\u0007\u0017\u0000\u0000\u0d45\u0d46\u0007\u0002\u0000\u0000\u0d46\u0d47"+ + "\u0007\u0004\u0000\u0000\u0d47\u02b0\u0001\u0000\u0000\u0000\u0d48\u0d49"+ + "\u0007\b\u0000\u0000\u0d49\u0d4a\u0007\u000b\u0000\u0000\u0d4a\u0d4b\u0007"+ + "\u0016\u0000\u0000\u0d4b\u0d4c\u0007\u0000\u0000\u0000\u0d4c\u0d4d\u0007"+ + "\u0007\u0000\u0000\u0d4d\u0d4e\u0007\u0004\u0000\u0000\u0d4e\u0d4f\u0007"+ + "\u0015\u0000\u0000\u0d4f\u0d50\u0007\u0006\u0000\u0000\u0d50\u0d51\u0007"+ + "\u0004\u0000\u0000\u0d51\u0d52\u0007\u0016\u0000\u0000\u0d52\u02b2\u0001"+ + "\u0000\u0000\u0000\u0d53\u0d54\u0007\u0019\u0000\u0000\u0d54\u0d55\u0007"+ + "\u0004\u0000\u0000\u0d55\u0d56\u0007\u0007\u0000\u0000\u0d56\u0d57\u0007"+ + "\u0006\u0000\u0000\u0d57\u0d58\u0007\u0004\u0000\u0000\u0d58\u0d59\u0007"+ + "\u0013\u0000\u0000\u0d59\u02b4\u0001\u0000\u0000\u0000\u0d5a\u0d5b\u0007"+ + "\u000e\u0000\u0000\u0d5b\u0d5c\u0007\n\u0000\u0000\u0d5c\u0d5d\u0007\u0003"+ + "\u0000\u0000\u0d5d\u0d5e\u0007\f\u0000\u0000\u0d5e\u02b6\u0001\u0000\u0000"+ + "\u0000\u0d5f\u0d60\u0007\u000e\u0000\u0000\u0d60\u0d61\u0007\u0000\u0000"+ + "\u0000\u0d61\u0d62\u0007\u0006\u0000\u0000\u0d62\u0d63\u0007\u001a\u0000"+ + "\u0000\u0d63\u0d64\u0007\r\u0000\u0000\u0d64\u0d65\u0007\b\u0000\u0000"+ + "\u0d65\u0d66\u0007\u0006\u0000\u0000\u0d66\u02b8\u0001\u0000\u0000\u0000"+ + "\u0d67\u0d68\u0007\u000e\u0000\u0000\u0d68\u0d69\u0007\u0007\u0000\u0000"+ + "\u0d69\u0d6a\u0007\u0000\u0000\u0000\u0d6a\u0d6b\u0007\u0006\u0000\u0000"+ + "\u0d6b\u0d6c\u0007\u0004\u0000\u0000\u0d6c\u02ba\u0001\u0000\u0000\u0000"+ + "\u0d6d\u0d6e\u0007\u001b\u0000\u0000\u0d6e\u0d6f\u0007\r\u0000\u0000\u0d6f"+ + "\u0d70\u0007\u000b\u0000\u0000\u0d70\u0d71\u0007\u0004\u0000\u0000\u0d71"+ + "\u02bc\u0001\u0000\u0000\u0000\u0d72\u0d75\u0003\u02c3\u0161\u0000\u0d73"+ + "\u0d75\u0003\u02c1\u0160\u0000\u0d74\u0d72\u0001\u0000\u0000\u0000\u0d74"+ + "\u0d73\u0001\u0000\u0000\u0000\u0d75\u02be\u0001\u0000\u0000\u0000\u0d76"+ + "\u0d7a\u0003\u02c9\u0164\u0000\u0d77\u0d79\u0003\u02cb\u0165\u0000\u0d78"+ + "\u0d77\u0001\u0000\u0000\u0000\u0d79\u0d7c\u0001\u0000\u0000\u0000\u0d7a"+ + "\u0d78\u0001\u0000\u0000\u0000\u0d7a\u0d7b\u0001\u0000\u0000\u0000\u0d7b"+ + "\u02c0\u0001\u0000\u0000\u0000\u0d7c\u0d7a\u0001\u0000\u0000\u0000\u0d7d"+ + "\u0d7f\u0003\u02cb\u0165\u0000\u0d7e\u0d7d\u0001\u0000\u0000\u0000\u0d7f"+ + "\u0d80\u0001\u0000\u0000\u0000\u0d80\u0d7e\u0001\u0000\u0000\u0000\u0d80"+ + "\u0d81\u0001\u0000\u0000\u0000\u0d81\u02c2\u0001\u0000\u0000\u0000\u0d82"+ + "\u0d85\u0003\t\u0004\u0000\u0d83\u0d85\u0003\u000b\u0005\u0000\u0d84\u0d82"+ + "\u0001\u0000\u0000\u0000\u0d84\u0d83\u0001\u0000\u0000\u0000\u0d85\u02c4"+ + "\u0001\u0000\u0000\u0000\u0d86\u0d87\u0003\u02db\u016d\u0000\u0d87\u0d88"+ + "\u0003\u0003\u0001\u0000\u0d88\u02c6\u0001\u0000\u0000\u0000\u0d89\u0d8a"+ + "\u0003\u0317\u018b\u0000\u0d8a\u0d8b\u0003\u0003\u0001\u0000\u0d8b\u02c8"+ + "\u0001\u0000\u0000\u0000\u0d8c\u0d8f\u0003\u02cd\u0166\u0000\u0d8d\u0d8f"+ + "\u0003\u0363\u01b1\u0000\u0d8e\u0d8c\u0001\u0000\u0000\u0000\u0d8e\u0d8d"+ + "\u0001\u0000\u0000\u0000\u0d8f\u02ca\u0001\u0000\u0000\u0000\u0d90\u0d91"+ + "\u0003\u02cf\u0167\u0000\u0d91\u02cc\u0001\u0000\u0000\u0000\u0d92\u0d93"+ + "\u0007\u001e\u0000\u0000\u0d93\u02ce\u0001\u0000\u0000\u0000\u0d94\u0d95"+ + "\u0007\u001f\u0000\u0000\u0d95\u02d0\u0001\u0000\u0000\u0000\u0d96\u0d97"+ + "\u0005|\u0000\u0000\u0d97\u0d98\u0005+\u0000\u0000\u0d98\u0d99\u0005|"+ + "\u0000\u0000\u0d99\u02d2\u0001\u0000\u0000\u0000\u0d9a\u0d9b\u0005]\u0000"+ + "\u0000\u0d9b\u0d9c\u0005-\u0000\u0000\u0d9c\u0d9d\u0005>\u0000\u0000\u0d9d"+ + "\u02d4\u0001\u0000\u0000\u0000\u0d9e\u0d9f\u0005]\u0000\u0000\u0d9f\u0da0"+ + "\u0005~\u0000\u0000\u0da0\u0da1\u0005>\u0000\u0000\u0da1\u02d6\u0001\u0000"+ + "\u0000\u0000\u0da2\u0da3\u0005|\u0000\u0000\u0da3\u0da4\u0005|\u0000\u0000"+ + "\u0da4\u02d8\u0001\u0000\u0000\u0000\u0da5\u0da6\u0005:\u0000\u0000\u0da6"+ + "\u0da7\u0005:\u0000\u0000\u0da7\u02da\u0001\u0000\u0000\u0000\u0da8\u0da9"+ + "\u0005$\u0000\u0000\u0da9\u0daa\u0005$\u0000\u0000\u0daa\u02dc\u0001\u0000"+ + "\u0000\u0000\u0dab\u0dac\u0005.\u0000\u0000\u0dac\u0dad\u0005.\u0000\u0000"+ + "\u0dad\u02de\u0001\u0000\u0000\u0000\u0dae\u0daf\u0005>\u0000\u0000\u0daf"+ + "\u0db0\u0005=\u0000\u0000\u0db0\u02e0\u0001\u0000\u0000\u0000\u0db1\u0db2"+ + "\u0005<\u0000\u0000\u0db2\u0db3\u0005-\u0000\u0000\u0db3\u02e2\u0001\u0000"+ + "\u0000\u0000\u0db4\u0db5\u0005<\u0000\u0000\u0db5\u0db6\u0005~\u0000\u0000"+ + "\u0db6\u02e4\u0001\u0000\u0000\u0000\u0db7\u0db8\u0005<\u0000\u0000\u0db8"+ + "\u0db9\u0005-\u0000\u0000\u0db9\u0dba\u0005[\u0000\u0000\u0dba\u02e6\u0001"+ + "\u0000\u0000\u0000\u0dbb\u0dbc\u0005<\u0000\u0000\u0dbc\u0dbd\u0005~\u0000"+ + "\u0000\u0dbd\u0dbe\u0005[\u0000\u0000\u0dbe\u02e8\u0001\u0000\u0000\u0000"+ + "\u0dbf\u0dc0\u0005<\u0000\u0000\u0dc0\u0dc1\u0005-\u0000\u0000\u0dc1\u0dc2"+ + "\u0005>\u0000\u0000\u0dc2\u02ea\u0001\u0000\u0000\u0000\u0dc3\u0dc4\u0005"+ + "<\u0000\u0000\u0dc4\u0dc5\u0005-\u0000\u0000\u0dc5\u0dc6\u0005/\u0000"+ + "\u0000\u0dc6\u02ec\u0001\u0000\u0000\u0000\u0dc7\u0dc8\u0005<\u0000\u0000"+ + "\u0dc8\u0dc9\u0005~\u0000\u0000\u0dc9\u0dca\u0005/\u0000\u0000\u0dca\u02ee"+ + "\u0001\u0000\u0000\u0000\u0dcb\u0dcc\u0005<\u0000\u0000\u0dcc\u0dcd\u0005"+ + "=\u0000\u0000\u0dcd\u02f0\u0001\u0000\u0000\u0000\u0dce\u0dcf\u0005-\u0000"+ + "\u0000\u0dcf\u0dd0\u0005[\u0000\u0000\u0dd0\u02f2\u0001\u0000\u0000\u0000"+ + "\u0dd1\u0dd2\u0005-\u0000\u0000\u0dd2\u0dd3\u0005/\u0000\u0000\u0dd3\u02f4"+ + "\u0001\u0000\u0000\u0000\u0dd4\u0dd5\u0005<\u0000\u0000\u0dd5\u0dd6\u0005"+ + ">\u0000\u0000\u0dd6\u02f6\u0001\u0000\u0000\u0000\u0dd7\u0dd8\u0005-\u0000"+ + "\u0000\u0dd8\u0dd9\u0005>\u0000\u0000\u0dd9\u02f8\u0001\u0000\u0000\u0000"+ + "\u0dda\u0ddb\u0005]\u0000\u0000\u0ddb\u0ddc\u0005-\u0000\u0000\u0ddc\u02fa"+ + "\u0001\u0000\u0000\u0000\u0ddd\u0dde\u0005]\u0000\u0000\u0dde\u0ddf\u0005"+ + "~\u0000\u0000\u0ddf\u02fc\u0001\u0000\u0000\u0000\u0de0\u0de1\u0005=\u0000"+ + "\u0000\u0de1\u0de2\u0005>\u0000\u0000\u0de2\u02fe\u0001\u0000\u0000\u0000"+ + "\u0de3\u0de4\u0005/\u0000\u0000\u0de4\u0de5\u0005-\u0000\u0000\u0de5\u0300"+ + "\u0001\u0000\u0000\u0000\u0de6\u0de7\u0005/\u0000\u0000\u0de7\u0de8\u0005"+ + "-\u0000\u0000\u0de8\u0de9\u0005>\u0000\u0000\u0de9\u0302\u0001\u0000\u0000"+ + "\u0000\u0dea\u0deb\u0005/\u0000\u0000\u0deb\u0dec\u0005~\u0000\u0000\u0dec"+ + "\u0304\u0001\u0000\u0000\u0000\u0ded\u0dee\u0005/\u0000\u0000\u0dee\u0def"+ + "\u0005~\u0000\u0000\u0def\u0df0\u0005>\u0000\u0000\u0df0\u0306\u0001\u0000"+ + "\u0000\u0000\u0df1\u0df2\u0005~\u0000\u0000\u0df2\u0df3\u0005[\u0000\u0000"+ + "\u0df3\u0308\u0001\u0000\u0000\u0000\u0df4\u0df5\u0005~\u0000\u0000\u0df5"+ + "\u0df6\u0005>\u0000\u0000\u0df6\u030a\u0001\u0000\u0000\u0000\u0df7\u0df8"+ + "\u0005~\u0000\u0000\u0df8\u0df9\u0005/\u0000\u0000\u0df9\u030c\u0001\u0000"+ + "\u0000\u0000\u0dfa\u0dfb\u0005&\u0000\u0000\u0dfb\u030e\u0001\u0000\u0000"+ + "\u0000\u0dfc\u0dfd\u0005*\u0000\u0000\u0dfd\u0310\u0001\u0000\u0000\u0000"+ + "\u0dfe\u0dff\u0005:\u0000\u0000\u0dff\u0312\u0001\u0000\u0000\u0000\u0e00"+ + "\u0e01\u0005,\u0000\u0000\u0e01\u0314\u0001\u0000\u0000\u0000\u0e02\u0e03"+ + "\u0005@\u0000\u0000\u0e03\u0316\u0001\u0000\u0000\u0000\u0e04\u0e05\u0005"+ + "$\u0000\u0000\u0e05\u0318\u0001\u0000\u0000\u0000\u0e06\u0e07\u0005\""+ + "\u0000\u0000\u0e07\u031a\u0001\u0000\u0000\u0000\u0e08\u0e09\u0005=\u0000"+ + "\u0000\u0e09\u031c\u0001\u0000\u0000\u0000\u0e0a\u0e0b\u0005!\u0000\u0000"+ + "\u0e0b\u031e\u0001\u0000\u0000\u0000\u0e0c\u0e0d\u0005>\u0000\u0000\u0e0d"+ + "\u0320\u0001\u0000\u0000\u0000\u0e0e\u0e0f\u0005`\u0000\u0000\u0e0f\u0322"+ + "\u0001\u0000\u0000\u0000\u0e10\u0e11\u0005{\u0000\u0000\u0e11\u0324\u0001"+ + "\u0000\u0000\u0000\u0e12\u0e13\u0005[\u0000\u0000\u0e13\u0326\u0001\u0000"+ + "\u0000\u0000\u0e14\u0e15\u0005(\u0000\u0000\u0e15\u0328\u0001\u0000\u0000"+ + "\u0000\u0e16\u0e17\u0005<\u0000\u0000\u0e17\u032a\u0001\u0000\u0000\u0000"+ + "\u0e18\u0e19\u0005-\u0000\u0000\u0e19\u032c\u0001\u0000\u0000\u0000\u0e1a"+ + "\u0e1b\u0005%\u0000\u0000\u0e1b\u032e\u0001\u0000\u0000\u0000\u0e1c\u0e1d"+ + "\u0005.\u0000\u0000\u0e1d\u0330\u0001\u0000\u0000\u0000\u0e1e\u0e1f\u0005"+ + "+\u0000\u0000\u0e1f\u0332\u0001\u0000\u0000\u0000\u0e20\u0e21\u0005?\u0000"+ + "\u0000\u0e21\u0334\u0001\u0000\u0000\u0000\u0e22\u0e23\u0005\'\u0000\u0000"+ + "\u0e23\u0336\u0001\u0000\u0000\u0000\u0e24\u0e25\u0005\\\u0000\u0000\u0e25"+ + "\u0338\u0001\u0000\u0000\u0000\u0e26\u0e27\u0005}\u0000\u0000\u0e27\u033a"+ + "\u0001\u0000\u0000\u0000\u0e28\u0e29\u0005]\u0000\u0000\u0e29\u033c\u0001"+ + "\u0000\u0000\u0000\u0e2a\u0e2b\u0005)\u0000\u0000\u0e2b\u033e\u0001\u0000"+ + "\u0000\u0000\u0e2c\u0e2d\u0005/\u0000\u0000\u0e2d\u0340\u0001\u0000\u0000"+ + "\u0000\u0e2e\u0e2f\u0005~\u0000\u0000\u0e2f\u0342\u0001\u0000\u0000\u0000"+ + "\u0e30\u0e31\u0005_\u0000\u0000\u0e31\u0344\u0001\u0000\u0000\u0000\u0e32"+ + "\u0e33\u0005|\u0000\u0000\u0e33\u0346\u0001\u0000\u0000\u0000\u0e34\u0e35"+ + "\u0007 \u0000\u0000\u0e35\u0348\u0001\u0000\u0000\u0000\u0e36\u0e37\u0007"+ + "!\u0000\u0000\u0e37\u034a\u0001\u0000\u0000\u0000\u0e38\u0e39\u0007\""+ + "\u0000\u0000\u0e39\u034c\u0001\u0000\u0000\u0000\u0e3a\u0e3b\u0007#\u0000"+ + "\u0000\u0e3b\u034e\u0001\u0000\u0000\u0000\u0e3c\u0e3e\u0003\u0351\u01a8"+ + "\u0000\u0e3d\u0e3c\u0001\u0000\u0000\u0000\u0e3e\u0e3f\u0001\u0000\u0000"+ + "\u0000\u0e3f\u0e3d\u0001\u0000\u0000\u0000\u0e3f\u0e40\u0001\u0000\u0000"+ + "\u0000\u0e40\u0e41\u0001\u0000\u0000\u0000\u0e41\u0e42\u0006\u01a7\u0000"+ + "\u0000\u0e42\u0350\u0001\u0000\u0000\u0000\u0e43\u0e4f\u0003\u0361\u01b0"+ + "\u0000\u0e44\u0e4f\u0003\u0365\u01b2\u0000\u0e45\u0e4f\u0003\u0367\u01b3"+ + "\u0000\u0e46\u0e4f\u0003\u0369\u01b4\u0000\u0e47\u0e4f\u0003\u036d\u01b6"+ + "\u0000\u0e48\u0e4f\u0003\u035d\u01ae\u0000\u0e49\u0e4f\u0003\u035b\u01ad"+ + "\u0000\u0e4a\u0e4f\u0003\u0359\u01ac\u0000\u0e4b\u0e4f\u0003\u036f\u01b7"+ + "\u0000\u0e4c\u0e4f\u0003\u036b\u01b5\u0000\u0e4d\u0e4f\u0007$\u0000\u0000"+ + "\u0e4e\u0e43\u0001\u0000\u0000\u0000\u0e4e\u0e44\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e45\u0001\u0000\u0000\u0000\u0e4e\u0e46\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e47\u0001\u0000\u0000\u0000\u0e4e\u0e48\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e49\u0001\u0000\u0000\u0000\u0e4e\u0e4a\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e4b\u0001\u0000\u0000\u0000\u0e4e\u0e4c\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e4d\u0001\u0000\u0000\u0000\u0e4f\u0352\u0001\u0000\u0000\u0000"+ + "\u0e50\u0e51\u0005/\u0000\u0000\u0e51\u0e52\u0005*\u0000\u0000\u0e52\u0e56"+ + "\u0001\u0000\u0000\u0000\u0e53\u0e55\t\u0000\u0000\u0000\u0e54\u0e53\u0001"+ + "\u0000\u0000\u0000\u0e55\u0e58\u0001\u0000\u0000\u0000\u0e56\u0e57\u0001"+ + "\u0000\u0000\u0000\u0e56\u0e54\u0001\u0000\u0000\u0000\u0e57\u0e59\u0001"+ + "\u0000\u0000\u0000\u0e58\u0e56\u0001\u0000\u0000\u0000\u0e59\u0e5a\u0005"+ + "*\u0000\u0000\u0e5a\u0e5b\u0005/\u0000\u0000\u0e5b\u0e5c\u0001\u0000\u0000"+ + "\u0000\u0e5c\u0e5d\u0006\u01a9\u0000\u0000\u0e5d\u0354\u0001\u0000\u0000"+ + "\u0000\u0e5e\u0e5f\u0005/\u0000\u0000\u0e5f\u0e60\u0005/\u0000\u0000\u0e60"+ + "\u0e64\u0001\u0000\u0000\u0000\u0e61\u0e63\b%\u0000\u0000\u0e62\u0e61"+ + "\u0001\u0000\u0000\u0000\u0e63\u0e66\u0001\u0000\u0000\u0000\u0e64\u0e62"+ + "\u0001\u0000\u0000\u0000\u0e64\u0e65\u0001\u0000\u0000\u0000\u0e65\u0e67"+ + "\u0001\u0000\u0000\u0000\u0e66\u0e64\u0001\u0000\u0000\u0000\u0e67\u0e68"+ + "\u0006\u01aa\u0000\u0000\u0e68\u0356\u0001\u0000\u0000\u0000\u0e69\u0e6a"+ + "\u0005-\u0000\u0000\u0e6a\u0e6b\u0005-\u0000\u0000\u0e6b\u0e6f\u0001\u0000"+ + "\u0000\u0000\u0e6c\u0e6e\b%\u0000\u0000\u0e6d\u0e6c\u0001\u0000\u0000"+ + "\u0000\u0e6e\u0e71\u0001\u0000\u0000\u0000\u0e6f\u0e6d\u0001\u0000\u0000"+ + "\u0000\u0e6f\u0e70\u0001\u0000\u0000\u0000\u0e70\u0e72\u0001\u0000\u0000"+ + "\u0000\u0e71\u0e6f\u0001\u0000\u0000\u0000\u0e72\u0e73\u0006\u01ab\u0000"+ + "\u0000\u0e73\u0358\u0001\u0000\u0000\u0000\u0e74\u0e75\u0007&\u0000\u0000"+ + "\u0e75\u035a\u0001\u0000\u0000\u0000\u0e76\u0e77\u0007\'\u0000\u0000\u0e77"+ + "\u035c\u0001\u0000\u0000\u0000\u0e78\u0e79\u0007(\u0000\u0000\u0e79\u035e"+ + "\u0001\u0000\u0000\u0000\u0e7a\u0e7b\u0007)\u0000\u0000\u0e7b\u0360\u0001"+ + "\u0000\u0000\u0000\u0e7c\u0e7d\u0007*\u0000\u0000\u0e7d\u0362\u0001\u0000"+ + "\u0000\u0000\u0e7e\u0e7f\u0007+\u0000\u0000\u0e7f\u0364\u0001\u0000\u0000"+ + "\u0000\u0e80\u0e81\u0007,\u0000\u0000\u0e81\u0366\u0001\u0000\u0000\u0000"+ + "\u0e82\u0e83\u0007-\u0000\u0000\u0e83\u0368\u0001\u0000\u0000\u0000\u0e84"+ + "\u0e85\u0007.\u0000\u0000\u0e85\u036a\u0001\u0000\u0000\u0000\u0e86\u0e87"+ + "\u0007/\u0000\u0000\u0e87\u036c\u0001\u0000\u0000\u0000\u0e88\u0e89\u0007"+ + "0\u0000\u0000\u0e89\u036e\u0001\u0000\u0000\u0000\u0e8a\u0e8b\u00071\u0000"+ + "\u0000\u0e8b\u0370\u0001\u0000\u0000\u0000*\u0000\u0379\u038d\u0390\u0395"+ + "\u039a\u03a4\u03ad\u03b6\u03bd\u03bf\u03c3\u03c5\u03c9\u03cb\u03d8\u040a"+ + "\u0411\u0418\u041d\u043a\u043f\u044a\u0451\u0456\u045a\u0462\u0467\u046d"+ + "\u0472\u0478\u047d\u0d74\u0d7a\u0d80\u0d84\u0d8e\u0e3f\u0e4e\u0e56\u0e64"+ + "\u0e6f\u0001\u0000\u0001\u0000"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_20240412Lexer.tokens b/developer/javac/ANTLR/GQL_20240412Lexer.tokens new file mode 100644 index 0000000..275f4fc --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240412Lexer.tokens @@ -0,0 +1,755 @@ +IMPLIES=1 +BOOLEAN_LITERAL=2 +SINGLE_QUOTED_CHARACTER_SEQUENCE=3 +DOUBLE_QUOTED_CHARACTER_SEQUENCE=4 +ACCENT_QUOTED_CHARACTER_SEQUENCE=5 +NO_ESCAPE=6 +BYTE_STRING_LITERAL=7 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX=8 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX=9 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=10 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX=11 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX=12 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=13 +UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX=14 +UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX=15 +UNSIGNED_DECIMAL_INTEGER=16 +UNSIGNED_HEXADECIMAL_INTEGER=17 +UNSIGNED_OCTAL_INTEGER=18 +UNSIGNED_BINARY_INTEGER=19 +ABS=20 +ACOS=21 +ALL=22 +ALL_DIFFERENT=23 +AND=24 +ANY=25 +ARRAY=26 +AS=27 +ASC=28 +ASCENDING=29 +ASIN=30 +AT=31 +ATAN=32 +AVG=33 +BIG=34 +BIGINT=35 +BINARY=36 +BOOL=37 +BOOLEAN=38 +BOTH=39 +BTRIM=40 +BY=41 +BYTE_LENGTH=42 +BYTES=43 +CALL=44 +CARDINALITY=45 +CASE=46 +CAST=47 +CEIL=48 +CEILING=49 +CHAR=50 +CHAR_LENGTH=51 +CHARACTER_LENGTH=52 +CHARACTERISTICS=53 +CLOSE=54 +COALESCE=55 +COLLECT_LIST=56 +COMMIT=57 +COPY=58 +COS=59 +COSH=60 +COT=61 +COUNT=62 +CREATE=63 +CURRENT_DATE=64 +CURRENT_GRAPH=65 +CURRENT_PROPERTY_GRAPH=66 +CURRENT_SCHEMA=67 +CURRENT_TIME=68 +CURRENT_TIMESTAMP=69 +DATE=70 +DATETIME=71 +DAY=72 +DEC=73 +DECIMAL=74 +DEGREES=75 +DELETE=76 +DESC=77 +DESCENDING=78 +DETACH=79 +DISTINCT=80 +DOUBLE=81 +DROP=82 +DURATION=83 +DURATION_BETWEEN=84 +ELEMENT_ID=85 +ELSE=86 +END=87 +EXCEPT=88 +EXISTS=89 +EXP=90 +FILTER=91 +FINISH=92 +FLOAT=93 +FLOAT16=94 +FLOAT32=95 +FLOAT64=96 +FLOAT128=97 +FLOAT256=98 +FLOOR=99 +FOR=100 +FROM=101 +GROUP=102 +HAVING=103 +HOME_GRAPH=104 +HOME_PROPERTY_GRAPH=105 +HOME_SCHEMA=106 +HOUR=107 +IF=108 +IN=109 +INSERT=110 +INT=111 +INTEGER=112 +INT8=113 +INTEGER8=114 +INT16=115 +INTEGER16=116 +INT32=117 +INTEGER32=118 +INT64=119 +INTEGER64=120 +INT128=121 +INTEGER128=122 +INT256=123 +INTEGER256=124 +INTERSECT=125 +INTERVAL=126 +IS=127 +LEADING=128 +LEFT=129 +LET=130 +LIKE=131 +LIMIT=132 +LIST=133 +LN=134 +LOCAL=135 +LOCAL_DATETIME=136 +LOCAL_TIME=137 +LOCAL_TIMESTAMP=138 +LOG=139 +LOG10=140 +LOWER=141 +LTRIM=142 +MATCH=143 +MAX=144 +MIN=145 +MINUTE=146 +MOD=147 +MONTH=148 +NEXT=149 +NODETACH=150 +NORMALIZE=151 +NOT=152 +NOTHING=153 +NULL=154 +NULLS=155 +NULLIF=156 +OCTET_LENGTH=157 +OF=158 +OFFSET=159 +OPTIONAL=160 +OR=161 +ORDER=162 +OTHERWISE=163 +PARAMETER=164 +PARAMETERS=165 +PATH=166 +PATH_LENGTH=167 +PATHS=168 +PERCENTILE_CONT=169 +PERCENTILE_DISC=170 +POWER=171 +PRECISION=172 +PROPERTY_EXISTS=173 +RADIANS=174 +REAL=175 +RECORD=176 +REMOVE=177 +REPLACE=178 +RESET=179 +RETURN=180 +RIGHT=181 +ROLLBACK=182 +RTRIM=183 +SAME=184 +SCHEMA=185 +SECOND=186 +SELECT=187 +SESSION=188 +SESSION_USER=189 +SET=190 +SIGNED=191 +SIN=192 +SINH=193 +SIZE=194 +SKIP_RESERVED_WORD=195 +SMALL=196 +SMALLINT=197 +SQRT=198 +START=199 +STDDEV_POP=200 +STDDEV_SAMP=201 +STRING=202 +SUM=203 +TAN=204 +TANH=205 +THEN=206 +TIME=207 +TIMESTAMP=208 +TRAILING=209 +TRIM=210 +TYPED=211 +UBIGINT=212 +UINT=213 +UINT8=214 +UINT16=215 +UINT32=216 +UINT64=217 +UINT128=218 +UINT256=219 +UNION=220 +UNSIGNED=221 +UPPER=222 +USE=223 +USMALLINT=224 +VALUE=225 +VARBINARY=226 +VARCHAR=227 +VARIABLE=228 +WHEN=229 +WHERE=230 +WITH=231 +XOR=232 +YEAR=233 +YIELD=234 +ZONED=235 +ZONED_DATETIME=236 +ZONED_TIME=237 +ABSTRACT=238 +AGGREGATE=239 +AGGREGATES=240 +ALTER=241 +CATALOG=242 +CLEAR=243 +CLONE=244 +CONSTRAINT=245 +CURRENT_ROLE=246 +CURRENT_USER=247 +DATA=248 +DIRECTORY=249 +DRYRUN=250 +EXACT=251 +EXISTING=252 +FUNCTION=253 +GQLSTATUS=254 +GRANT=255 +INSTANT=256 +INFINITY=257 +NUMBER=258 +NUMERIC=259 +ON=260 +OPEN=261 +PARTITION=262 +PROCEDURE=263 +PRODUCT=264 +PROJECT=265 +QUERY=266 +RECORDS=267 +REFERENCE=268 +RENAME=269 +REVOKE=270 +SUBSTRING=271 +SYSTEM_USER=272 +TEMPORAL=273 +UNIQUE=274 +UNIT=275 +VALUES=276 +ACYCLIC=277 +BINDING=278 +BINDINGS=279 +CONNECTING=280 +DESTINATION=281 +DIFFERENT=282 +DIRECTED=283 +EDGE=284 +EDGES=285 +ELEMENT=286 +ELEMENTS=287 +FIRST=288 +GRAPH=289 +GROUPS=290 +KEEP=291 +LABEL=292 +LABELED=293 +LABELS=294 +LAST=295 +NFC=296 +NFD=297 +NFKC=298 +NFKD=299 +NO=300 +NODE=301 +NORMALIZED=302 +ONLY=303 +ORDINALITY=304 +PROPERTY=305 +READ=306 +RELATIONSHIP=307 +RELATIONSHIPS=308 +REPEATABLE=309 +SHORTEST=310 +SIMPLE=311 +SOURCE=312 +TABLE=313 +TEMP=314 +TO=315 +TRAIL=316 +TRANSACTION=317 +TYPE=318 +UNDIRECTED=319 +VERTEX=320 +WALK=321 +WITHOUT=322 +WRITE=323 +ZONE=324 +REGULAR_IDENTIFIER=325 +SUBSTITUTED_PARAMETER_REFERENCE=326 +GENERAL_PARAMETER_REFERENCE=327 +MULTISET_ALTERNATION_OPERATOR=328 +BRACKET_RIGHT_ARROW=329 +BRACKET_TILDE_RIGHT_ARROW=330 +CONCATENATION_OPERATOR=331 +DOUBLE_COLON=332 +DOUBLE_DOLLAR_SIGN=333 +DOUBLE_PERIOD=334 +GREATER_THAN_OR_EQUALS_OPERATOR=335 +LEFT_ARROW=336 +LEFT_ARROW_TILDE=337 +LEFT_ARROW_BRACKET=338 +LEFT_ARROW_TILDE_BRACKET=339 +LEFT_MINUS_RIGHT=340 +LEFT_MINUS_SLASH=341 +LEFT_TILDE_SLASH=342 +LESS_THAN_OR_EQUALS_OPERATOR=343 +MINUS_LEFT_BRACKET=344 +MINUS_SLASH=345 +NOT_EQUALS_OPERATOR=346 +RIGHT_ARROW=347 +RIGHT_BRACKET_MINUS=348 +RIGHT_BRACKET_TILDE=349 +RIGHT_DOUBLE_ARROW=350 +SLASH_MINUS=351 +SLASH_MINUS_RIGHT=352 +SLASH_TILDE=353 +SLASH_TILDE_RIGHT=354 +TILDE_LEFT_BRACKET=355 +TILDE_RIGHT_ARROW=356 +TILDE_SLASH=357 +AMPERSAND=358 +ASTERISK=359 +COLON=360 +COMMA=361 +COMMERCIAL_AT=362 +DOLLAR_SIGN=363 +DOUBLE_QUOTE=364 +EQUALS_OPERATOR=365 +EXCLAMATION_MARK=366 +RIGHT_ANGLE_BRACKET=367 +GRAVE_ACCENT=368 +LEFT_BRACE=369 +LEFT_BRACKET=370 +LEFT_PAREN=371 +LEFT_ANGLE_BRACKET=372 +MINUS_SIGN=373 +PERCENT=374 +PERIOD=375 +PLUS_SIGN=376 +QUESTION_MARK=377 +QUOTE=378 +REVERSE_SOLIDUS=379 +RIGHT_BRACE=380 +RIGHT_BRACKET=381 +RIGHT_PAREN=382 +SOLIDUS=383 +TILDE=384 +UNDERSCORE=385 +VERTICAL_BAR=386 +SP=387 +WHITESPACE=388 +BRACKETED_COMMENT=389 +SIMPLE_COMMENT_SOLIDUS=390 +SIMPLE_COMMENT_MINUS=391 +'ABS'=20 +'ACOS'=21 +'ALL'=22 +'ALL_DIFFERENT'=23 +'AND'=24 +'ANY'=25 +'ARRAY'=26 +'AS'=27 +'ASC'=28 +'ASCENDING'=29 +'ASIN'=30 +'AT'=31 +'ATAN'=32 +'AVG'=33 +'BIG'=34 +'BIGINT'=35 +'BINARY'=36 +'BOOL'=37 +'BOOLEAN'=38 +'BOTH'=39 +'BTRIM'=40 +'BY'=41 +'BYTE_LENGTH'=42 +'BYTES'=43 +'CALL'=44 +'CARDINALITY'=45 +'CASE'=46 +'CAST'=47 +'CEIL'=48 +'CEILING'=49 +'CHAR'=50 +'CHAR_LENGTH'=51 +'CHARACTER_LENGTH'=52 +'CHARACTERISTICS'=53 +'CLOSE'=54 +'COALESCE'=55 +'COLLECT_LIST'=56 +'COMMIT'=57 +'COPY'=58 +'COS'=59 +'COSH'=60 +'COT'=61 +'COUNT'=62 +'CREATE'=63 +'CURRENT_DATE'=64 +'CURRENT_GRAPH'=65 +'CURRENT_PROPERTY_GRAPH'=66 +'CURRENT_SCHEMA'=67 +'CURRENT_TIME'=68 +'CURRENT_TIMESTAMP'=69 +'DATE'=70 +'DATETIME'=71 +'DAY'=72 +'DEC'=73 +'DECIMAL'=74 +'DEGREES'=75 +'DELETE'=76 +'DESC'=77 +'DESCENDING'=78 +'DETACH'=79 +'DISTINCT'=80 +'DOUBLE'=81 +'DROP'=82 +'DURATION'=83 +'DURATION_BETWEEN'=84 +'ELEMENT_ID'=85 +'ELSE'=86 +'END'=87 +'EXCEPT'=88 +'EXISTS'=89 +'EXP'=90 +'FILTER'=91 +'FINISH'=92 +'FLOAT'=93 +'FLOAT16'=94 +'FLOAT32'=95 +'FLOAT64'=96 +'FLOAT128'=97 +'FLOAT256'=98 +'FLOOR'=99 +'FOR'=100 +'FROM'=101 +'GROUP'=102 +'HAVING'=103 +'HOME_GRAPH'=104 +'HOME_PROPERTY_GRAPH'=105 +'HOME_SCHEMA'=106 +'HOUR'=107 +'IF'=108 +'IN'=109 +'INSERT'=110 +'INT'=111 +'INTEGER'=112 +'INT8'=113 +'INTEGER8'=114 +'INT16'=115 +'INTEGER16'=116 +'INT32'=117 +'INTEGER32'=118 +'INT64'=119 +'INTEGER64'=120 +'INT128'=121 +'INTEGER128'=122 +'INT256'=123 +'INTEGER256'=124 +'INTERSECT'=125 +'INTERVAL'=126 +'IS'=127 +'LEADING'=128 +'LEFT'=129 +'LET'=130 +'LIKE'=131 +'LIMIT'=132 +'LIST'=133 +'LN'=134 +'LOCAL'=135 +'LOCAL_DATETIME'=136 +'LOCAL_TIME'=137 +'LOCAL_TIMESTAMP'=138 +'LOG'=139 +'LOG10'=140 +'LOWER'=141 +'LTRIM'=142 +'MATCH'=143 +'MAX'=144 +'MIN'=145 +'MINUTE'=146 +'MOD'=147 +'MONTH'=148 +'NEXT'=149 +'NODETACH'=150 +'NORMALIZE'=151 +'NOT'=152 +'NOTHING'=153 +'NULL'=154 +'NULLS'=155 +'NULLIF'=156 +'OCTET_LENGTH'=157 +'OF'=158 +'OFFSET'=159 +'OPTIONAL'=160 +'OR'=161 +'ORDER'=162 +'OTHERWISE'=163 +'PARAMETER'=164 +'PARAMETERS'=165 +'PATH'=166 +'PATH_LENGTH'=167 +'PATHS'=168 +'PERCENTILE_CONT'=169 +'PERCENTILE_DISC'=170 +'POWER'=171 +'PRECISION'=172 +'PROPERTY_EXISTS'=173 +'RADIANS'=174 +'REAL'=175 +'RECORD'=176 +'REMOVE'=177 +'REPLACE'=178 +'RESET'=179 +'RETURN'=180 +'RIGHT'=181 +'ROLLBACK'=182 +'RTRIM'=183 +'SAME'=184 +'SCHEMA'=185 +'SECOND'=186 +'SELECT'=187 +'SESSION'=188 +'SESSION_USER'=189 +'SET'=190 +'SIGNED'=191 +'SIN'=192 +'SINH'=193 +'SIZE'=194 +'SKIP'=195 +'SMALL'=196 +'SMALLINT'=197 +'SQRT'=198 +'START'=199 +'STDDEV_POP'=200 +'STDDEV_SAMP'=201 +'STRING'=202 +'SUM'=203 +'TAN'=204 +'TANH'=205 +'THEN'=206 +'TIME'=207 +'TIMESTAMP'=208 +'TRAILING'=209 +'TRIM'=210 +'TYPED'=211 +'UBIGINT'=212 +'UINT'=213 +'UINT8'=214 +'UINT16'=215 +'UINT32'=216 +'UINT64'=217 +'UINT128'=218 +'UINT256'=219 +'UNION'=220 +'UNSIGNED'=221 +'UPPER'=222 +'USE'=223 +'USMALLINT'=224 +'VALUE'=225 +'VARBINARY'=226 +'VARCHAR'=227 +'VARIABLE'=228 +'WHEN'=229 +'WHERE'=230 +'WITH'=231 +'XOR'=232 +'YEAR'=233 +'YIELD'=234 +'ZONED'=235 +'ZONED_DATETIME'=236 +'ZONED_TIME'=237 +'ABSTRACT'=238 +'AGGREGATE'=239 +'AGGREGATES'=240 +'ALTER'=241 +'CATALOG'=242 +'CLEAR'=243 +'CLONE'=244 +'CONSTRAINT'=245 +'CURRENT_ROLE'=246 +'CURRENT_USER'=247 +'DATA'=248 +'DIRECTORY'=249 +'DRYRUN'=250 +'EXACT'=251 +'EXISTING'=252 +'FUNCTION'=253 +'GQLSTATUS'=254 +'GRANT'=255 +'INSTANT'=256 +'INFINITY'=257 +'NUMBER'=258 +'NUMERIC'=259 +'ON'=260 +'OPEN'=261 +'PARTITION'=262 +'PROCEDURE'=263 +'PRODUCT'=264 +'PROJECT'=265 +'QUERY'=266 +'RECORDS'=267 +'REFERENCE'=268 +'RENAME'=269 +'REVOKE'=270 +'SUBSTRING'=271 +'SYSTEM_USER'=272 +'TEMPORAL'=273 +'UNIQUE'=274 +'UNIT'=275 +'VALUES'=276 +'ACYCLIC'=277 +'BINDING'=278 +'BINDINGS'=279 +'CONNECTING'=280 +'DESTINATION'=281 +'DIFFERENT'=282 +'DIRECTED'=283 +'EDGE'=284 +'EDGES'=285 +'ELEMENT'=286 +'ELEMENTS'=287 +'FIRST'=288 +'GRAPH'=289 +'GROUPS'=290 +'KEEP'=291 +'LABEL'=292 +'LABELED'=293 +'LABELS'=294 +'LAST'=295 +'NFC'=296 +'NFD'=297 +'NFKC'=298 +'NFKD'=299 +'NO'=300 +'NODE'=301 +'NORMALIZED'=302 +'ONLY'=303 +'ORDINALITY'=304 +'PROPERTY'=305 +'READ'=306 +'RELATIONSHIP'=307 +'RELATIONSHIPS'=308 +'REPEATABLE'=309 +'SHORTEST'=310 +'SIMPLE'=311 +'SOURCE'=312 +'TABLE'=313 +'TEMP'=314 +'TO'=315 +'TRAIL'=316 +'TRANSACTION'=317 +'TYPE'=318 +'UNDIRECTED'=319 +'VERTEX'=320 +'WALK'=321 +'WITHOUT'=322 +'WRITE'=323 +'ZONE'=324 +'|+|'=328 +']->'=329 +']~>'=330 +'||'=331 +'::'=332 +'$$'=333 +'..'=334 +'>='=335 +'<-'=336 +'<~'=337 +'<-['=338 +'<~['=339 +'<->'=340 +'<-/'=341 +'<~/'=342 +'<='=343 +'-['=344 +'-/'=345 +'<>'=346 +'->'=347 +']-'=348 +']~'=349 +'=>'=350 +'/-'=351 +'/->'=352 +'/~'=353 +'/~>'=354 +'~['=355 +'~>'=356 +'~/'=357 +'&'=358 +'*'=359 +':'=360 +','=361 +'@'=362 +'$'=363 +'"'=364 +'='=365 +'!'=366 +'>'=367 +'`'=368 +'{'=369 +'['=370 +'('=371 +'<'=372 +'-'=373 +'%'=374 +'.'=375 +'+'=376 +'?'=377 +'\''=378 +'\\'=379 +'}'=380 +']'=381 +')'=382 +'/'=383 +'~'=384 +'_'=385 +'|'=386 diff --git a/developer/javac/ANTLR/GQL_20240412Listener.java b/developer/javac/ANTLR/GQL_20240412Listener.java new file mode 100644 index 0000000..283c0c7 --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240412Listener.java @@ -0,0 +1,6197 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link GQL_20240412Parser}. + */ +public interface GQL_20240412Listener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#gqlProgram}. + * @param ctx the parse tree + */ + void enterGqlProgram(GQL_20240412Parser.GqlProgramContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#gqlProgram}. + * @param ctx the parse tree + */ + void exitGqlProgram(GQL_20240412Parser.GqlProgramContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#programActivity}. + * @param ctx the parse tree + */ + void enterProgramActivity(GQL_20240412Parser.ProgramActivityContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#programActivity}. + * @param ctx the parse tree + */ + void exitProgramActivity(GQL_20240412Parser.ProgramActivityContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionActivity}. + * @param ctx the parse tree + */ + void enterSessionActivity(GQL_20240412Parser.SessionActivityContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionActivity}. + * @param ctx the parse tree + */ + void exitSessionActivity(GQL_20240412Parser.SessionActivityContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#transactionActivity}. + * @param ctx the parse tree + */ + void enterTransactionActivity(GQL_20240412Parser.TransactionActivityContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#transactionActivity}. + * @param ctx the parse tree + */ + void exitTransactionActivity(GQL_20240412Parser.TransactionActivityContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#endTransactionCommand}. + * @param ctx the parse tree + */ + void enterEndTransactionCommand(GQL_20240412Parser.EndTransactionCommandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#endTransactionCommand}. + * @param ctx the parse tree + */ + void exitEndTransactionCommand(GQL_20240412Parser.EndTransactionCommandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetCommand}. + * @param ctx the parse tree + */ + void enterSessionSetCommand(GQL_20240412Parser.SessionSetCommandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetCommand}. + * @param ctx the parse tree + */ + void exitSessionSetCommand(GQL_20240412Parser.SessionSetCommandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetSchemaClause}. + * @param ctx the parse tree + */ + void enterSessionSetSchemaClause(GQL_20240412Parser.SessionSetSchemaClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetSchemaClause}. + * @param ctx the parse tree + */ + void exitSessionSetSchemaClause(GQL_20240412Parser.SessionSetSchemaClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetGraphClause}. + * @param ctx the parse tree + */ + void enterSessionSetGraphClause(GQL_20240412Parser.SessionSetGraphClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetGraphClause}. + * @param ctx the parse tree + */ + void exitSessionSetGraphClause(GQL_20240412Parser.SessionSetGraphClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetTimeZoneClause}. + * @param ctx the parse tree + */ + void enterSessionSetTimeZoneClause(GQL_20240412Parser.SessionSetTimeZoneClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetTimeZoneClause}. + * @param ctx the parse tree + */ + void exitSessionSetTimeZoneClause(GQL_20240412Parser.SessionSetTimeZoneClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setTimeZoneValue}. + * @param ctx the parse tree + */ + void enterSetTimeZoneValue(GQL_20240412Parser.SetTimeZoneValueContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setTimeZoneValue}. + * @param ctx the parse tree + */ + void exitSetTimeZoneValue(GQL_20240412Parser.SetTimeZoneValueContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetParameterClause}. + * @param ctx the parse tree + */ + void enterSessionSetParameterClause(GQL_20240412Parser.SessionSetParameterClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetParameterClause}. + * @param ctx the parse tree + */ + void exitSessionSetParameterClause(GQL_20240412Parser.SessionSetParameterClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetGraphParameterClause}. + * @param ctx the parse tree + */ + void enterSessionSetGraphParameterClause(GQL_20240412Parser.SessionSetGraphParameterClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetGraphParameterClause}. + * @param ctx the parse tree + */ + void exitSessionSetGraphParameterClause(GQL_20240412Parser.SessionSetGraphParameterClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetBindingTableParameterClause}. + * @param ctx the parse tree + */ + void enterSessionSetBindingTableParameterClause(GQL_20240412Parser.SessionSetBindingTableParameterClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetBindingTableParameterClause}. + * @param ctx the parse tree + */ + void exitSessionSetBindingTableParameterClause(GQL_20240412Parser.SessionSetBindingTableParameterClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetValueParameterClause}. + * @param ctx the parse tree + */ + void enterSessionSetValueParameterClause(GQL_20240412Parser.SessionSetValueParameterClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetValueParameterClause}. + * @param ctx the parse tree + */ + void exitSessionSetValueParameterClause(GQL_20240412Parser.SessionSetValueParameterClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionSetParameterName}. + * @param ctx the parse tree + */ + void enterSessionSetParameterName(GQL_20240412Parser.SessionSetParameterNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionSetParameterName}. + * @param ctx the parse tree + */ + void exitSessionSetParameterName(GQL_20240412Parser.SessionSetParameterNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionResetCommand}. + * @param ctx the parse tree + */ + void enterSessionResetCommand(GQL_20240412Parser.SessionResetCommandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionResetCommand}. + * @param ctx the parse tree + */ + void exitSessionResetCommand(GQL_20240412Parser.SessionResetCommandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionResetArguments}. + * @param ctx the parse tree + */ + void enterSessionResetArguments(GQL_20240412Parser.SessionResetArgumentsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionResetArguments}. + * @param ctx the parse tree + */ + void exitSessionResetArguments(GQL_20240412Parser.SessionResetArgumentsContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionCloseCommand}. + * @param ctx the parse tree + */ + void enterSessionCloseCommand(GQL_20240412Parser.SessionCloseCommandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionCloseCommand}. + * @param ctx the parse tree + */ + void exitSessionCloseCommand(GQL_20240412Parser.SessionCloseCommandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sessionParameterSpecification}. + * @param ctx the parse tree + */ + void enterSessionParameterSpecification(GQL_20240412Parser.SessionParameterSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sessionParameterSpecification}. + * @param ctx the parse tree + */ + void exitSessionParameterSpecification(GQL_20240412Parser.SessionParameterSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#startTransactionCommand}. + * @param ctx the parse tree + */ + void enterStartTransactionCommand(GQL_20240412Parser.StartTransactionCommandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#startTransactionCommand}. + * @param ctx the parse tree + */ + void exitStartTransactionCommand(GQL_20240412Parser.StartTransactionCommandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#transactionCharacteristics}. + * @param ctx the parse tree + */ + void enterTransactionCharacteristics(GQL_20240412Parser.TransactionCharacteristicsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#transactionCharacteristics}. + * @param ctx the parse tree + */ + void exitTransactionCharacteristics(GQL_20240412Parser.TransactionCharacteristicsContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#transactionMode}. + * @param ctx the parse tree + */ + void enterTransactionMode(GQL_20240412Parser.TransactionModeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#transactionMode}. + * @param ctx the parse tree + */ + void exitTransactionMode(GQL_20240412Parser.TransactionModeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#transactionAccessMode}. + * @param ctx the parse tree + */ + void enterTransactionAccessMode(GQL_20240412Parser.TransactionAccessModeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#transactionAccessMode}. + * @param ctx the parse tree + */ + void exitTransactionAccessMode(GQL_20240412Parser.TransactionAccessModeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#rollbackCommand}. + * @param ctx the parse tree + */ + void enterRollbackCommand(GQL_20240412Parser.RollbackCommandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#rollbackCommand}. + * @param ctx the parse tree + */ + void exitRollbackCommand(GQL_20240412Parser.RollbackCommandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#commitCommand}. + * @param ctx the parse tree + */ + void enterCommitCommand(GQL_20240412Parser.CommitCommandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#commitCommand}. + * @param ctx the parse tree + */ + void exitCommitCommand(GQL_20240412Parser.CommitCommandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nestedProcedureSpecification}. + * @param ctx the parse tree + */ + void enterNestedProcedureSpecification(GQL_20240412Parser.NestedProcedureSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nestedProcedureSpecification}. + * @param ctx the parse tree + */ + void exitNestedProcedureSpecification(GQL_20240412Parser.NestedProcedureSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#procedureSpecification}. + * @param ctx the parse tree + */ + void enterProcedureSpecification(GQL_20240412Parser.ProcedureSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#procedureSpecification}. + * @param ctx the parse tree + */ + void exitProcedureSpecification(GQL_20240412Parser.ProcedureSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nestedDataModifyingProcedureSpecification}. + * @param ctx the parse tree + */ + void enterNestedDataModifyingProcedureSpecification(GQL_20240412Parser.NestedDataModifyingProcedureSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nestedDataModifyingProcedureSpecification}. + * @param ctx the parse tree + */ + void exitNestedDataModifyingProcedureSpecification(GQL_20240412Parser.NestedDataModifyingProcedureSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nestedQuerySpecification}. + * @param ctx the parse tree + */ + void enterNestedQuerySpecification(GQL_20240412Parser.NestedQuerySpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nestedQuerySpecification}. + * @param ctx the parse tree + */ + void exitNestedQuerySpecification(GQL_20240412Parser.NestedQuerySpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#procedureBody}. + * @param ctx the parse tree + */ + void enterProcedureBody(GQL_20240412Parser.ProcedureBodyContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#procedureBody}. + * @param ctx the parse tree + */ + void exitProcedureBody(GQL_20240412Parser.ProcedureBodyContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingVariableDefinitionBlock}. + * @param ctx the parse tree + */ + void enterBindingVariableDefinitionBlock(GQL_20240412Parser.BindingVariableDefinitionBlockContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingVariableDefinitionBlock}. + * @param ctx the parse tree + */ + void exitBindingVariableDefinitionBlock(GQL_20240412Parser.BindingVariableDefinitionBlockContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingVariableDefinition}. + * @param ctx the parse tree + */ + void enterBindingVariableDefinition(GQL_20240412Parser.BindingVariableDefinitionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingVariableDefinition}. + * @param ctx the parse tree + */ + void exitBindingVariableDefinition(GQL_20240412Parser.BindingVariableDefinitionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#statementBlock}. + * @param ctx the parse tree + */ + void enterStatementBlock(GQL_20240412Parser.StatementBlockContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#statementBlock}. + * @param ctx the parse tree + */ + void exitStatementBlock(GQL_20240412Parser.StatementBlockContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#statement}. + * @param ctx the parse tree + */ + void enterStatement(GQL_20240412Parser.StatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#statement}. + * @param ctx the parse tree + */ + void exitStatement(GQL_20240412Parser.StatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nextStatement}. + * @param ctx the parse tree + */ + void enterNextStatement(GQL_20240412Parser.NextStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nextStatement}. + * @param ctx the parse tree + */ + void exitNextStatement(GQL_20240412Parser.NextStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphVariableDefinition}. + * @param ctx the parse tree + */ + void enterGraphVariableDefinition(GQL_20240412Parser.GraphVariableDefinitionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphVariableDefinition}. + * @param ctx the parse tree + */ + void exitGraphVariableDefinition(GQL_20240412Parser.GraphVariableDefinitionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#optTypedGraphInitializer}. + * @param ctx the parse tree + */ + void enterOptTypedGraphInitializer(GQL_20240412Parser.OptTypedGraphInitializerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#optTypedGraphInitializer}. + * @param ctx the parse tree + */ + void exitOptTypedGraphInitializer(GQL_20240412Parser.OptTypedGraphInitializerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphInitializer}. + * @param ctx the parse tree + */ + void enterGraphInitializer(GQL_20240412Parser.GraphInitializerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphInitializer}. + * @param ctx the parse tree + */ + void exitGraphInitializer(GQL_20240412Parser.GraphInitializerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingTableVariableDefinition}. + * @param ctx the parse tree + */ + void enterBindingTableVariableDefinition(GQL_20240412Parser.BindingTableVariableDefinitionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingTableVariableDefinition}. + * @param ctx the parse tree + */ + void exitBindingTableVariableDefinition(GQL_20240412Parser.BindingTableVariableDefinitionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#optTypedBindingTableInitializer}. + * @param ctx the parse tree + */ + void enterOptTypedBindingTableInitializer(GQL_20240412Parser.OptTypedBindingTableInitializerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#optTypedBindingTableInitializer}. + * @param ctx the parse tree + */ + void exitOptTypedBindingTableInitializer(GQL_20240412Parser.OptTypedBindingTableInitializerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingTableInitializer}. + * @param ctx the parse tree + */ + void enterBindingTableInitializer(GQL_20240412Parser.BindingTableInitializerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingTableInitializer}. + * @param ctx the parse tree + */ + void exitBindingTableInitializer(GQL_20240412Parser.BindingTableInitializerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#valueVariableDefinition}. + * @param ctx the parse tree + */ + void enterValueVariableDefinition(GQL_20240412Parser.ValueVariableDefinitionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#valueVariableDefinition}. + * @param ctx the parse tree + */ + void exitValueVariableDefinition(GQL_20240412Parser.ValueVariableDefinitionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#optTypedValueInitializer}. + * @param ctx the parse tree + */ + void enterOptTypedValueInitializer(GQL_20240412Parser.OptTypedValueInitializerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#optTypedValueInitializer}. + * @param ctx the parse tree + */ + void exitOptTypedValueInitializer(GQL_20240412Parser.OptTypedValueInitializerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#valueInitializer}. + * @param ctx the parse tree + */ + void enterValueInitializer(GQL_20240412Parser.ValueInitializerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#valueInitializer}. + * @param ctx the parse tree + */ + void exitValueInitializer(GQL_20240412Parser.ValueInitializerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphExpression}. + * @param ctx the parse tree + */ + void enterGraphExpression(GQL_20240412Parser.GraphExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphExpression}. + * @param ctx the parse tree + */ + void exitGraphExpression(GQL_20240412Parser.GraphExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#currentGraph}. + * @param ctx the parse tree + */ + void enterCurrentGraph(GQL_20240412Parser.CurrentGraphContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#currentGraph}. + * @param ctx the parse tree + */ + void exitCurrentGraph(GQL_20240412Parser.CurrentGraphContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingTableExpression}. + * @param ctx the parse tree + */ + void enterBindingTableExpression(GQL_20240412Parser.BindingTableExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingTableExpression}. + * @param ctx the parse tree + */ + void exitBindingTableExpression(GQL_20240412Parser.BindingTableExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nestedBindingTableQuerySpecification}. + * @param ctx the parse tree + */ + void enterNestedBindingTableQuerySpecification(GQL_20240412Parser.NestedBindingTableQuerySpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nestedBindingTableQuerySpecification}. + * @param ctx the parse tree + */ + void exitNestedBindingTableQuerySpecification(GQL_20240412Parser.NestedBindingTableQuerySpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#objectExpressionPrimary}. + * @param ctx the parse tree + */ + void enterObjectExpressionPrimary(GQL_20240412Parser.ObjectExpressionPrimaryContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#objectExpressionPrimary}. + * @param ctx the parse tree + */ + void exitObjectExpressionPrimary(GQL_20240412Parser.ObjectExpressionPrimaryContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#linearCatalogModifyingStatement}. + * @param ctx the parse tree + */ + void enterLinearCatalogModifyingStatement(GQL_20240412Parser.LinearCatalogModifyingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#linearCatalogModifyingStatement}. + * @param ctx the parse tree + */ + void exitLinearCatalogModifyingStatement(GQL_20240412Parser.LinearCatalogModifyingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleCatalogModifyingStatement}. + * @param ctx the parse tree + */ + void enterSimpleCatalogModifyingStatement(GQL_20240412Parser.SimpleCatalogModifyingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleCatalogModifyingStatement}. + * @param ctx the parse tree + */ + void exitSimpleCatalogModifyingStatement(GQL_20240412Parser.SimpleCatalogModifyingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#primitiveCatalogModifyingStatement}. + * @param ctx the parse tree + */ + void enterPrimitiveCatalogModifyingStatement(GQL_20240412Parser.PrimitiveCatalogModifyingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#primitiveCatalogModifyingStatement}. + * @param ctx the parse tree + */ + void exitPrimitiveCatalogModifyingStatement(GQL_20240412Parser.PrimitiveCatalogModifyingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#createSchemaStatement}. + * @param ctx the parse tree + */ + void enterCreateSchemaStatement(GQL_20240412Parser.CreateSchemaStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#createSchemaStatement}. + * @param ctx the parse tree + */ + void exitCreateSchemaStatement(GQL_20240412Parser.CreateSchemaStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dropSchemaStatement}. + * @param ctx the parse tree + */ + void enterDropSchemaStatement(GQL_20240412Parser.DropSchemaStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dropSchemaStatement}. + * @param ctx the parse tree + */ + void exitDropSchemaStatement(GQL_20240412Parser.DropSchemaStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#createGraphStatement}. + * @param ctx the parse tree + */ + void enterCreateGraphStatement(GQL_20240412Parser.CreateGraphStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#createGraphStatement}. + * @param ctx the parse tree + */ + void exitCreateGraphStatement(GQL_20240412Parser.CreateGraphStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#openGraphType}. + * @param ctx the parse tree + */ + void enterOpenGraphType(GQL_20240412Parser.OpenGraphTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#openGraphType}. + * @param ctx the parse tree + */ + void exitOpenGraphType(GQL_20240412Parser.OpenGraphTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#ofGraphType}. + * @param ctx the parse tree + */ + void enterOfGraphType(GQL_20240412Parser.OfGraphTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#ofGraphType}. + * @param ctx the parse tree + */ + void exitOfGraphType(GQL_20240412Parser.OfGraphTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphTypeLikeGraph}. + * @param ctx the parse tree + */ + void enterGraphTypeLikeGraph(GQL_20240412Parser.GraphTypeLikeGraphContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphTypeLikeGraph}. + * @param ctx the parse tree + */ + void exitGraphTypeLikeGraph(GQL_20240412Parser.GraphTypeLikeGraphContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphSource}. + * @param ctx the parse tree + */ + void enterGraphSource(GQL_20240412Parser.GraphSourceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphSource}. + * @param ctx the parse tree + */ + void exitGraphSource(GQL_20240412Parser.GraphSourceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dropGraphStatement}. + * @param ctx the parse tree + */ + void enterDropGraphStatement(GQL_20240412Parser.DropGraphStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dropGraphStatement}. + * @param ctx the parse tree + */ + void exitDropGraphStatement(GQL_20240412Parser.DropGraphStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#createGraphTypeStatement}. + * @param ctx the parse tree + */ + void enterCreateGraphTypeStatement(GQL_20240412Parser.CreateGraphTypeStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#createGraphTypeStatement}. + * @param ctx the parse tree + */ + void exitCreateGraphTypeStatement(GQL_20240412Parser.CreateGraphTypeStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphTypeSource}. + * @param ctx the parse tree + */ + void enterGraphTypeSource(GQL_20240412Parser.GraphTypeSourceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphTypeSource}. + * @param ctx the parse tree + */ + void exitGraphTypeSource(GQL_20240412Parser.GraphTypeSourceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#copyOfGraphType}. + * @param ctx the parse tree + */ + void enterCopyOfGraphType(GQL_20240412Parser.CopyOfGraphTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#copyOfGraphType}. + * @param ctx the parse tree + */ + void exitCopyOfGraphType(GQL_20240412Parser.CopyOfGraphTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dropGraphTypeStatement}. + * @param ctx the parse tree + */ + void enterDropGraphTypeStatement(GQL_20240412Parser.DropGraphTypeStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dropGraphTypeStatement}. + * @param ctx the parse tree + */ + void exitDropGraphTypeStatement(GQL_20240412Parser.DropGraphTypeStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#callCatalogModifyingProcedureStatement}. + * @param ctx the parse tree + */ + void enterCallCatalogModifyingProcedureStatement(GQL_20240412Parser.CallCatalogModifyingProcedureStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#callCatalogModifyingProcedureStatement}. + * @param ctx the parse tree + */ + void exitCallCatalogModifyingProcedureStatement(GQL_20240412Parser.CallCatalogModifyingProcedureStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#linearDataModifyingStatement}. + * @param ctx the parse tree + */ + void enterLinearDataModifyingStatement(GQL_20240412Parser.LinearDataModifyingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#linearDataModifyingStatement}. + * @param ctx the parse tree + */ + void exitLinearDataModifyingStatement(GQL_20240412Parser.LinearDataModifyingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#focusedLinearDataModifyingStatement}. + * @param ctx the parse tree + */ + void enterFocusedLinearDataModifyingStatement(GQL_20240412Parser.FocusedLinearDataModifyingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#focusedLinearDataModifyingStatement}. + * @param ctx the parse tree + */ + void exitFocusedLinearDataModifyingStatement(GQL_20240412Parser.FocusedLinearDataModifyingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#focusedLinearDataModifyingStatementBody}. + * @param ctx the parse tree + */ + void enterFocusedLinearDataModifyingStatementBody(GQL_20240412Parser.FocusedLinearDataModifyingStatementBodyContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#focusedLinearDataModifyingStatementBody}. + * @param ctx the parse tree + */ + void exitFocusedLinearDataModifyingStatementBody(GQL_20240412Parser.FocusedLinearDataModifyingStatementBodyContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#focusedNestedDataModifyingProcedureSpecification}. + * @param ctx the parse tree + */ + void enterFocusedNestedDataModifyingProcedureSpecification(GQL_20240412Parser.FocusedNestedDataModifyingProcedureSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#focusedNestedDataModifyingProcedureSpecification}. + * @param ctx the parse tree + */ + void exitFocusedNestedDataModifyingProcedureSpecification(GQL_20240412Parser.FocusedNestedDataModifyingProcedureSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#ambientLinearDataModifyingStatement}. + * @param ctx the parse tree + */ + void enterAmbientLinearDataModifyingStatement(GQL_20240412Parser.AmbientLinearDataModifyingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#ambientLinearDataModifyingStatement}. + * @param ctx the parse tree + */ + void exitAmbientLinearDataModifyingStatement(GQL_20240412Parser.AmbientLinearDataModifyingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#ambientLinearDataModifyingStatementBody}. + * @param ctx the parse tree + */ + void enterAmbientLinearDataModifyingStatementBody(GQL_20240412Parser.AmbientLinearDataModifyingStatementBodyContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#ambientLinearDataModifyingStatementBody}. + * @param ctx the parse tree + */ + void exitAmbientLinearDataModifyingStatementBody(GQL_20240412Parser.AmbientLinearDataModifyingStatementBodyContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleLinearDataAccessingStatement}. + * @param ctx the parse tree + */ + void enterSimpleLinearDataAccessingStatement(GQL_20240412Parser.SimpleLinearDataAccessingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleLinearDataAccessingStatement}. + * @param ctx the parse tree + */ + void exitSimpleLinearDataAccessingStatement(GQL_20240412Parser.SimpleLinearDataAccessingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleDataModifyingStatement}. + * @param ctx the parse tree + */ + void enterSimpleDataModifyingStatement(GQL_20240412Parser.SimpleDataModifyingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleDataModifyingStatement}. + * @param ctx the parse tree + */ + void exitSimpleDataModifyingStatement(GQL_20240412Parser.SimpleDataModifyingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#primitiveDataModifyingStatement}. + * @param ctx the parse tree + */ + void enterPrimitiveDataModifyingStatement(GQL_20240412Parser.PrimitiveDataModifyingStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#primitiveDataModifyingStatement}. + * @param ctx the parse tree + */ + void exitPrimitiveDataModifyingStatement(GQL_20240412Parser.PrimitiveDataModifyingStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertStatement}. + * @param ctx the parse tree + */ + void enterInsertStatement(GQL_20240412Parser.InsertStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertStatement}. + * @param ctx the parse tree + */ + void exitInsertStatement(GQL_20240412Parser.InsertStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setStatement}. + * @param ctx the parse tree + */ + void enterSetStatement(GQL_20240412Parser.SetStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setStatement}. + * @param ctx the parse tree + */ + void exitSetStatement(GQL_20240412Parser.SetStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setItemList}. + * @param ctx the parse tree + */ + void enterSetItemList(GQL_20240412Parser.SetItemListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setItemList}. + * @param ctx the parse tree + */ + void exitSetItemList(GQL_20240412Parser.SetItemListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setItem}. + * @param ctx the parse tree + */ + void enterSetItem(GQL_20240412Parser.SetItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setItem}. + * @param ctx the parse tree + */ + void exitSetItem(GQL_20240412Parser.SetItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setPropertyItem}. + * @param ctx the parse tree + */ + void enterSetPropertyItem(GQL_20240412Parser.SetPropertyItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setPropertyItem}. + * @param ctx the parse tree + */ + void exitSetPropertyItem(GQL_20240412Parser.SetPropertyItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setAllPropertiesItem}. + * @param ctx the parse tree + */ + void enterSetAllPropertiesItem(GQL_20240412Parser.SetAllPropertiesItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setAllPropertiesItem}. + * @param ctx the parse tree + */ + void exitSetAllPropertiesItem(GQL_20240412Parser.SetAllPropertiesItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setLabelItem}. + * @param ctx the parse tree + */ + void enterSetLabelItem(GQL_20240412Parser.SetLabelItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setLabelItem}. + * @param ctx the parse tree + */ + void exitSetLabelItem(GQL_20240412Parser.SetLabelItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#removeStatement}. + * @param ctx the parse tree + */ + void enterRemoveStatement(GQL_20240412Parser.RemoveStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#removeStatement}. + * @param ctx the parse tree + */ + void exitRemoveStatement(GQL_20240412Parser.RemoveStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#removeItemList}. + * @param ctx the parse tree + */ + void enterRemoveItemList(GQL_20240412Parser.RemoveItemListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#removeItemList}. + * @param ctx the parse tree + */ + void exitRemoveItemList(GQL_20240412Parser.RemoveItemListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#removeItem}. + * @param ctx the parse tree + */ + void enterRemoveItem(GQL_20240412Parser.RemoveItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#removeItem}. + * @param ctx the parse tree + */ + void exitRemoveItem(GQL_20240412Parser.RemoveItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#removePropertyItem}. + * @param ctx the parse tree + */ + void enterRemovePropertyItem(GQL_20240412Parser.RemovePropertyItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#removePropertyItem}. + * @param ctx the parse tree + */ + void exitRemovePropertyItem(GQL_20240412Parser.RemovePropertyItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#removeLabelItem}. + * @param ctx the parse tree + */ + void enterRemoveLabelItem(GQL_20240412Parser.RemoveLabelItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#removeLabelItem}. + * @param ctx the parse tree + */ + void exitRemoveLabelItem(GQL_20240412Parser.RemoveLabelItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#deleteStatement}. + * @param ctx the parse tree + */ + void enterDeleteStatement(GQL_20240412Parser.DeleteStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#deleteStatement}. + * @param ctx the parse tree + */ + void exitDeleteStatement(GQL_20240412Parser.DeleteStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#deleteItemList}. + * @param ctx the parse tree + */ + void enterDeleteItemList(GQL_20240412Parser.DeleteItemListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#deleteItemList}. + * @param ctx the parse tree + */ + void exitDeleteItemList(GQL_20240412Parser.DeleteItemListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#deleteItem}. + * @param ctx the parse tree + */ + void enterDeleteItem(GQL_20240412Parser.DeleteItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#deleteItem}. + * @param ctx the parse tree + */ + void exitDeleteItem(GQL_20240412Parser.DeleteItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#callDataModifyingProcedureStatement}. + * @param ctx the parse tree + */ + void enterCallDataModifyingProcedureStatement(GQL_20240412Parser.CallDataModifyingProcedureStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#callDataModifyingProcedureStatement}. + * @param ctx the parse tree + */ + void exitCallDataModifyingProcedureStatement(GQL_20240412Parser.CallDataModifyingProcedureStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#compositeQueryStatement}. + * @param ctx the parse tree + */ + void enterCompositeQueryStatement(GQL_20240412Parser.CompositeQueryStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#compositeQueryStatement}. + * @param ctx the parse tree + */ + void exitCompositeQueryStatement(GQL_20240412Parser.CompositeQueryStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#compositeQueryExpression}. + * @param ctx the parse tree + */ + void enterCompositeQueryExpression(GQL_20240412Parser.CompositeQueryExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#compositeQueryExpression}. + * @param ctx the parse tree + */ + void exitCompositeQueryExpression(GQL_20240412Parser.CompositeQueryExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#queryConjunction}. + * @param ctx the parse tree + */ + void enterQueryConjunction(GQL_20240412Parser.QueryConjunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#queryConjunction}. + * @param ctx the parse tree + */ + void exitQueryConjunction(GQL_20240412Parser.QueryConjunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setOperator}. + * @param ctx the parse tree + */ + void enterSetOperator(GQL_20240412Parser.SetOperatorContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setOperator}. + * @param ctx the parse tree + */ + void exitSetOperator(GQL_20240412Parser.SetOperatorContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#compositeQueryPrimary}. + * @param ctx the parse tree + */ + void enterCompositeQueryPrimary(GQL_20240412Parser.CompositeQueryPrimaryContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#compositeQueryPrimary}. + * @param ctx the parse tree + */ + void exitCompositeQueryPrimary(GQL_20240412Parser.CompositeQueryPrimaryContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#linearQueryStatement}. + * @param ctx the parse tree + */ + void enterLinearQueryStatement(GQL_20240412Parser.LinearQueryStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#linearQueryStatement}. + * @param ctx the parse tree + */ + void exitLinearQueryStatement(GQL_20240412Parser.LinearQueryStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#focusedLinearQueryStatement}. + * @param ctx the parse tree + */ + void enterFocusedLinearQueryStatement(GQL_20240412Parser.FocusedLinearQueryStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#focusedLinearQueryStatement}. + * @param ctx the parse tree + */ + void exitFocusedLinearQueryStatement(GQL_20240412Parser.FocusedLinearQueryStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#focusedLinearQueryStatementPart}. + * @param ctx the parse tree + */ + void enterFocusedLinearQueryStatementPart(GQL_20240412Parser.FocusedLinearQueryStatementPartContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#focusedLinearQueryStatementPart}. + * @param ctx the parse tree + */ + void exitFocusedLinearQueryStatementPart(GQL_20240412Parser.FocusedLinearQueryStatementPartContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#focusedLinearQueryAndPrimitiveResultStatementPart}. + * @param ctx the parse tree + */ + void enterFocusedLinearQueryAndPrimitiveResultStatementPart(GQL_20240412Parser.FocusedLinearQueryAndPrimitiveResultStatementPartContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#focusedLinearQueryAndPrimitiveResultStatementPart}. + * @param ctx the parse tree + */ + void exitFocusedLinearQueryAndPrimitiveResultStatementPart(GQL_20240412Parser.FocusedLinearQueryAndPrimitiveResultStatementPartContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#focusedPrimitiveResultStatement}. + * @param ctx the parse tree + */ + void enterFocusedPrimitiveResultStatement(GQL_20240412Parser.FocusedPrimitiveResultStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#focusedPrimitiveResultStatement}. + * @param ctx the parse tree + */ + void exitFocusedPrimitiveResultStatement(GQL_20240412Parser.FocusedPrimitiveResultStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#focusedNestedQuerySpecification}. + * @param ctx the parse tree + */ + void enterFocusedNestedQuerySpecification(GQL_20240412Parser.FocusedNestedQuerySpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#focusedNestedQuerySpecification}. + * @param ctx the parse tree + */ + void exitFocusedNestedQuerySpecification(GQL_20240412Parser.FocusedNestedQuerySpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#ambientLinearQueryStatement}. + * @param ctx the parse tree + */ + void enterAmbientLinearQueryStatement(GQL_20240412Parser.AmbientLinearQueryStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#ambientLinearQueryStatement}. + * @param ctx the parse tree + */ + void exitAmbientLinearQueryStatement(GQL_20240412Parser.AmbientLinearQueryStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleLinearQueryStatement}. + * @param ctx the parse tree + */ + void enterSimpleLinearQueryStatement(GQL_20240412Parser.SimpleLinearQueryStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleLinearQueryStatement}. + * @param ctx the parse tree + */ + void exitSimpleLinearQueryStatement(GQL_20240412Parser.SimpleLinearQueryStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleQueryStatement}. + * @param ctx the parse tree + */ + void enterSimpleQueryStatement(GQL_20240412Parser.SimpleQueryStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleQueryStatement}. + * @param ctx the parse tree + */ + void exitSimpleQueryStatement(GQL_20240412Parser.SimpleQueryStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#primitiveQueryStatement}. + * @param ctx the parse tree + */ + void enterPrimitiveQueryStatement(GQL_20240412Parser.PrimitiveQueryStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#primitiveQueryStatement}. + * @param ctx the parse tree + */ + void exitPrimitiveQueryStatement(GQL_20240412Parser.PrimitiveQueryStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#matchStatement}. + * @param ctx the parse tree + */ + void enterMatchStatement(GQL_20240412Parser.MatchStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#matchStatement}. + * @param ctx the parse tree + */ + void exitMatchStatement(GQL_20240412Parser.MatchStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleMatchStatement}. + * @param ctx the parse tree + */ + void enterSimpleMatchStatement(GQL_20240412Parser.SimpleMatchStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleMatchStatement}. + * @param ctx the parse tree + */ + void exitSimpleMatchStatement(GQL_20240412Parser.SimpleMatchStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#optionalMatchStatement}. + * @param ctx the parse tree + */ + void enterOptionalMatchStatement(GQL_20240412Parser.OptionalMatchStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#optionalMatchStatement}. + * @param ctx the parse tree + */ + void exitOptionalMatchStatement(GQL_20240412Parser.OptionalMatchStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#optionalOperand}. + * @param ctx the parse tree + */ + void enterOptionalOperand(GQL_20240412Parser.OptionalOperandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#optionalOperand}. + * @param ctx the parse tree + */ + void exitOptionalOperand(GQL_20240412Parser.OptionalOperandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#matchStatementBlock}. + * @param ctx the parse tree + */ + void enterMatchStatementBlock(GQL_20240412Parser.MatchStatementBlockContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#matchStatementBlock}. + * @param ctx the parse tree + */ + void exitMatchStatementBlock(GQL_20240412Parser.MatchStatementBlockContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#callQueryStatement}. + * @param ctx the parse tree + */ + void enterCallQueryStatement(GQL_20240412Parser.CallQueryStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#callQueryStatement}. + * @param ctx the parse tree + */ + void exitCallQueryStatement(GQL_20240412Parser.CallQueryStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#filterStatement}. + * @param ctx the parse tree + */ + void enterFilterStatement(GQL_20240412Parser.FilterStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#filterStatement}. + * @param ctx the parse tree + */ + void exitFilterStatement(GQL_20240412Parser.FilterStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#letStatement}. + * @param ctx the parse tree + */ + void enterLetStatement(GQL_20240412Parser.LetStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#letStatement}. + * @param ctx the parse tree + */ + void exitLetStatement(GQL_20240412Parser.LetStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#letVariableDefinitionList}. + * @param ctx the parse tree + */ + void enterLetVariableDefinitionList(GQL_20240412Parser.LetVariableDefinitionListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#letVariableDefinitionList}. + * @param ctx the parse tree + */ + void exitLetVariableDefinitionList(GQL_20240412Parser.LetVariableDefinitionListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#letVariableDefinition}. + * @param ctx the parse tree + */ + void enterLetVariableDefinition(GQL_20240412Parser.LetVariableDefinitionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#letVariableDefinition}. + * @param ctx the parse tree + */ + void exitLetVariableDefinition(GQL_20240412Parser.LetVariableDefinitionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#forStatement}. + * @param ctx the parse tree + */ + void enterForStatement(GQL_20240412Parser.ForStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#forStatement}. + * @param ctx the parse tree + */ + void exitForStatement(GQL_20240412Parser.ForStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#forItem}. + * @param ctx the parse tree + */ + void enterForItem(GQL_20240412Parser.ForItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#forItem}. + * @param ctx the parse tree + */ + void exitForItem(GQL_20240412Parser.ForItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#forItemAlias}. + * @param ctx the parse tree + */ + void enterForItemAlias(GQL_20240412Parser.ForItemAliasContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#forItemAlias}. + * @param ctx the parse tree + */ + void exitForItemAlias(GQL_20240412Parser.ForItemAliasContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#forItemSource}. + * @param ctx the parse tree + */ + void enterForItemSource(GQL_20240412Parser.ForItemSourceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#forItemSource}. + * @param ctx the parse tree + */ + void exitForItemSource(GQL_20240412Parser.ForItemSourceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#forOrdinalityOrOffset}. + * @param ctx the parse tree + */ + void enterForOrdinalityOrOffset(GQL_20240412Parser.ForOrdinalityOrOffsetContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#forOrdinalityOrOffset}. + * @param ctx the parse tree + */ + void exitForOrdinalityOrOffset(GQL_20240412Parser.ForOrdinalityOrOffsetContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#orderByAndPageStatement}. + * @param ctx the parse tree + */ + void enterOrderByAndPageStatement(GQL_20240412Parser.OrderByAndPageStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#orderByAndPageStatement}. + * @param ctx the parse tree + */ + void exitOrderByAndPageStatement(GQL_20240412Parser.OrderByAndPageStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#primitiveResultStatement}. + * @param ctx the parse tree + */ + void enterPrimitiveResultStatement(GQL_20240412Parser.PrimitiveResultStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#primitiveResultStatement}. + * @param ctx the parse tree + */ + void exitPrimitiveResultStatement(GQL_20240412Parser.PrimitiveResultStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#returnStatement}. + * @param ctx the parse tree + */ + void enterReturnStatement(GQL_20240412Parser.ReturnStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#returnStatement}. + * @param ctx the parse tree + */ + void exitReturnStatement(GQL_20240412Parser.ReturnStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#returnStatementBody}. + * @param ctx the parse tree + */ + void enterReturnStatementBody(GQL_20240412Parser.ReturnStatementBodyContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#returnStatementBody}. + * @param ctx the parse tree + */ + void exitReturnStatementBody(GQL_20240412Parser.ReturnStatementBodyContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#returnItemList}. + * @param ctx the parse tree + */ + void enterReturnItemList(GQL_20240412Parser.ReturnItemListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#returnItemList}. + * @param ctx the parse tree + */ + void exitReturnItemList(GQL_20240412Parser.ReturnItemListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#returnItem}. + * @param ctx the parse tree + */ + void enterReturnItem(GQL_20240412Parser.ReturnItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#returnItem}. + * @param ctx the parse tree + */ + void exitReturnItem(GQL_20240412Parser.ReturnItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#returnItemAlias}. + * @param ctx the parse tree + */ + void enterReturnItemAlias(GQL_20240412Parser.ReturnItemAliasContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#returnItemAlias}. + * @param ctx the parse tree + */ + void exitReturnItemAlias(GQL_20240412Parser.ReturnItemAliasContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#selectStatement}. + * @param ctx the parse tree + */ + void enterSelectStatement(GQL_20240412Parser.SelectStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#selectStatement}. + * @param ctx the parse tree + */ + void exitSelectStatement(GQL_20240412Parser.SelectStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#selectItemList}. + * @param ctx the parse tree + */ + void enterSelectItemList(GQL_20240412Parser.SelectItemListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#selectItemList}. + * @param ctx the parse tree + */ + void exitSelectItemList(GQL_20240412Parser.SelectItemListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#selectItem}. + * @param ctx the parse tree + */ + void enterSelectItem(GQL_20240412Parser.SelectItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#selectItem}. + * @param ctx the parse tree + */ + void exitSelectItem(GQL_20240412Parser.SelectItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#selectItemAlias}. + * @param ctx the parse tree + */ + void enterSelectItemAlias(GQL_20240412Parser.SelectItemAliasContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#selectItemAlias}. + * @param ctx the parse tree + */ + void exitSelectItemAlias(GQL_20240412Parser.SelectItemAliasContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#havingClause}. + * @param ctx the parse tree + */ + void enterHavingClause(GQL_20240412Parser.HavingClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#havingClause}. + * @param ctx the parse tree + */ + void exitHavingClause(GQL_20240412Parser.HavingClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#selectStatementBody}. + * @param ctx the parse tree + */ + void enterSelectStatementBody(GQL_20240412Parser.SelectStatementBodyContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#selectStatementBody}. + * @param ctx the parse tree + */ + void exitSelectStatementBody(GQL_20240412Parser.SelectStatementBodyContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#selectGraphMatchList}. + * @param ctx the parse tree + */ + void enterSelectGraphMatchList(GQL_20240412Parser.SelectGraphMatchListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#selectGraphMatchList}. + * @param ctx the parse tree + */ + void exitSelectGraphMatchList(GQL_20240412Parser.SelectGraphMatchListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#selectGraphMatch}. + * @param ctx the parse tree + */ + void enterSelectGraphMatch(GQL_20240412Parser.SelectGraphMatchContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#selectGraphMatch}. + * @param ctx the parse tree + */ + void exitSelectGraphMatch(GQL_20240412Parser.SelectGraphMatchContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#selectQuerySpecification}. + * @param ctx the parse tree + */ + void enterSelectQuerySpecification(GQL_20240412Parser.SelectQuerySpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#selectQuerySpecification}. + * @param ctx the parse tree + */ + void exitSelectQuerySpecification(GQL_20240412Parser.SelectQuerySpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#callProcedureStatement}. + * @param ctx the parse tree + */ + void enterCallProcedureStatement(GQL_20240412Parser.CallProcedureStatementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#callProcedureStatement}. + * @param ctx the parse tree + */ + void exitCallProcedureStatement(GQL_20240412Parser.CallProcedureStatementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#procedureCall}. + * @param ctx the parse tree + */ + void enterProcedureCall(GQL_20240412Parser.ProcedureCallContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#procedureCall}. + * @param ctx the parse tree + */ + void exitProcedureCall(GQL_20240412Parser.ProcedureCallContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#inlineProcedureCall}. + * @param ctx the parse tree + */ + void enterInlineProcedureCall(GQL_20240412Parser.InlineProcedureCallContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#inlineProcedureCall}. + * @param ctx the parse tree + */ + void exitInlineProcedureCall(GQL_20240412Parser.InlineProcedureCallContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#variableScopeClause}. + * @param ctx the parse tree + */ + void enterVariableScopeClause(GQL_20240412Parser.VariableScopeClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#variableScopeClause}. + * @param ctx the parse tree + */ + void exitVariableScopeClause(GQL_20240412Parser.VariableScopeClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingVariableReferenceList}. + * @param ctx the parse tree + */ + void enterBindingVariableReferenceList(GQL_20240412Parser.BindingVariableReferenceListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingVariableReferenceList}. + * @param ctx the parse tree + */ + void exitBindingVariableReferenceList(GQL_20240412Parser.BindingVariableReferenceListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#namedProcedureCall}. + * @param ctx the parse tree + */ + void enterNamedProcedureCall(GQL_20240412Parser.NamedProcedureCallContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#namedProcedureCall}. + * @param ctx the parse tree + */ + void exitNamedProcedureCall(GQL_20240412Parser.NamedProcedureCallContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#procedureArgumentList}. + * @param ctx the parse tree + */ + void enterProcedureArgumentList(GQL_20240412Parser.ProcedureArgumentListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#procedureArgumentList}. + * @param ctx the parse tree + */ + void exitProcedureArgumentList(GQL_20240412Parser.ProcedureArgumentListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#procedureArgument}. + * @param ctx the parse tree + */ + void enterProcedureArgument(GQL_20240412Parser.ProcedureArgumentContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#procedureArgument}. + * @param ctx the parse tree + */ + void exitProcedureArgument(GQL_20240412Parser.ProcedureArgumentContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#atSchemaClause}. + * @param ctx the parse tree + */ + void enterAtSchemaClause(GQL_20240412Parser.AtSchemaClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#atSchemaClause}. + * @param ctx the parse tree + */ + void exitAtSchemaClause(GQL_20240412Parser.AtSchemaClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#useGraphClause}. + * @param ctx the parse tree + */ + void enterUseGraphClause(GQL_20240412Parser.UseGraphClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#useGraphClause}. + * @param ctx the parse tree + */ + void exitUseGraphClause(GQL_20240412Parser.UseGraphClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphPatternBindingTable}. + * @param ctx the parse tree + */ + void enterGraphPatternBindingTable(GQL_20240412Parser.GraphPatternBindingTableContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphPatternBindingTable}. + * @param ctx the parse tree + */ + void exitGraphPatternBindingTable(GQL_20240412Parser.GraphPatternBindingTableContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphPatternYieldClause}. + * @param ctx the parse tree + */ + void enterGraphPatternYieldClause(GQL_20240412Parser.GraphPatternYieldClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphPatternYieldClause}. + * @param ctx the parse tree + */ + void exitGraphPatternYieldClause(GQL_20240412Parser.GraphPatternYieldClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphPatternYieldItemList}. + * @param ctx the parse tree + */ + void enterGraphPatternYieldItemList(GQL_20240412Parser.GraphPatternYieldItemListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphPatternYieldItemList}. + * @param ctx the parse tree + */ + void exitGraphPatternYieldItemList(GQL_20240412Parser.GraphPatternYieldItemListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphPatternYieldItem}. + * @param ctx the parse tree + */ + void enterGraphPatternYieldItem(GQL_20240412Parser.GraphPatternYieldItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphPatternYieldItem}. + * @param ctx the parse tree + */ + void exitGraphPatternYieldItem(GQL_20240412Parser.GraphPatternYieldItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphPattern}. + * @param ctx the parse tree + */ + void enterGraphPattern(GQL_20240412Parser.GraphPatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphPattern}. + * @param ctx the parse tree + */ + void exitGraphPattern(GQL_20240412Parser.GraphPatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#matchMode}. + * @param ctx the parse tree + */ + void enterMatchMode(GQL_20240412Parser.MatchModeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#matchMode}. + * @param ctx the parse tree + */ + void exitMatchMode(GQL_20240412Parser.MatchModeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#repeatableElementsMatchMode}. + * @param ctx the parse tree + */ + void enterRepeatableElementsMatchMode(GQL_20240412Parser.RepeatableElementsMatchModeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#repeatableElementsMatchMode}. + * @param ctx the parse tree + */ + void exitRepeatableElementsMatchMode(GQL_20240412Parser.RepeatableElementsMatchModeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#differentEdgesMatchMode}. + * @param ctx the parse tree + */ + void enterDifferentEdgesMatchMode(GQL_20240412Parser.DifferentEdgesMatchModeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#differentEdgesMatchMode}. + * @param ctx the parse tree + */ + void exitDifferentEdgesMatchMode(GQL_20240412Parser.DifferentEdgesMatchModeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementBindingsOrElements}. + * @param ctx the parse tree + */ + void enterElementBindingsOrElements(GQL_20240412Parser.ElementBindingsOrElementsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementBindingsOrElements}. + * @param ctx the parse tree + */ + void exitElementBindingsOrElements(GQL_20240412Parser.ElementBindingsOrElementsContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeBindingsOrEdges}. + * @param ctx the parse tree + */ + void enterEdgeBindingsOrEdges(GQL_20240412Parser.EdgeBindingsOrEdgesContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeBindingsOrEdges}. + * @param ctx the parse tree + */ + void exitEdgeBindingsOrEdges(GQL_20240412Parser.EdgeBindingsOrEdgesContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathPatternList}. + * @param ctx the parse tree + */ + void enterPathPatternList(GQL_20240412Parser.PathPatternListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathPatternList}. + * @param ctx the parse tree + */ + void exitPathPatternList(GQL_20240412Parser.PathPatternListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathPattern}. + * @param ctx the parse tree + */ + void enterPathPattern(GQL_20240412Parser.PathPatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathPattern}. + * @param ctx the parse tree + */ + void exitPathPattern(GQL_20240412Parser.PathPatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathVariableDeclaration}. + * @param ctx the parse tree + */ + void enterPathVariableDeclaration(GQL_20240412Parser.PathVariableDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathVariableDeclaration}. + * @param ctx the parse tree + */ + void exitPathVariableDeclaration(GQL_20240412Parser.PathVariableDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#keepClause}. + * @param ctx the parse tree + */ + void enterKeepClause(GQL_20240412Parser.KeepClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#keepClause}. + * @param ctx the parse tree + */ + void exitKeepClause(GQL_20240412Parser.KeepClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphPatternWhereClause}. + * @param ctx the parse tree + */ + void enterGraphPatternWhereClause(GQL_20240412Parser.GraphPatternWhereClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphPatternWhereClause}. + * @param ctx the parse tree + */ + void exitGraphPatternWhereClause(GQL_20240412Parser.GraphPatternWhereClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertGraphPattern}. + * @param ctx the parse tree + */ + void enterInsertGraphPattern(GQL_20240412Parser.InsertGraphPatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertGraphPattern}. + * @param ctx the parse tree + */ + void exitInsertGraphPattern(GQL_20240412Parser.InsertGraphPatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertPathPatternList}. + * @param ctx the parse tree + */ + void enterInsertPathPatternList(GQL_20240412Parser.InsertPathPatternListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertPathPatternList}. + * @param ctx the parse tree + */ + void exitInsertPathPatternList(GQL_20240412Parser.InsertPathPatternListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertPathPattern}. + * @param ctx the parse tree + */ + void enterInsertPathPattern(GQL_20240412Parser.InsertPathPatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertPathPattern}. + * @param ctx the parse tree + */ + void exitInsertPathPattern(GQL_20240412Parser.InsertPathPatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertNodePattern}. + * @param ctx the parse tree + */ + void enterInsertNodePattern(GQL_20240412Parser.InsertNodePatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertNodePattern}. + * @param ctx the parse tree + */ + void exitInsertNodePattern(GQL_20240412Parser.InsertNodePatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertEdgePattern}. + * @param ctx the parse tree + */ + void enterInsertEdgePattern(GQL_20240412Parser.InsertEdgePatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertEdgePattern}. + * @param ctx the parse tree + */ + void exitInsertEdgePattern(GQL_20240412Parser.InsertEdgePatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertEdgePointingLeft}. + * @param ctx the parse tree + */ + void enterInsertEdgePointingLeft(GQL_20240412Parser.InsertEdgePointingLeftContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertEdgePointingLeft}. + * @param ctx the parse tree + */ + void exitInsertEdgePointingLeft(GQL_20240412Parser.InsertEdgePointingLeftContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertEdgePointingRight}. + * @param ctx the parse tree + */ + void enterInsertEdgePointingRight(GQL_20240412Parser.InsertEdgePointingRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertEdgePointingRight}. + * @param ctx the parse tree + */ + void exitInsertEdgePointingRight(GQL_20240412Parser.InsertEdgePointingRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertEdgeUndirected}. + * @param ctx the parse tree + */ + void enterInsertEdgeUndirected(GQL_20240412Parser.InsertEdgeUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertEdgeUndirected}. + * @param ctx the parse tree + */ + void exitInsertEdgeUndirected(GQL_20240412Parser.InsertEdgeUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#insertElementPatternFiller}. + * @param ctx the parse tree + */ + void enterInsertElementPatternFiller(GQL_20240412Parser.InsertElementPatternFillerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#insertElementPatternFiller}. + * @param ctx the parse tree + */ + void exitInsertElementPatternFiller(GQL_20240412Parser.InsertElementPatternFillerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#labelAndPropertySetSpecification}. + * @param ctx the parse tree + */ + void enterLabelAndPropertySetSpecification(GQL_20240412Parser.LabelAndPropertySetSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#labelAndPropertySetSpecification}. + * @param ctx the parse tree + */ + void exitLabelAndPropertySetSpecification(GQL_20240412Parser.LabelAndPropertySetSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathPatternPrefix}. + * @param ctx the parse tree + */ + void enterPathPatternPrefix(GQL_20240412Parser.PathPatternPrefixContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathPatternPrefix}. + * @param ctx the parse tree + */ + void exitPathPatternPrefix(GQL_20240412Parser.PathPatternPrefixContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathModePrefix}. + * @param ctx the parse tree + */ + void enterPathModePrefix(GQL_20240412Parser.PathModePrefixContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathModePrefix}. + * @param ctx the parse tree + */ + void exitPathModePrefix(GQL_20240412Parser.PathModePrefixContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathMode}. + * @param ctx the parse tree + */ + void enterPathMode(GQL_20240412Parser.PathModeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathMode}. + * @param ctx the parse tree + */ + void exitPathMode(GQL_20240412Parser.PathModeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathSearchPrefix}. + * @param ctx the parse tree + */ + void enterPathSearchPrefix(GQL_20240412Parser.PathSearchPrefixContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathSearchPrefix}. + * @param ctx the parse tree + */ + void exitPathSearchPrefix(GQL_20240412Parser.PathSearchPrefixContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#allPathSearch}. + * @param ctx the parse tree + */ + void enterAllPathSearch(GQL_20240412Parser.AllPathSearchContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#allPathSearch}. + * @param ctx the parse tree + */ + void exitAllPathSearch(GQL_20240412Parser.AllPathSearchContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathOrPaths}. + * @param ctx the parse tree + */ + void enterPathOrPaths(GQL_20240412Parser.PathOrPathsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathOrPaths}. + * @param ctx the parse tree + */ + void exitPathOrPaths(GQL_20240412Parser.PathOrPathsContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#anyPathSearch}. + * @param ctx the parse tree + */ + void enterAnyPathSearch(GQL_20240412Parser.AnyPathSearchContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#anyPathSearch}. + * @param ctx the parse tree + */ + void exitAnyPathSearch(GQL_20240412Parser.AnyPathSearchContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numberOfPaths}. + * @param ctx the parse tree + */ + void enterNumberOfPaths(GQL_20240412Parser.NumberOfPathsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numberOfPaths}. + * @param ctx the parse tree + */ + void exitNumberOfPaths(GQL_20240412Parser.NumberOfPathsContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#shortestPathSearch}. + * @param ctx the parse tree + */ + void enterShortestPathSearch(GQL_20240412Parser.ShortestPathSearchContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#shortestPathSearch}. + * @param ctx the parse tree + */ + void exitShortestPathSearch(GQL_20240412Parser.ShortestPathSearchContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#allShortestPathSearch}. + * @param ctx the parse tree + */ + void enterAllShortestPathSearch(GQL_20240412Parser.AllShortestPathSearchContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#allShortestPathSearch}. + * @param ctx the parse tree + */ + void exitAllShortestPathSearch(GQL_20240412Parser.AllShortestPathSearchContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#anyShortestPathSearch}. + * @param ctx the parse tree + */ + void enterAnyShortestPathSearch(GQL_20240412Parser.AnyShortestPathSearchContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#anyShortestPathSearch}. + * @param ctx the parse tree + */ + void exitAnyShortestPathSearch(GQL_20240412Parser.AnyShortestPathSearchContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#countedShortestPathSearch}. + * @param ctx the parse tree + */ + void enterCountedShortestPathSearch(GQL_20240412Parser.CountedShortestPathSearchContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#countedShortestPathSearch}. + * @param ctx the parse tree + */ + void exitCountedShortestPathSearch(GQL_20240412Parser.CountedShortestPathSearchContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#countedShortestGroupSearch}. + * @param ctx the parse tree + */ + void enterCountedShortestGroupSearch(GQL_20240412Parser.CountedShortestGroupSearchContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#countedShortestGroupSearch}. + * @param ctx the parse tree + */ + void exitCountedShortestGroupSearch(GQL_20240412Parser.CountedShortestGroupSearchContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numberOfGroups}. + * @param ctx the parse tree + */ + void enterNumberOfGroups(GQL_20240412Parser.NumberOfGroupsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numberOfGroups}. + * @param ctx the parse tree + */ + void exitNumberOfGroups(GQL_20240412Parser.NumberOfGroupsContext ctx); + /** + * Enter a parse tree produced by the {@code ppePathTerm} + * labeled alternative in {@link GQL_20240412Parser#pathPatternExpression}. + * @param ctx the parse tree + */ + void enterPpePathTerm(GQL_20240412Parser.PpePathTermContext ctx); + /** + * Exit a parse tree produced by the {@code ppePathTerm} + * labeled alternative in {@link GQL_20240412Parser#pathPatternExpression}. + * @param ctx the parse tree + */ + void exitPpePathTerm(GQL_20240412Parser.PpePathTermContext ctx); + /** + * Enter a parse tree produced by the {@code ppeMultisetAlternation} + * labeled alternative in {@link GQL_20240412Parser#pathPatternExpression}. + * @param ctx the parse tree + */ + void enterPpeMultisetAlternation(GQL_20240412Parser.PpeMultisetAlternationContext ctx); + /** + * Exit a parse tree produced by the {@code ppeMultisetAlternation} + * labeled alternative in {@link GQL_20240412Parser#pathPatternExpression}. + * @param ctx the parse tree + */ + void exitPpeMultisetAlternation(GQL_20240412Parser.PpeMultisetAlternationContext ctx); + /** + * Enter a parse tree produced by the {@code ppePatternUnion} + * labeled alternative in {@link GQL_20240412Parser#pathPatternExpression}. + * @param ctx the parse tree + */ + void enterPpePatternUnion(GQL_20240412Parser.PpePatternUnionContext ctx); + /** + * Exit a parse tree produced by the {@code ppePatternUnion} + * labeled alternative in {@link GQL_20240412Parser#pathPatternExpression}. + * @param ctx the parse tree + */ + void exitPpePatternUnion(GQL_20240412Parser.PpePatternUnionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathTerm}. + * @param ctx the parse tree + */ + void enterPathTerm(GQL_20240412Parser.PathTermContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathTerm}. + * @param ctx the parse tree + */ + void exitPathTerm(GQL_20240412Parser.PathTermContext ctx); + /** + * Enter a parse tree produced by the {@code pfPathPrimary} + * labeled alternative in {@link GQL_20240412Parser#pathFactor}. + * @param ctx the parse tree + */ + void enterPfPathPrimary(GQL_20240412Parser.PfPathPrimaryContext ctx); + /** + * Exit a parse tree produced by the {@code pfPathPrimary} + * labeled alternative in {@link GQL_20240412Parser#pathFactor}. + * @param ctx the parse tree + */ + void exitPfPathPrimary(GQL_20240412Parser.PfPathPrimaryContext ctx); + /** + * Enter a parse tree produced by the {@code pfQuantifiedPathPrimary} + * labeled alternative in {@link GQL_20240412Parser#pathFactor}. + * @param ctx the parse tree + */ + void enterPfQuantifiedPathPrimary(GQL_20240412Parser.PfQuantifiedPathPrimaryContext ctx); + /** + * Exit a parse tree produced by the {@code pfQuantifiedPathPrimary} + * labeled alternative in {@link GQL_20240412Parser#pathFactor}. + * @param ctx the parse tree + */ + void exitPfQuantifiedPathPrimary(GQL_20240412Parser.PfQuantifiedPathPrimaryContext ctx); + /** + * Enter a parse tree produced by the {@code pfQuestionedPathPrimary} + * labeled alternative in {@link GQL_20240412Parser#pathFactor}. + * @param ctx the parse tree + */ + void enterPfQuestionedPathPrimary(GQL_20240412Parser.PfQuestionedPathPrimaryContext ctx); + /** + * Exit a parse tree produced by the {@code pfQuestionedPathPrimary} + * labeled alternative in {@link GQL_20240412Parser#pathFactor}. + * @param ctx the parse tree + */ + void exitPfQuestionedPathPrimary(GQL_20240412Parser.PfQuestionedPathPrimaryContext ctx); + /** + * Enter a parse tree produced by the {@code ppElementPattern} + * labeled alternative in {@link GQL_20240412Parser#pathPrimary}. + * @param ctx the parse tree + */ + void enterPpElementPattern(GQL_20240412Parser.PpElementPatternContext ctx); + /** + * Exit a parse tree produced by the {@code ppElementPattern} + * labeled alternative in {@link GQL_20240412Parser#pathPrimary}. + * @param ctx the parse tree + */ + void exitPpElementPattern(GQL_20240412Parser.PpElementPatternContext ctx); + /** + * Enter a parse tree produced by the {@code ppParenthesizedPathPatternExpression} + * labeled alternative in {@link GQL_20240412Parser#pathPrimary}. + * @param ctx the parse tree + */ + void enterPpParenthesizedPathPatternExpression(GQL_20240412Parser.PpParenthesizedPathPatternExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code ppParenthesizedPathPatternExpression} + * labeled alternative in {@link GQL_20240412Parser#pathPrimary}. + * @param ctx the parse tree + */ + void exitPpParenthesizedPathPatternExpression(GQL_20240412Parser.PpParenthesizedPathPatternExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code ppSimplifiedPathPatternExpression} + * labeled alternative in {@link GQL_20240412Parser#pathPrimary}. + * @param ctx the parse tree + */ + void enterPpSimplifiedPathPatternExpression(GQL_20240412Parser.PpSimplifiedPathPatternExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code ppSimplifiedPathPatternExpression} + * labeled alternative in {@link GQL_20240412Parser#pathPrimary}. + * @param ctx the parse tree + */ + void exitPpSimplifiedPathPatternExpression(GQL_20240412Parser.PpSimplifiedPathPatternExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementPattern}. + * @param ctx the parse tree + */ + void enterElementPattern(GQL_20240412Parser.ElementPatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementPattern}. + * @param ctx the parse tree + */ + void exitElementPattern(GQL_20240412Parser.ElementPatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodePattern}. + * @param ctx the parse tree + */ + void enterNodePattern(GQL_20240412Parser.NodePatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodePattern}. + * @param ctx the parse tree + */ + void exitNodePattern(GQL_20240412Parser.NodePatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementPatternFiller}. + * @param ctx the parse tree + */ + void enterElementPatternFiller(GQL_20240412Parser.ElementPatternFillerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementPatternFiller}. + * @param ctx the parse tree + */ + void exitElementPatternFiller(GQL_20240412Parser.ElementPatternFillerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementVariableDeclaration}. + * @param ctx the parse tree + */ + void enterElementVariableDeclaration(GQL_20240412Parser.ElementVariableDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementVariableDeclaration}. + * @param ctx the parse tree + */ + void exitElementVariableDeclaration(GQL_20240412Parser.ElementVariableDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#isLabelExpression}. + * @param ctx the parse tree + */ + void enterIsLabelExpression(GQL_20240412Parser.IsLabelExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#isLabelExpression}. + * @param ctx the parse tree + */ + void exitIsLabelExpression(GQL_20240412Parser.IsLabelExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#isOrColon}. + * @param ctx the parse tree + */ + void enterIsOrColon(GQL_20240412Parser.IsOrColonContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#isOrColon}. + * @param ctx the parse tree + */ + void exitIsOrColon(GQL_20240412Parser.IsOrColonContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementPatternPredicate}. + * @param ctx the parse tree + */ + void enterElementPatternPredicate(GQL_20240412Parser.ElementPatternPredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementPatternPredicate}. + * @param ctx the parse tree + */ + void exitElementPatternPredicate(GQL_20240412Parser.ElementPatternPredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementPatternWhereClause}. + * @param ctx the parse tree + */ + void enterElementPatternWhereClause(GQL_20240412Parser.ElementPatternWhereClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementPatternWhereClause}. + * @param ctx the parse tree + */ + void exitElementPatternWhereClause(GQL_20240412Parser.ElementPatternWhereClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementPropertySpecification}. + * @param ctx the parse tree + */ + void enterElementPropertySpecification(GQL_20240412Parser.ElementPropertySpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementPropertySpecification}. + * @param ctx the parse tree + */ + void exitElementPropertySpecification(GQL_20240412Parser.ElementPropertySpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#propertyKeyValuePairList}. + * @param ctx the parse tree + */ + void enterPropertyKeyValuePairList(GQL_20240412Parser.PropertyKeyValuePairListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#propertyKeyValuePairList}. + * @param ctx the parse tree + */ + void exitPropertyKeyValuePairList(GQL_20240412Parser.PropertyKeyValuePairListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#propertyKeyValuePair}. + * @param ctx the parse tree + */ + void enterPropertyKeyValuePair(GQL_20240412Parser.PropertyKeyValuePairContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#propertyKeyValuePair}. + * @param ctx the parse tree + */ + void exitPropertyKeyValuePair(GQL_20240412Parser.PropertyKeyValuePairContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgePattern}. + * @param ctx the parse tree + */ + void enterEdgePattern(GQL_20240412Parser.EdgePatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgePattern}. + * @param ctx the parse tree + */ + void exitEdgePattern(GQL_20240412Parser.EdgePatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fullEdgePattern}. + * @param ctx the parse tree + */ + void enterFullEdgePattern(GQL_20240412Parser.FullEdgePatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fullEdgePattern}. + * @param ctx the parse tree + */ + void exitFullEdgePattern(GQL_20240412Parser.FullEdgePatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fullEdgePointingLeft}. + * @param ctx the parse tree + */ + void enterFullEdgePointingLeft(GQL_20240412Parser.FullEdgePointingLeftContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fullEdgePointingLeft}. + * @param ctx the parse tree + */ + void exitFullEdgePointingLeft(GQL_20240412Parser.FullEdgePointingLeftContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fullEdgeUndirected}. + * @param ctx the parse tree + */ + void enterFullEdgeUndirected(GQL_20240412Parser.FullEdgeUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fullEdgeUndirected}. + * @param ctx the parse tree + */ + void exitFullEdgeUndirected(GQL_20240412Parser.FullEdgeUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fullEdgePointingRight}. + * @param ctx the parse tree + */ + void enterFullEdgePointingRight(GQL_20240412Parser.FullEdgePointingRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fullEdgePointingRight}. + * @param ctx the parse tree + */ + void exitFullEdgePointingRight(GQL_20240412Parser.FullEdgePointingRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fullEdgeLeftOrUndirected}. + * @param ctx the parse tree + */ + void enterFullEdgeLeftOrUndirected(GQL_20240412Parser.FullEdgeLeftOrUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fullEdgeLeftOrUndirected}. + * @param ctx the parse tree + */ + void exitFullEdgeLeftOrUndirected(GQL_20240412Parser.FullEdgeLeftOrUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fullEdgeUndirectedOrRight}. + * @param ctx the parse tree + */ + void enterFullEdgeUndirectedOrRight(GQL_20240412Parser.FullEdgeUndirectedOrRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fullEdgeUndirectedOrRight}. + * @param ctx the parse tree + */ + void exitFullEdgeUndirectedOrRight(GQL_20240412Parser.FullEdgeUndirectedOrRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fullEdgeLeftOrRight}. + * @param ctx the parse tree + */ + void enterFullEdgeLeftOrRight(GQL_20240412Parser.FullEdgeLeftOrRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fullEdgeLeftOrRight}. + * @param ctx the parse tree + */ + void exitFullEdgeLeftOrRight(GQL_20240412Parser.FullEdgeLeftOrRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fullEdgeAnyDirection}. + * @param ctx the parse tree + */ + void enterFullEdgeAnyDirection(GQL_20240412Parser.FullEdgeAnyDirectionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fullEdgeAnyDirection}. + * @param ctx the parse tree + */ + void exitFullEdgeAnyDirection(GQL_20240412Parser.FullEdgeAnyDirectionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#abbreviatedEdgePattern}. + * @param ctx the parse tree + */ + void enterAbbreviatedEdgePattern(GQL_20240412Parser.AbbreviatedEdgePatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#abbreviatedEdgePattern}. + * @param ctx the parse tree + */ + void exitAbbreviatedEdgePattern(GQL_20240412Parser.AbbreviatedEdgePatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#parenthesizedPathPatternExpression}. + * @param ctx the parse tree + */ + void enterParenthesizedPathPatternExpression(GQL_20240412Parser.ParenthesizedPathPatternExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#parenthesizedPathPatternExpression}. + * @param ctx the parse tree + */ + void exitParenthesizedPathPatternExpression(GQL_20240412Parser.ParenthesizedPathPatternExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#subpathVariableDeclaration}. + * @param ctx the parse tree + */ + void enterSubpathVariableDeclaration(GQL_20240412Parser.SubpathVariableDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#subpathVariableDeclaration}. + * @param ctx the parse tree + */ + void exitSubpathVariableDeclaration(GQL_20240412Parser.SubpathVariableDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#parenthesizedPathPatternWhereClause}. + * @param ctx the parse tree + */ + void enterParenthesizedPathPatternWhereClause(GQL_20240412Parser.ParenthesizedPathPatternWhereClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#parenthesizedPathPatternWhereClause}. + * @param ctx the parse tree + */ + void exitParenthesizedPathPatternWhereClause(GQL_20240412Parser.ParenthesizedPathPatternWhereClauseContext ctx); + /** + * Enter a parse tree produced by the {@code labelExpressionNegation} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void enterLabelExpressionNegation(GQL_20240412Parser.LabelExpressionNegationContext ctx); + /** + * Exit a parse tree produced by the {@code labelExpressionNegation} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void exitLabelExpressionNegation(GQL_20240412Parser.LabelExpressionNegationContext ctx); + /** + * Enter a parse tree produced by the {@code labelExpressionDisjunction} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void enterLabelExpressionDisjunction(GQL_20240412Parser.LabelExpressionDisjunctionContext ctx); + /** + * Exit a parse tree produced by the {@code labelExpressionDisjunction} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void exitLabelExpressionDisjunction(GQL_20240412Parser.LabelExpressionDisjunctionContext ctx); + /** + * Enter a parse tree produced by the {@code labelExpressionParenthesized} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void enterLabelExpressionParenthesized(GQL_20240412Parser.LabelExpressionParenthesizedContext ctx); + /** + * Exit a parse tree produced by the {@code labelExpressionParenthesized} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void exitLabelExpressionParenthesized(GQL_20240412Parser.LabelExpressionParenthesizedContext ctx); + /** + * Enter a parse tree produced by the {@code labelExpressionWildcard} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void enterLabelExpressionWildcard(GQL_20240412Parser.LabelExpressionWildcardContext ctx); + /** + * Exit a parse tree produced by the {@code labelExpressionWildcard} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void exitLabelExpressionWildcard(GQL_20240412Parser.LabelExpressionWildcardContext ctx); + /** + * Enter a parse tree produced by the {@code labelExpressionConjunction} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void enterLabelExpressionConjunction(GQL_20240412Parser.LabelExpressionConjunctionContext ctx); + /** + * Exit a parse tree produced by the {@code labelExpressionConjunction} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void exitLabelExpressionConjunction(GQL_20240412Parser.LabelExpressionConjunctionContext ctx); + /** + * Enter a parse tree produced by the {@code labelExpressionName} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void enterLabelExpressionName(GQL_20240412Parser.LabelExpressionNameContext ctx); + /** + * Exit a parse tree produced by the {@code labelExpressionName} + * labeled alternative in {@link GQL_20240412Parser#labelExpression}. + * @param ctx the parse tree + */ + void exitLabelExpressionName(GQL_20240412Parser.LabelExpressionNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathVariableReference}. + * @param ctx the parse tree + */ + void enterPathVariableReference(GQL_20240412Parser.PathVariableReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathVariableReference}. + * @param ctx the parse tree + */ + void exitPathVariableReference(GQL_20240412Parser.PathVariableReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementVariableReference}. + * @param ctx the parse tree + */ + void enterElementVariableReference(GQL_20240412Parser.ElementVariableReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementVariableReference}. + * @param ctx the parse tree + */ + void exitElementVariableReference(GQL_20240412Parser.ElementVariableReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphPatternQuantifier}. + * @param ctx the parse tree + */ + void enterGraphPatternQuantifier(GQL_20240412Parser.GraphPatternQuantifierContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphPatternQuantifier}. + * @param ctx the parse tree + */ + void exitGraphPatternQuantifier(GQL_20240412Parser.GraphPatternQuantifierContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fixedQuantifier}. + * @param ctx the parse tree + */ + void enterFixedQuantifier(GQL_20240412Parser.FixedQuantifierContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fixedQuantifier}. + * @param ctx the parse tree + */ + void exitFixedQuantifier(GQL_20240412Parser.FixedQuantifierContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#generalQuantifier}. + * @param ctx the parse tree + */ + void enterGeneralQuantifier(GQL_20240412Parser.GeneralQuantifierContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#generalQuantifier}. + * @param ctx the parse tree + */ + void exitGeneralQuantifier(GQL_20240412Parser.GeneralQuantifierContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#lowerBound}. + * @param ctx the parse tree + */ + void enterLowerBound(GQL_20240412Parser.LowerBoundContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#lowerBound}. + * @param ctx the parse tree + */ + void exitLowerBound(GQL_20240412Parser.LowerBoundContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#upperBound}. + * @param ctx the parse tree + */ + void enterUpperBound(GQL_20240412Parser.UpperBoundContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#upperBound}. + * @param ctx the parse tree + */ + void exitUpperBound(GQL_20240412Parser.UpperBoundContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedPathPatternExpression}. + * @param ctx the parse tree + */ + void enterSimplifiedPathPatternExpression(GQL_20240412Parser.SimplifiedPathPatternExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedPathPatternExpression}. + * @param ctx the parse tree + */ + void exitSimplifiedPathPatternExpression(GQL_20240412Parser.SimplifiedPathPatternExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingLeft}. + * @param ctx the parse tree + */ + void enterSimplifiedDefaultingLeft(GQL_20240412Parser.SimplifiedDefaultingLeftContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingLeft}. + * @param ctx the parse tree + */ + void exitSimplifiedDefaultingLeft(GQL_20240412Parser.SimplifiedDefaultingLeftContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingUndirected}. + * @param ctx the parse tree + */ + void enterSimplifiedDefaultingUndirected(GQL_20240412Parser.SimplifiedDefaultingUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingUndirected}. + * @param ctx the parse tree + */ + void exitSimplifiedDefaultingUndirected(GQL_20240412Parser.SimplifiedDefaultingUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingRight}. + * @param ctx the parse tree + */ + void enterSimplifiedDefaultingRight(GQL_20240412Parser.SimplifiedDefaultingRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingRight}. + * @param ctx the parse tree + */ + void exitSimplifiedDefaultingRight(GQL_20240412Parser.SimplifiedDefaultingRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingLeftOrUndirected}. + * @param ctx the parse tree + */ + void enterSimplifiedDefaultingLeftOrUndirected(GQL_20240412Parser.SimplifiedDefaultingLeftOrUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingLeftOrUndirected}. + * @param ctx the parse tree + */ + void exitSimplifiedDefaultingLeftOrUndirected(GQL_20240412Parser.SimplifiedDefaultingLeftOrUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingUndirectedOrRight}. + * @param ctx the parse tree + */ + void enterSimplifiedDefaultingUndirectedOrRight(GQL_20240412Parser.SimplifiedDefaultingUndirectedOrRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingUndirectedOrRight}. + * @param ctx the parse tree + */ + void exitSimplifiedDefaultingUndirectedOrRight(GQL_20240412Parser.SimplifiedDefaultingUndirectedOrRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingLeftOrRight}. + * @param ctx the parse tree + */ + void enterSimplifiedDefaultingLeftOrRight(GQL_20240412Parser.SimplifiedDefaultingLeftOrRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingLeftOrRight}. + * @param ctx the parse tree + */ + void exitSimplifiedDefaultingLeftOrRight(GQL_20240412Parser.SimplifiedDefaultingLeftOrRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingAnyDirection}. + * @param ctx the parse tree + */ + void enterSimplifiedDefaultingAnyDirection(GQL_20240412Parser.SimplifiedDefaultingAnyDirectionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedDefaultingAnyDirection}. + * @param ctx the parse tree + */ + void exitSimplifiedDefaultingAnyDirection(GQL_20240412Parser.SimplifiedDefaultingAnyDirectionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedContents}. + * @param ctx the parse tree + */ + void enterSimplifiedContents(GQL_20240412Parser.SimplifiedContentsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedContents}. + * @param ctx the parse tree + */ + void exitSimplifiedContents(GQL_20240412Parser.SimplifiedContentsContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedPathUnion}. + * @param ctx the parse tree + */ + void enterSimplifiedPathUnion(GQL_20240412Parser.SimplifiedPathUnionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedPathUnion}. + * @param ctx the parse tree + */ + void exitSimplifiedPathUnion(GQL_20240412Parser.SimplifiedPathUnionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedMultisetAlternation}. + * @param ctx the parse tree + */ + void enterSimplifiedMultisetAlternation(GQL_20240412Parser.SimplifiedMultisetAlternationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedMultisetAlternation}. + * @param ctx the parse tree + */ + void exitSimplifiedMultisetAlternation(GQL_20240412Parser.SimplifiedMultisetAlternationContext ctx); + /** + * Enter a parse tree produced by the {@code simplifiedFactorLowLabel} + * labeled alternative in {@link GQL_20240412Parser#simplifiedTerm}. + * @param ctx the parse tree + */ + void enterSimplifiedFactorLowLabel(GQL_20240412Parser.SimplifiedFactorLowLabelContext ctx); + /** + * Exit a parse tree produced by the {@code simplifiedFactorLowLabel} + * labeled alternative in {@link GQL_20240412Parser#simplifiedTerm}. + * @param ctx the parse tree + */ + void exitSimplifiedFactorLowLabel(GQL_20240412Parser.SimplifiedFactorLowLabelContext ctx); + /** + * Enter a parse tree produced by the {@code simplifiedConcatenationLabel} + * labeled alternative in {@link GQL_20240412Parser#simplifiedTerm}. + * @param ctx the parse tree + */ + void enterSimplifiedConcatenationLabel(GQL_20240412Parser.SimplifiedConcatenationLabelContext ctx); + /** + * Exit a parse tree produced by the {@code simplifiedConcatenationLabel} + * labeled alternative in {@link GQL_20240412Parser#simplifiedTerm}. + * @param ctx the parse tree + */ + void exitSimplifiedConcatenationLabel(GQL_20240412Parser.SimplifiedConcatenationLabelContext ctx); + /** + * Enter a parse tree produced by the {@code simplifiedConjunctionLabel} + * labeled alternative in {@link GQL_20240412Parser#simplifiedFactorLow}. + * @param ctx the parse tree + */ + void enterSimplifiedConjunctionLabel(GQL_20240412Parser.SimplifiedConjunctionLabelContext ctx); + /** + * Exit a parse tree produced by the {@code simplifiedConjunctionLabel} + * labeled alternative in {@link GQL_20240412Parser#simplifiedFactorLow}. + * @param ctx the parse tree + */ + void exitSimplifiedConjunctionLabel(GQL_20240412Parser.SimplifiedConjunctionLabelContext ctx); + /** + * Enter a parse tree produced by the {@code simplifiedFactorHighLabel} + * labeled alternative in {@link GQL_20240412Parser#simplifiedFactorLow}. + * @param ctx the parse tree + */ + void enterSimplifiedFactorHighLabel(GQL_20240412Parser.SimplifiedFactorHighLabelContext ctx); + /** + * Exit a parse tree produced by the {@code simplifiedFactorHighLabel} + * labeled alternative in {@link GQL_20240412Parser#simplifiedFactorLow}. + * @param ctx the parse tree + */ + void exitSimplifiedFactorHighLabel(GQL_20240412Parser.SimplifiedFactorHighLabelContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedFactorHigh}. + * @param ctx the parse tree + */ + void enterSimplifiedFactorHigh(GQL_20240412Parser.SimplifiedFactorHighContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedFactorHigh}. + * @param ctx the parse tree + */ + void exitSimplifiedFactorHigh(GQL_20240412Parser.SimplifiedFactorHighContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedQuantified}. + * @param ctx the parse tree + */ + void enterSimplifiedQuantified(GQL_20240412Parser.SimplifiedQuantifiedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedQuantified}. + * @param ctx the parse tree + */ + void exitSimplifiedQuantified(GQL_20240412Parser.SimplifiedQuantifiedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedQuestioned}. + * @param ctx the parse tree + */ + void enterSimplifiedQuestioned(GQL_20240412Parser.SimplifiedQuestionedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedQuestioned}. + * @param ctx the parse tree + */ + void exitSimplifiedQuestioned(GQL_20240412Parser.SimplifiedQuestionedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedTertiary}. + * @param ctx the parse tree + */ + void enterSimplifiedTertiary(GQL_20240412Parser.SimplifiedTertiaryContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedTertiary}. + * @param ctx the parse tree + */ + void exitSimplifiedTertiary(GQL_20240412Parser.SimplifiedTertiaryContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedDirectionOverride}. + * @param ctx the parse tree + */ + void enterSimplifiedDirectionOverride(GQL_20240412Parser.SimplifiedDirectionOverrideContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedDirectionOverride}. + * @param ctx the parse tree + */ + void exitSimplifiedDirectionOverride(GQL_20240412Parser.SimplifiedDirectionOverrideContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideLeft}. + * @param ctx the parse tree + */ + void enterSimplifiedOverrideLeft(GQL_20240412Parser.SimplifiedOverrideLeftContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideLeft}. + * @param ctx the parse tree + */ + void exitSimplifiedOverrideLeft(GQL_20240412Parser.SimplifiedOverrideLeftContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideUndirected}. + * @param ctx the parse tree + */ + void enterSimplifiedOverrideUndirected(GQL_20240412Parser.SimplifiedOverrideUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideUndirected}. + * @param ctx the parse tree + */ + void exitSimplifiedOverrideUndirected(GQL_20240412Parser.SimplifiedOverrideUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideRight}. + * @param ctx the parse tree + */ + void enterSimplifiedOverrideRight(GQL_20240412Parser.SimplifiedOverrideRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideRight}. + * @param ctx the parse tree + */ + void exitSimplifiedOverrideRight(GQL_20240412Parser.SimplifiedOverrideRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideLeftOrUndirected}. + * @param ctx the parse tree + */ + void enterSimplifiedOverrideLeftOrUndirected(GQL_20240412Parser.SimplifiedOverrideLeftOrUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideLeftOrUndirected}. + * @param ctx the parse tree + */ + void exitSimplifiedOverrideLeftOrUndirected(GQL_20240412Parser.SimplifiedOverrideLeftOrUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideUndirectedOrRight}. + * @param ctx the parse tree + */ + void enterSimplifiedOverrideUndirectedOrRight(GQL_20240412Parser.SimplifiedOverrideUndirectedOrRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideUndirectedOrRight}. + * @param ctx the parse tree + */ + void exitSimplifiedOverrideUndirectedOrRight(GQL_20240412Parser.SimplifiedOverrideUndirectedOrRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideLeftOrRight}. + * @param ctx the parse tree + */ + void enterSimplifiedOverrideLeftOrRight(GQL_20240412Parser.SimplifiedOverrideLeftOrRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideLeftOrRight}. + * @param ctx the parse tree + */ + void exitSimplifiedOverrideLeftOrRight(GQL_20240412Parser.SimplifiedOverrideLeftOrRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideAnyDirection}. + * @param ctx the parse tree + */ + void enterSimplifiedOverrideAnyDirection(GQL_20240412Parser.SimplifiedOverrideAnyDirectionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedOverrideAnyDirection}. + * @param ctx the parse tree + */ + void exitSimplifiedOverrideAnyDirection(GQL_20240412Parser.SimplifiedOverrideAnyDirectionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedSecondary}. + * @param ctx the parse tree + */ + void enterSimplifiedSecondary(GQL_20240412Parser.SimplifiedSecondaryContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedSecondary}. + * @param ctx the parse tree + */ + void exitSimplifiedSecondary(GQL_20240412Parser.SimplifiedSecondaryContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedNegation}. + * @param ctx the parse tree + */ + void enterSimplifiedNegation(GQL_20240412Parser.SimplifiedNegationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedNegation}. + * @param ctx the parse tree + */ + void exitSimplifiedNegation(GQL_20240412Parser.SimplifiedNegationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simplifiedPrimary}. + * @param ctx the parse tree + */ + void enterSimplifiedPrimary(GQL_20240412Parser.SimplifiedPrimaryContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simplifiedPrimary}. + * @param ctx the parse tree + */ + void exitSimplifiedPrimary(GQL_20240412Parser.SimplifiedPrimaryContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#whereClause}. + * @param ctx the parse tree + */ + void enterWhereClause(GQL_20240412Parser.WhereClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#whereClause}. + * @param ctx the parse tree + */ + void exitWhereClause(GQL_20240412Parser.WhereClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#yieldClause}. + * @param ctx the parse tree + */ + void enterYieldClause(GQL_20240412Parser.YieldClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#yieldClause}. + * @param ctx the parse tree + */ + void exitYieldClause(GQL_20240412Parser.YieldClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#yieldItemList}. + * @param ctx the parse tree + */ + void enterYieldItemList(GQL_20240412Parser.YieldItemListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#yieldItemList}. + * @param ctx the parse tree + */ + void exitYieldItemList(GQL_20240412Parser.YieldItemListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#yieldItem}. + * @param ctx the parse tree + */ + void enterYieldItem(GQL_20240412Parser.YieldItemContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#yieldItem}. + * @param ctx the parse tree + */ + void exitYieldItem(GQL_20240412Parser.YieldItemContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#yieldItemName}. + * @param ctx the parse tree + */ + void enterYieldItemName(GQL_20240412Parser.YieldItemNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#yieldItemName}. + * @param ctx the parse tree + */ + void exitYieldItemName(GQL_20240412Parser.YieldItemNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#yieldItemAlias}. + * @param ctx the parse tree + */ + void enterYieldItemAlias(GQL_20240412Parser.YieldItemAliasContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#yieldItemAlias}. + * @param ctx the parse tree + */ + void exitYieldItemAlias(GQL_20240412Parser.YieldItemAliasContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#groupByClause}. + * @param ctx the parse tree + */ + void enterGroupByClause(GQL_20240412Parser.GroupByClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#groupByClause}. + * @param ctx the parse tree + */ + void exitGroupByClause(GQL_20240412Parser.GroupByClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#groupingElementList}. + * @param ctx the parse tree + */ + void enterGroupingElementList(GQL_20240412Parser.GroupingElementListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#groupingElementList}. + * @param ctx the parse tree + */ + void exitGroupingElementList(GQL_20240412Parser.GroupingElementListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#groupingElement}. + * @param ctx the parse tree + */ + void enterGroupingElement(GQL_20240412Parser.GroupingElementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#groupingElement}. + * @param ctx the parse tree + */ + void exitGroupingElement(GQL_20240412Parser.GroupingElementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#emptyGroupingSet}. + * @param ctx the parse tree + */ + void enterEmptyGroupingSet(GQL_20240412Parser.EmptyGroupingSetContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#emptyGroupingSet}. + * @param ctx the parse tree + */ + void exitEmptyGroupingSet(GQL_20240412Parser.EmptyGroupingSetContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#orderByClause}. + * @param ctx the parse tree + */ + void enterOrderByClause(GQL_20240412Parser.OrderByClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#orderByClause}. + * @param ctx the parse tree + */ + void exitOrderByClause(GQL_20240412Parser.OrderByClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sortSpecificationList}. + * @param ctx the parse tree + */ + void enterSortSpecificationList(GQL_20240412Parser.SortSpecificationListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sortSpecificationList}. + * @param ctx the parse tree + */ + void exitSortSpecificationList(GQL_20240412Parser.SortSpecificationListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sortSpecification}. + * @param ctx the parse tree + */ + void enterSortSpecification(GQL_20240412Parser.SortSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sortSpecification}. + * @param ctx the parse tree + */ + void exitSortSpecification(GQL_20240412Parser.SortSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sortKey}. + * @param ctx the parse tree + */ + void enterSortKey(GQL_20240412Parser.SortKeyContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sortKey}. + * @param ctx the parse tree + */ + void exitSortKey(GQL_20240412Parser.SortKeyContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#orderingSpecification}. + * @param ctx the parse tree + */ + void enterOrderingSpecification(GQL_20240412Parser.OrderingSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#orderingSpecification}. + * @param ctx the parse tree + */ + void exitOrderingSpecification(GQL_20240412Parser.OrderingSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nullOrdering}. + * @param ctx the parse tree + */ + void enterNullOrdering(GQL_20240412Parser.NullOrderingContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nullOrdering}. + * @param ctx the parse tree + */ + void exitNullOrdering(GQL_20240412Parser.NullOrderingContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#limitClause}. + * @param ctx the parse tree + */ + void enterLimitClause(GQL_20240412Parser.LimitClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#limitClause}. + * @param ctx the parse tree + */ + void exitLimitClause(GQL_20240412Parser.LimitClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#offsetClause}. + * @param ctx the parse tree + */ + void enterOffsetClause(GQL_20240412Parser.OffsetClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#offsetClause}. + * @param ctx the parse tree + */ + void exitOffsetClause(GQL_20240412Parser.OffsetClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#offsetSynonym}. + * @param ctx the parse tree + */ + void enterOffsetSynonym(GQL_20240412Parser.OffsetSynonymContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#offsetSynonym}. + * @param ctx the parse tree + */ + void exitOffsetSynonym(GQL_20240412Parser.OffsetSynonymContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#schemaReference}. + * @param ctx the parse tree + */ + void enterSchemaReference(GQL_20240412Parser.SchemaReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#schemaReference}. + * @param ctx the parse tree + */ + void exitSchemaReference(GQL_20240412Parser.SchemaReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#absoluteCatalogSchemaReference}. + * @param ctx the parse tree + */ + void enterAbsoluteCatalogSchemaReference(GQL_20240412Parser.AbsoluteCatalogSchemaReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#absoluteCatalogSchemaReference}. + * @param ctx the parse tree + */ + void exitAbsoluteCatalogSchemaReference(GQL_20240412Parser.AbsoluteCatalogSchemaReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#catalogSchemaParentAndName}. + * @param ctx the parse tree + */ + void enterCatalogSchemaParentAndName(GQL_20240412Parser.CatalogSchemaParentAndNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#catalogSchemaParentAndName}. + * @param ctx the parse tree + */ + void exitCatalogSchemaParentAndName(GQL_20240412Parser.CatalogSchemaParentAndNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#relativeCatalogSchemaReference}. + * @param ctx the parse tree + */ + void enterRelativeCatalogSchemaReference(GQL_20240412Parser.RelativeCatalogSchemaReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#relativeCatalogSchemaReference}. + * @param ctx the parse tree + */ + void exitRelativeCatalogSchemaReference(GQL_20240412Parser.RelativeCatalogSchemaReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#predefinedSchemaReference}. + * @param ctx the parse tree + */ + void enterPredefinedSchemaReference(GQL_20240412Parser.PredefinedSchemaReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#predefinedSchemaReference}. + * @param ctx the parse tree + */ + void exitPredefinedSchemaReference(GQL_20240412Parser.PredefinedSchemaReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#absoluteDirectoryPath}. + * @param ctx the parse tree + */ + void enterAbsoluteDirectoryPath(GQL_20240412Parser.AbsoluteDirectoryPathContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#absoluteDirectoryPath}. + * @param ctx the parse tree + */ + void exitAbsoluteDirectoryPath(GQL_20240412Parser.AbsoluteDirectoryPathContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#relativeDirectoryPath}. + * @param ctx the parse tree + */ + void enterRelativeDirectoryPath(GQL_20240412Parser.RelativeDirectoryPathContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#relativeDirectoryPath}. + * @param ctx the parse tree + */ + void exitRelativeDirectoryPath(GQL_20240412Parser.RelativeDirectoryPathContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleDirectoryPath}. + * @param ctx the parse tree + */ + void enterSimpleDirectoryPath(GQL_20240412Parser.SimpleDirectoryPathContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleDirectoryPath}. + * @param ctx the parse tree + */ + void exitSimpleDirectoryPath(GQL_20240412Parser.SimpleDirectoryPathContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphReference}. + * @param ctx the parse tree + */ + void enterGraphReference(GQL_20240412Parser.GraphReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphReference}. + * @param ctx the parse tree + */ + void exitGraphReference(GQL_20240412Parser.GraphReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#catalogGraphParentAndName}. + * @param ctx the parse tree + */ + void enterCatalogGraphParentAndName(GQL_20240412Parser.CatalogGraphParentAndNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#catalogGraphParentAndName}. + * @param ctx the parse tree + */ + void exitCatalogGraphParentAndName(GQL_20240412Parser.CatalogGraphParentAndNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#homeGraph}. + * @param ctx the parse tree + */ + void enterHomeGraph(GQL_20240412Parser.HomeGraphContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#homeGraph}. + * @param ctx the parse tree + */ + void exitHomeGraph(GQL_20240412Parser.HomeGraphContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphTypeReference}. + * @param ctx the parse tree + */ + void enterGraphTypeReference(GQL_20240412Parser.GraphTypeReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphTypeReference}. + * @param ctx the parse tree + */ + void exitGraphTypeReference(GQL_20240412Parser.GraphTypeReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#catalogGraphTypeParentAndName}. + * @param ctx the parse tree + */ + void enterCatalogGraphTypeParentAndName(GQL_20240412Parser.CatalogGraphTypeParentAndNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#catalogGraphTypeParentAndName}. + * @param ctx the parse tree + */ + void exitCatalogGraphTypeParentAndName(GQL_20240412Parser.CatalogGraphTypeParentAndNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingTableReference}. + * @param ctx the parse tree + */ + void enterBindingTableReference(GQL_20240412Parser.BindingTableReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingTableReference}. + * @param ctx the parse tree + */ + void exitBindingTableReference(GQL_20240412Parser.BindingTableReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#procedureReference}. + * @param ctx the parse tree + */ + void enterProcedureReference(GQL_20240412Parser.ProcedureReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#procedureReference}. + * @param ctx the parse tree + */ + void exitProcedureReference(GQL_20240412Parser.ProcedureReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#catalogProcedureParentAndName}. + * @param ctx the parse tree + */ + void enterCatalogProcedureParentAndName(GQL_20240412Parser.CatalogProcedureParentAndNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#catalogProcedureParentAndName}. + * @param ctx the parse tree + */ + void exitCatalogProcedureParentAndName(GQL_20240412Parser.CatalogProcedureParentAndNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#catalogObjectParentReference}. + * @param ctx the parse tree + */ + void enterCatalogObjectParentReference(GQL_20240412Parser.CatalogObjectParentReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#catalogObjectParentReference}. + * @param ctx the parse tree + */ + void exitCatalogObjectParentReference(GQL_20240412Parser.CatalogObjectParentReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#referenceParameterSpecification}. + * @param ctx the parse tree + */ + void enterReferenceParameterSpecification(GQL_20240412Parser.ReferenceParameterSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#referenceParameterSpecification}. + * @param ctx the parse tree + */ + void exitReferenceParameterSpecification(GQL_20240412Parser.ReferenceParameterSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nestedGraphTypeSpecification}. + * @param ctx the parse tree + */ + void enterNestedGraphTypeSpecification(GQL_20240412Parser.NestedGraphTypeSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nestedGraphTypeSpecification}. + * @param ctx the parse tree + */ + void exitNestedGraphTypeSpecification(GQL_20240412Parser.NestedGraphTypeSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphTypeSpecificationBody}. + * @param ctx the parse tree + */ + void enterGraphTypeSpecificationBody(GQL_20240412Parser.GraphTypeSpecificationBodyContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphTypeSpecificationBody}. + * @param ctx the parse tree + */ + void exitGraphTypeSpecificationBody(GQL_20240412Parser.GraphTypeSpecificationBodyContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementTypeList}. + * @param ctx the parse tree + */ + void enterElementTypeList(GQL_20240412Parser.ElementTypeListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementTypeList}. + * @param ctx the parse tree + */ + void exitElementTypeList(GQL_20240412Parser.ElementTypeListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementTypeSpecification}. + * @param ctx the parse tree + */ + void enterElementTypeSpecification(GQL_20240412Parser.ElementTypeSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementTypeSpecification}. + * @param ctx the parse tree + */ + void exitElementTypeSpecification(GQL_20240412Parser.ElementTypeSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypeSpecification}. + * @param ctx the parse tree + */ + void enterNodeTypeSpecification(GQL_20240412Parser.NodeTypeSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypeSpecification}. + * @param ctx the parse tree + */ + void exitNodeTypeSpecification(GQL_20240412Parser.NodeTypeSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypePattern}. + * @param ctx the parse tree + */ + void enterNodeTypePattern(GQL_20240412Parser.NodeTypePatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypePattern}. + * @param ctx the parse tree + */ + void exitNodeTypePattern(GQL_20240412Parser.NodeTypePatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypePhrase}. + * @param ctx the parse tree + */ + void enterNodeTypePhrase(GQL_20240412Parser.NodeTypePhraseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypePhrase}. + * @param ctx the parse tree + */ + void exitNodeTypePhrase(GQL_20240412Parser.NodeTypePhraseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypePhraseFiller}. + * @param ctx the parse tree + */ + void enterNodeTypePhraseFiller(GQL_20240412Parser.NodeTypePhraseFillerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypePhraseFiller}. + * @param ctx the parse tree + */ + void exitNodeTypePhraseFiller(GQL_20240412Parser.NodeTypePhraseFillerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypeFiller}. + * @param ctx the parse tree + */ + void enterNodeTypeFiller(GQL_20240412Parser.NodeTypeFillerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypeFiller}. + * @param ctx the parse tree + */ + void exitNodeTypeFiller(GQL_20240412Parser.NodeTypeFillerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#localNodeTypeAlias}. + * @param ctx the parse tree + */ + void enterLocalNodeTypeAlias(GQL_20240412Parser.LocalNodeTypeAliasContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#localNodeTypeAlias}. + * @param ctx the parse tree + */ + void exitLocalNodeTypeAlias(GQL_20240412Parser.LocalNodeTypeAliasContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypeImpliedContent}. + * @param ctx the parse tree + */ + void enterNodeTypeImpliedContent(GQL_20240412Parser.NodeTypeImpliedContentContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypeImpliedContent}. + * @param ctx the parse tree + */ + void exitNodeTypeImpliedContent(GQL_20240412Parser.NodeTypeImpliedContentContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypeKeyLabelSet}. + * @param ctx the parse tree + */ + void enterNodeTypeKeyLabelSet(GQL_20240412Parser.NodeTypeKeyLabelSetContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypeKeyLabelSet}. + * @param ctx the parse tree + */ + void exitNodeTypeKeyLabelSet(GQL_20240412Parser.NodeTypeKeyLabelSetContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypeLabelSet}. + * @param ctx the parse tree + */ + void enterNodeTypeLabelSet(GQL_20240412Parser.NodeTypeLabelSetContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypeLabelSet}. + * @param ctx the parse tree + */ + void exitNodeTypeLabelSet(GQL_20240412Parser.NodeTypeLabelSetContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypePropertyTypes}. + * @param ctx the parse tree + */ + void enterNodeTypePropertyTypes(GQL_20240412Parser.NodeTypePropertyTypesContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypePropertyTypes}. + * @param ctx the parse tree + */ + void exitNodeTypePropertyTypes(GQL_20240412Parser.NodeTypePropertyTypesContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypeSpecification}. + * @param ctx the parse tree + */ + void enterEdgeTypeSpecification(GQL_20240412Parser.EdgeTypeSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypeSpecification}. + * @param ctx the parse tree + */ + void exitEdgeTypeSpecification(GQL_20240412Parser.EdgeTypeSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypePattern}. + * @param ctx the parse tree + */ + void enterEdgeTypePattern(GQL_20240412Parser.EdgeTypePatternContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypePattern}. + * @param ctx the parse tree + */ + void exitEdgeTypePattern(GQL_20240412Parser.EdgeTypePatternContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypePhrase}. + * @param ctx the parse tree + */ + void enterEdgeTypePhrase(GQL_20240412Parser.EdgeTypePhraseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypePhrase}. + * @param ctx the parse tree + */ + void exitEdgeTypePhrase(GQL_20240412Parser.EdgeTypePhraseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypePhraseFiller}. + * @param ctx the parse tree + */ + void enterEdgeTypePhraseFiller(GQL_20240412Parser.EdgeTypePhraseFillerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypePhraseFiller}. + * @param ctx the parse tree + */ + void exitEdgeTypePhraseFiller(GQL_20240412Parser.EdgeTypePhraseFillerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypeFiller}. + * @param ctx the parse tree + */ + void enterEdgeTypeFiller(GQL_20240412Parser.EdgeTypeFillerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypeFiller}. + * @param ctx the parse tree + */ + void exitEdgeTypeFiller(GQL_20240412Parser.EdgeTypeFillerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypeImpliedContent}. + * @param ctx the parse tree + */ + void enterEdgeTypeImpliedContent(GQL_20240412Parser.EdgeTypeImpliedContentContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypeImpliedContent}. + * @param ctx the parse tree + */ + void exitEdgeTypeImpliedContent(GQL_20240412Parser.EdgeTypeImpliedContentContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypeKeyLabelSet}. + * @param ctx the parse tree + */ + void enterEdgeTypeKeyLabelSet(GQL_20240412Parser.EdgeTypeKeyLabelSetContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypeKeyLabelSet}. + * @param ctx the parse tree + */ + void exitEdgeTypeKeyLabelSet(GQL_20240412Parser.EdgeTypeKeyLabelSetContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypeLabelSet}. + * @param ctx the parse tree + */ + void enterEdgeTypeLabelSet(GQL_20240412Parser.EdgeTypeLabelSetContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypeLabelSet}. + * @param ctx the parse tree + */ + void exitEdgeTypeLabelSet(GQL_20240412Parser.EdgeTypeLabelSetContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypePropertyTypes}. + * @param ctx the parse tree + */ + void enterEdgeTypePropertyTypes(GQL_20240412Parser.EdgeTypePropertyTypesContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypePropertyTypes}. + * @param ctx the parse tree + */ + void exitEdgeTypePropertyTypes(GQL_20240412Parser.EdgeTypePropertyTypesContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypePatternDirected}. + * @param ctx the parse tree + */ + void enterEdgeTypePatternDirected(GQL_20240412Parser.EdgeTypePatternDirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypePatternDirected}. + * @param ctx the parse tree + */ + void exitEdgeTypePatternDirected(GQL_20240412Parser.EdgeTypePatternDirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypePatternPointingRight}. + * @param ctx the parse tree + */ + void enterEdgeTypePatternPointingRight(GQL_20240412Parser.EdgeTypePatternPointingRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypePatternPointingRight}. + * @param ctx the parse tree + */ + void exitEdgeTypePatternPointingRight(GQL_20240412Parser.EdgeTypePatternPointingRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypePatternPointingLeft}. + * @param ctx the parse tree + */ + void enterEdgeTypePatternPointingLeft(GQL_20240412Parser.EdgeTypePatternPointingLeftContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypePatternPointingLeft}. + * @param ctx the parse tree + */ + void exitEdgeTypePatternPointingLeft(GQL_20240412Parser.EdgeTypePatternPointingLeftContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypePatternUndirected}. + * @param ctx the parse tree + */ + void enterEdgeTypePatternUndirected(GQL_20240412Parser.EdgeTypePatternUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypePatternUndirected}. + * @param ctx the parse tree + */ + void exitEdgeTypePatternUndirected(GQL_20240412Parser.EdgeTypePatternUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#arcTypePointingRight}. + * @param ctx the parse tree + */ + void enterArcTypePointingRight(GQL_20240412Parser.ArcTypePointingRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#arcTypePointingRight}. + * @param ctx the parse tree + */ + void exitArcTypePointingRight(GQL_20240412Parser.ArcTypePointingRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#arcTypePointingLeft}. + * @param ctx the parse tree + */ + void enterArcTypePointingLeft(GQL_20240412Parser.ArcTypePointingLeftContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#arcTypePointingLeft}. + * @param ctx the parse tree + */ + void exitArcTypePointingLeft(GQL_20240412Parser.ArcTypePointingLeftContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#arcTypeUndirected}. + * @param ctx the parse tree + */ + void enterArcTypeUndirected(GQL_20240412Parser.ArcTypeUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#arcTypeUndirected}. + * @param ctx the parse tree + */ + void exitArcTypeUndirected(GQL_20240412Parser.ArcTypeUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sourceNodeTypeReference}. + * @param ctx the parse tree + */ + void enterSourceNodeTypeReference(GQL_20240412Parser.SourceNodeTypeReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sourceNodeTypeReference}. + * @param ctx the parse tree + */ + void exitSourceNodeTypeReference(GQL_20240412Parser.SourceNodeTypeReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#destinationNodeTypeReference}. + * @param ctx the parse tree + */ + void enterDestinationNodeTypeReference(GQL_20240412Parser.DestinationNodeTypeReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#destinationNodeTypeReference}. + * @param ctx the parse tree + */ + void exitDestinationNodeTypeReference(GQL_20240412Parser.DestinationNodeTypeReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeKind}. + * @param ctx the parse tree + */ + void enterEdgeKind(GQL_20240412Parser.EdgeKindContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeKind}. + * @param ctx the parse tree + */ + void exitEdgeKind(GQL_20240412Parser.EdgeKindContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#endpointPairPhrase}. + * @param ctx the parse tree + */ + void enterEndpointPairPhrase(GQL_20240412Parser.EndpointPairPhraseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#endpointPairPhrase}. + * @param ctx the parse tree + */ + void exitEndpointPairPhrase(GQL_20240412Parser.EndpointPairPhraseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#endpointPair}. + * @param ctx the parse tree + */ + void enterEndpointPair(GQL_20240412Parser.EndpointPairContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#endpointPair}. + * @param ctx the parse tree + */ + void exitEndpointPair(GQL_20240412Parser.EndpointPairContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#endpointPairDirected}. + * @param ctx the parse tree + */ + void enterEndpointPairDirected(GQL_20240412Parser.EndpointPairDirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#endpointPairDirected}. + * @param ctx the parse tree + */ + void exitEndpointPairDirected(GQL_20240412Parser.EndpointPairDirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#endpointPairPointingRight}. + * @param ctx the parse tree + */ + void enterEndpointPairPointingRight(GQL_20240412Parser.EndpointPairPointingRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#endpointPairPointingRight}. + * @param ctx the parse tree + */ + void exitEndpointPairPointingRight(GQL_20240412Parser.EndpointPairPointingRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#endpointPairPointingLeft}. + * @param ctx the parse tree + */ + void enterEndpointPairPointingLeft(GQL_20240412Parser.EndpointPairPointingLeftContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#endpointPairPointingLeft}. + * @param ctx the parse tree + */ + void exitEndpointPairPointingLeft(GQL_20240412Parser.EndpointPairPointingLeftContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#endpointPairUndirected}. + * @param ctx the parse tree + */ + void enterEndpointPairUndirected(GQL_20240412Parser.EndpointPairUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#endpointPairUndirected}. + * @param ctx the parse tree + */ + void exitEndpointPairUndirected(GQL_20240412Parser.EndpointPairUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#connectorPointingRight}. + * @param ctx the parse tree + */ + void enterConnectorPointingRight(GQL_20240412Parser.ConnectorPointingRightContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#connectorPointingRight}. + * @param ctx the parse tree + */ + void exitConnectorPointingRight(GQL_20240412Parser.ConnectorPointingRightContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#connectorUndirected}. + * @param ctx the parse tree + */ + void enterConnectorUndirected(GQL_20240412Parser.ConnectorUndirectedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#connectorUndirected}. + * @param ctx the parse tree + */ + void exitConnectorUndirected(GQL_20240412Parser.ConnectorUndirectedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sourceNodeTypeAlias}. + * @param ctx the parse tree + */ + void enterSourceNodeTypeAlias(GQL_20240412Parser.SourceNodeTypeAliasContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sourceNodeTypeAlias}. + * @param ctx the parse tree + */ + void exitSourceNodeTypeAlias(GQL_20240412Parser.SourceNodeTypeAliasContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#destinationNodeTypeAlias}. + * @param ctx the parse tree + */ + void enterDestinationNodeTypeAlias(GQL_20240412Parser.DestinationNodeTypeAliasContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#destinationNodeTypeAlias}. + * @param ctx the parse tree + */ + void exitDestinationNodeTypeAlias(GQL_20240412Parser.DestinationNodeTypeAliasContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#labelSetPhrase}. + * @param ctx the parse tree + */ + void enterLabelSetPhrase(GQL_20240412Parser.LabelSetPhraseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#labelSetPhrase}. + * @param ctx the parse tree + */ + void exitLabelSetPhrase(GQL_20240412Parser.LabelSetPhraseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#labelSetSpecification}. + * @param ctx the parse tree + */ + void enterLabelSetSpecification(GQL_20240412Parser.LabelSetSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#labelSetSpecification}. + * @param ctx the parse tree + */ + void exitLabelSetSpecification(GQL_20240412Parser.LabelSetSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#propertyTypesSpecification}. + * @param ctx the parse tree + */ + void enterPropertyTypesSpecification(GQL_20240412Parser.PropertyTypesSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#propertyTypesSpecification}. + * @param ctx the parse tree + */ + void exitPropertyTypesSpecification(GQL_20240412Parser.PropertyTypesSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#propertyTypeList}. + * @param ctx the parse tree + */ + void enterPropertyTypeList(GQL_20240412Parser.PropertyTypeListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#propertyTypeList}. + * @param ctx the parse tree + */ + void exitPropertyTypeList(GQL_20240412Parser.PropertyTypeListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#propertyType}. + * @param ctx the parse tree + */ + void enterPropertyType(GQL_20240412Parser.PropertyTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#propertyType}. + * @param ctx the parse tree + */ + void exitPropertyType(GQL_20240412Parser.PropertyTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#propertyValueType}. + * @param ctx the parse tree + */ + void enterPropertyValueType(GQL_20240412Parser.PropertyValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#propertyValueType}. + * @param ctx the parse tree + */ + void exitPropertyValueType(GQL_20240412Parser.PropertyValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingTableType}. + * @param ctx the parse tree + */ + void enterBindingTableType(GQL_20240412Parser.BindingTableTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingTableType}. + * @param ctx the parse tree + */ + void exitBindingTableType(GQL_20240412Parser.BindingTableTypeContext ctx); + /** + * Enter a parse tree produced by the {@code dynamicPropertyValueTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterDynamicPropertyValueTypeLabel(GQL_20240412Parser.DynamicPropertyValueTypeLabelContext ctx); + /** + * Exit a parse tree produced by the {@code dynamicPropertyValueTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitDynamicPropertyValueTypeLabel(GQL_20240412Parser.DynamicPropertyValueTypeLabelContext ctx); + /** + * Enter a parse tree produced by the {@code closedDynamicUnionTypeAtl1} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterClosedDynamicUnionTypeAtl1(GQL_20240412Parser.ClosedDynamicUnionTypeAtl1Context ctx); + /** + * Exit a parse tree produced by the {@code closedDynamicUnionTypeAtl1} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitClosedDynamicUnionTypeAtl1(GQL_20240412Parser.ClosedDynamicUnionTypeAtl1Context ctx); + /** + * Enter a parse tree produced by the {@code closedDynamicUnionTypeAtl2} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterClosedDynamicUnionTypeAtl2(GQL_20240412Parser.ClosedDynamicUnionTypeAtl2Context ctx); + /** + * Exit a parse tree produced by the {@code closedDynamicUnionTypeAtl2} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitClosedDynamicUnionTypeAtl2(GQL_20240412Parser.ClosedDynamicUnionTypeAtl2Context ctx); + /** + * Enter a parse tree produced by the {@code pathValueTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterPathValueTypeLabel(GQL_20240412Parser.PathValueTypeLabelContext ctx); + /** + * Exit a parse tree produced by the {@code pathValueTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitPathValueTypeLabel(GQL_20240412Parser.PathValueTypeLabelContext ctx); + /** + * Enter a parse tree produced by the {@code listValueTypeAlt3} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterListValueTypeAlt3(GQL_20240412Parser.ListValueTypeAlt3Context ctx); + /** + * Exit a parse tree produced by the {@code listValueTypeAlt3} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitListValueTypeAlt3(GQL_20240412Parser.ListValueTypeAlt3Context ctx); + /** + * Enter a parse tree produced by the {@code listValueTypeAlt2} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterListValueTypeAlt2(GQL_20240412Parser.ListValueTypeAlt2Context ctx); + /** + * Exit a parse tree produced by the {@code listValueTypeAlt2} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitListValueTypeAlt2(GQL_20240412Parser.ListValueTypeAlt2Context ctx); + /** + * Enter a parse tree produced by the {@code listValueTypeAlt1} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterListValueTypeAlt1(GQL_20240412Parser.ListValueTypeAlt1Context ctx); + /** + * Exit a parse tree produced by the {@code listValueTypeAlt1} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitListValueTypeAlt1(GQL_20240412Parser.ListValueTypeAlt1Context ctx); + /** + * Enter a parse tree produced by the {@code predefinedTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterPredefinedTypeLabel(GQL_20240412Parser.PredefinedTypeLabelContext ctx); + /** + * Exit a parse tree produced by the {@code predefinedTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitPredefinedTypeLabel(GQL_20240412Parser.PredefinedTypeLabelContext ctx); + /** + * Enter a parse tree produced by the {@code recordTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterRecordTypeLabel(GQL_20240412Parser.RecordTypeLabelContext ctx); + /** + * Exit a parse tree produced by the {@code recordTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitRecordTypeLabel(GQL_20240412Parser.RecordTypeLabelContext ctx); + /** + * Enter a parse tree produced by the {@code openDynamicUnionTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void enterOpenDynamicUnionTypeLabel(GQL_20240412Parser.OpenDynamicUnionTypeLabelContext ctx); + /** + * Exit a parse tree produced by the {@code openDynamicUnionTypeLabel} + * labeled alternative in {@link GQL_20240412Parser#valueType}. + * @param ctx the parse tree + */ + void exitOpenDynamicUnionTypeLabel(GQL_20240412Parser.OpenDynamicUnionTypeLabelContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#typed}. + * @param ctx the parse tree + */ + void enterTyped(GQL_20240412Parser.TypedContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#typed}. + * @param ctx the parse tree + */ + void exitTyped(GQL_20240412Parser.TypedContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#predefinedType}. + * @param ctx the parse tree + */ + void enterPredefinedType(GQL_20240412Parser.PredefinedTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#predefinedType}. + * @param ctx the parse tree + */ + void exitPredefinedType(GQL_20240412Parser.PredefinedTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#booleanType}. + * @param ctx the parse tree + */ + void enterBooleanType(GQL_20240412Parser.BooleanTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#booleanType}. + * @param ctx the parse tree + */ + void exitBooleanType(GQL_20240412Parser.BooleanTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#characterStringType}. + * @param ctx the parse tree + */ + void enterCharacterStringType(GQL_20240412Parser.CharacterStringTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#characterStringType}. + * @param ctx the parse tree + */ + void exitCharacterStringType(GQL_20240412Parser.CharacterStringTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#byteStringType}. + * @param ctx the parse tree + */ + void enterByteStringType(GQL_20240412Parser.ByteStringTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#byteStringType}. + * @param ctx the parse tree + */ + void exitByteStringType(GQL_20240412Parser.ByteStringTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#minLength}. + * @param ctx the parse tree + */ + void enterMinLength(GQL_20240412Parser.MinLengthContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#minLength}. + * @param ctx the parse tree + */ + void exitMinLength(GQL_20240412Parser.MinLengthContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#maxLength}. + * @param ctx the parse tree + */ + void enterMaxLength(GQL_20240412Parser.MaxLengthContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#maxLength}. + * @param ctx the parse tree + */ + void exitMaxLength(GQL_20240412Parser.MaxLengthContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fixedLength}. + * @param ctx the parse tree + */ + void enterFixedLength(GQL_20240412Parser.FixedLengthContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fixedLength}. + * @param ctx the parse tree + */ + void exitFixedLength(GQL_20240412Parser.FixedLengthContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numericType}. + * @param ctx the parse tree + */ + void enterNumericType(GQL_20240412Parser.NumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numericType}. + * @param ctx the parse tree + */ + void exitNumericType(GQL_20240412Parser.NumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#exactNumericType}. + * @param ctx the parse tree + */ + void enterExactNumericType(GQL_20240412Parser.ExactNumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#exactNumericType}. + * @param ctx the parse tree + */ + void exitExactNumericType(GQL_20240412Parser.ExactNumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#binaryExactNumericType}. + * @param ctx the parse tree + */ + void enterBinaryExactNumericType(GQL_20240412Parser.BinaryExactNumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#binaryExactNumericType}. + * @param ctx the parse tree + */ + void exitBinaryExactNumericType(GQL_20240412Parser.BinaryExactNumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#signedBinaryExactNumericType}. + * @param ctx the parse tree + */ + void enterSignedBinaryExactNumericType(GQL_20240412Parser.SignedBinaryExactNumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#signedBinaryExactNumericType}. + * @param ctx the parse tree + */ + void exitSignedBinaryExactNumericType(GQL_20240412Parser.SignedBinaryExactNumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#unsignedBinaryExactNumericType}. + * @param ctx the parse tree + */ + void enterUnsignedBinaryExactNumericType(GQL_20240412Parser.UnsignedBinaryExactNumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#unsignedBinaryExactNumericType}. + * @param ctx the parse tree + */ + void exitUnsignedBinaryExactNumericType(GQL_20240412Parser.UnsignedBinaryExactNumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#verboseBinaryExactNumericType}. + * @param ctx the parse tree + */ + void enterVerboseBinaryExactNumericType(GQL_20240412Parser.VerboseBinaryExactNumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#verboseBinaryExactNumericType}. + * @param ctx the parse tree + */ + void exitVerboseBinaryExactNumericType(GQL_20240412Parser.VerboseBinaryExactNumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#decimalExactNumericType}. + * @param ctx the parse tree + */ + void enterDecimalExactNumericType(GQL_20240412Parser.DecimalExactNumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#decimalExactNumericType}. + * @param ctx the parse tree + */ + void exitDecimalExactNumericType(GQL_20240412Parser.DecimalExactNumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#precision}. + * @param ctx the parse tree + */ + void enterPrecision(GQL_20240412Parser.PrecisionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#precision}. + * @param ctx the parse tree + */ + void exitPrecision(GQL_20240412Parser.PrecisionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#scale}. + * @param ctx the parse tree + */ + void enterScale(GQL_20240412Parser.ScaleContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#scale}. + * @param ctx the parse tree + */ + void exitScale(GQL_20240412Parser.ScaleContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#approximateNumericType}. + * @param ctx the parse tree + */ + void enterApproximateNumericType(GQL_20240412Parser.ApproximateNumericTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#approximateNumericType}. + * @param ctx the parse tree + */ + void exitApproximateNumericType(GQL_20240412Parser.ApproximateNumericTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#temporalType}. + * @param ctx the parse tree + */ + void enterTemporalType(GQL_20240412Parser.TemporalTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#temporalType}. + * @param ctx the parse tree + */ + void exitTemporalType(GQL_20240412Parser.TemporalTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#temporalInstantType}. + * @param ctx the parse tree + */ + void enterTemporalInstantType(GQL_20240412Parser.TemporalInstantTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#temporalInstantType}. + * @param ctx the parse tree + */ + void exitTemporalInstantType(GQL_20240412Parser.TemporalInstantTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeType}. + * @param ctx the parse tree + */ + void enterDatetimeType(GQL_20240412Parser.DatetimeTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeType}. + * @param ctx the parse tree + */ + void exitDatetimeType(GQL_20240412Parser.DatetimeTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#localdatetimeType}. + * @param ctx the parse tree + */ + void enterLocaldatetimeType(GQL_20240412Parser.LocaldatetimeTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#localdatetimeType}. + * @param ctx the parse tree + */ + void exitLocaldatetimeType(GQL_20240412Parser.LocaldatetimeTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dateType}. + * @param ctx the parse tree + */ + void enterDateType(GQL_20240412Parser.DateTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dateType}. + * @param ctx the parse tree + */ + void exitDateType(GQL_20240412Parser.DateTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#timeType}. + * @param ctx the parse tree + */ + void enterTimeType(GQL_20240412Parser.TimeTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#timeType}. + * @param ctx the parse tree + */ + void exitTimeType(GQL_20240412Parser.TimeTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#localtimeType}. + * @param ctx the parse tree + */ + void enterLocaltimeType(GQL_20240412Parser.LocaltimeTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#localtimeType}. + * @param ctx the parse tree + */ + void exitLocaltimeType(GQL_20240412Parser.LocaltimeTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#temporalDurationType}. + * @param ctx the parse tree + */ + void enterTemporalDurationType(GQL_20240412Parser.TemporalDurationTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#temporalDurationType}. + * @param ctx the parse tree + */ + void exitTemporalDurationType(GQL_20240412Parser.TemporalDurationTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#temporalDurationQualifier}. + * @param ctx the parse tree + */ + void enterTemporalDurationQualifier(GQL_20240412Parser.TemporalDurationQualifierContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#temporalDurationQualifier}. + * @param ctx the parse tree + */ + void exitTemporalDurationQualifier(GQL_20240412Parser.TemporalDurationQualifierContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#referenceValueType}. + * @param ctx the parse tree + */ + void enterReferenceValueType(GQL_20240412Parser.ReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#referenceValueType}. + * @param ctx the parse tree + */ + void exitReferenceValueType(GQL_20240412Parser.ReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#immaterialValueType}. + * @param ctx the parse tree + */ + void enterImmaterialValueType(GQL_20240412Parser.ImmaterialValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#immaterialValueType}. + * @param ctx the parse tree + */ + void exitImmaterialValueType(GQL_20240412Parser.ImmaterialValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nullType}. + * @param ctx the parse tree + */ + void enterNullType(GQL_20240412Parser.NullTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nullType}. + * @param ctx the parse tree + */ + void exitNullType(GQL_20240412Parser.NullTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#emptyType}. + * @param ctx the parse tree + */ + void enterEmptyType(GQL_20240412Parser.EmptyTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#emptyType}. + * @param ctx the parse tree + */ + void exitEmptyType(GQL_20240412Parser.EmptyTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphReferenceValueType}. + * @param ctx the parse tree + */ + void enterGraphReferenceValueType(GQL_20240412Parser.GraphReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphReferenceValueType}. + * @param ctx the parse tree + */ + void exitGraphReferenceValueType(GQL_20240412Parser.GraphReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#closedGraphReferenceValueType}. + * @param ctx the parse tree + */ + void enterClosedGraphReferenceValueType(GQL_20240412Parser.ClosedGraphReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#closedGraphReferenceValueType}. + * @param ctx the parse tree + */ + void exitClosedGraphReferenceValueType(GQL_20240412Parser.ClosedGraphReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#openGraphReferenceValueType}. + * @param ctx the parse tree + */ + void enterOpenGraphReferenceValueType(GQL_20240412Parser.OpenGraphReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#openGraphReferenceValueType}. + * @param ctx the parse tree + */ + void exitOpenGraphReferenceValueType(GQL_20240412Parser.OpenGraphReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingTableReferenceValueType}. + * @param ctx the parse tree + */ + void enterBindingTableReferenceValueType(GQL_20240412Parser.BindingTableReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingTableReferenceValueType}. + * @param ctx the parse tree + */ + void exitBindingTableReferenceValueType(GQL_20240412Parser.BindingTableReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeReferenceValueType}. + * @param ctx the parse tree + */ + void enterNodeReferenceValueType(GQL_20240412Parser.NodeReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeReferenceValueType}. + * @param ctx the parse tree + */ + void exitNodeReferenceValueType(GQL_20240412Parser.NodeReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#closedNodeReferenceValueType}. + * @param ctx the parse tree + */ + void enterClosedNodeReferenceValueType(GQL_20240412Parser.ClosedNodeReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#closedNodeReferenceValueType}. + * @param ctx the parse tree + */ + void exitClosedNodeReferenceValueType(GQL_20240412Parser.ClosedNodeReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#openNodeReferenceValueType}. + * @param ctx the parse tree + */ + void enterOpenNodeReferenceValueType(GQL_20240412Parser.OpenNodeReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#openNodeReferenceValueType}. + * @param ctx the parse tree + */ + void exitOpenNodeReferenceValueType(GQL_20240412Parser.OpenNodeReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeReferenceValueType}. + * @param ctx the parse tree + */ + void enterEdgeReferenceValueType(GQL_20240412Parser.EdgeReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeReferenceValueType}. + * @param ctx the parse tree + */ + void exitEdgeReferenceValueType(GQL_20240412Parser.EdgeReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#closedEdgeReferenceValueType}. + * @param ctx the parse tree + */ + void enterClosedEdgeReferenceValueType(GQL_20240412Parser.ClosedEdgeReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#closedEdgeReferenceValueType}. + * @param ctx the parse tree + */ + void exitClosedEdgeReferenceValueType(GQL_20240412Parser.ClosedEdgeReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#openEdgeReferenceValueType}. + * @param ctx the parse tree + */ + void enterOpenEdgeReferenceValueType(GQL_20240412Parser.OpenEdgeReferenceValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#openEdgeReferenceValueType}. + * @param ctx the parse tree + */ + void exitOpenEdgeReferenceValueType(GQL_20240412Parser.OpenEdgeReferenceValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathValueType}. + * @param ctx the parse tree + */ + void enterPathValueType(GQL_20240412Parser.PathValueTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathValueType}. + * @param ctx the parse tree + */ + void exitPathValueType(GQL_20240412Parser.PathValueTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listValueTypeName}. + * @param ctx the parse tree + */ + void enterListValueTypeName(GQL_20240412Parser.ListValueTypeNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listValueTypeName}. + * @param ctx the parse tree + */ + void exitListValueTypeName(GQL_20240412Parser.ListValueTypeNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listValueTypeNameSynonym}. + * @param ctx the parse tree + */ + void enterListValueTypeNameSynonym(GQL_20240412Parser.ListValueTypeNameSynonymContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listValueTypeNameSynonym}. + * @param ctx the parse tree + */ + void exitListValueTypeNameSynonym(GQL_20240412Parser.ListValueTypeNameSynonymContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#recordType}. + * @param ctx the parse tree + */ + void enterRecordType(GQL_20240412Parser.RecordTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#recordType}. + * @param ctx the parse tree + */ + void exitRecordType(GQL_20240412Parser.RecordTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fieldTypesSpecification}. + * @param ctx the parse tree + */ + void enterFieldTypesSpecification(GQL_20240412Parser.FieldTypesSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fieldTypesSpecification}. + * @param ctx the parse tree + */ + void exitFieldTypesSpecification(GQL_20240412Parser.FieldTypesSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fieldTypeList}. + * @param ctx the parse tree + */ + void enterFieldTypeList(GQL_20240412Parser.FieldTypeListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fieldTypeList}. + * @param ctx the parse tree + */ + void exitFieldTypeList(GQL_20240412Parser.FieldTypeListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#notNull}. + * @param ctx the parse tree + */ + void enterNotNull(GQL_20240412Parser.NotNullContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#notNull}. + * @param ctx the parse tree + */ + void exitNotNull(GQL_20240412Parser.NotNullContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fieldType}. + * @param ctx the parse tree + */ + void enterFieldType(GQL_20240412Parser.FieldTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fieldType}. + * @param ctx the parse tree + */ + void exitFieldType(GQL_20240412Parser.FieldTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#searchCondition}. + * @param ctx the parse tree + */ + void enterSearchCondition(GQL_20240412Parser.SearchConditionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#searchCondition}. + * @param ctx the parse tree + */ + void exitSearchCondition(GQL_20240412Parser.SearchConditionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#predicate}. + * @param ctx the parse tree + */ + void enterPredicate(GQL_20240412Parser.PredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#predicate}. + * @param ctx the parse tree + */ + void exitPredicate(GQL_20240412Parser.PredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#comparisonPredicatePart2}. + * @param ctx the parse tree + */ + void enterComparisonPredicatePart2(GQL_20240412Parser.ComparisonPredicatePart2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#comparisonPredicatePart2}. + * @param ctx the parse tree + */ + void exitComparisonPredicatePart2(GQL_20240412Parser.ComparisonPredicatePart2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#compOp}. + * @param ctx the parse tree + */ + void enterCompOp(GQL_20240412Parser.CompOpContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#compOp}. + * @param ctx the parse tree + */ + void exitCompOp(GQL_20240412Parser.CompOpContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#existsPredicate}. + * @param ctx the parse tree + */ + void enterExistsPredicate(GQL_20240412Parser.ExistsPredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#existsPredicate}. + * @param ctx the parse tree + */ + void exitExistsPredicate(GQL_20240412Parser.ExistsPredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nullPredicate}. + * @param ctx the parse tree + */ + void enterNullPredicate(GQL_20240412Parser.NullPredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nullPredicate}. + * @param ctx the parse tree + */ + void exitNullPredicate(GQL_20240412Parser.NullPredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nullPredicatePart2}. + * @param ctx the parse tree + */ + void enterNullPredicatePart2(GQL_20240412Parser.NullPredicatePart2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nullPredicatePart2}. + * @param ctx the parse tree + */ + void exitNullPredicatePart2(GQL_20240412Parser.NullPredicatePart2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#valueTypePredicate}. + * @param ctx the parse tree + */ + void enterValueTypePredicate(GQL_20240412Parser.ValueTypePredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#valueTypePredicate}. + * @param ctx the parse tree + */ + void exitValueTypePredicate(GQL_20240412Parser.ValueTypePredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#valueTypePredicatePart2}. + * @param ctx the parse tree + */ + void enterValueTypePredicatePart2(GQL_20240412Parser.ValueTypePredicatePart2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#valueTypePredicatePart2}. + * @param ctx the parse tree + */ + void exitValueTypePredicatePart2(GQL_20240412Parser.ValueTypePredicatePart2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#normalizedPredicatePart2}. + * @param ctx the parse tree + */ + void enterNormalizedPredicatePart2(GQL_20240412Parser.NormalizedPredicatePart2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#normalizedPredicatePart2}. + * @param ctx the parse tree + */ + void exitNormalizedPredicatePart2(GQL_20240412Parser.NormalizedPredicatePart2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#directedPredicate}. + * @param ctx the parse tree + */ + void enterDirectedPredicate(GQL_20240412Parser.DirectedPredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#directedPredicate}. + * @param ctx the parse tree + */ + void exitDirectedPredicate(GQL_20240412Parser.DirectedPredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#directedPredicatePart2}. + * @param ctx the parse tree + */ + void enterDirectedPredicatePart2(GQL_20240412Parser.DirectedPredicatePart2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#directedPredicatePart2}. + * @param ctx the parse tree + */ + void exitDirectedPredicatePart2(GQL_20240412Parser.DirectedPredicatePart2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#labeledPredicate}. + * @param ctx the parse tree + */ + void enterLabeledPredicate(GQL_20240412Parser.LabeledPredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#labeledPredicate}. + * @param ctx the parse tree + */ + void exitLabeledPredicate(GQL_20240412Parser.LabeledPredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#labeledPredicatePart2}. + * @param ctx the parse tree + */ + void enterLabeledPredicatePart2(GQL_20240412Parser.LabeledPredicatePart2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#labeledPredicatePart2}. + * @param ctx the parse tree + */ + void exitLabeledPredicatePart2(GQL_20240412Parser.LabeledPredicatePart2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#isLabeledOrColon}. + * @param ctx the parse tree + */ + void enterIsLabeledOrColon(GQL_20240412Parser.IsLabeledOrColonContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#isLabeledOrColon}. + * @param ctx the parse tree + */ + void exitIsLabeledOrColon(GQL_20240412Parser.IsLabeledOrColonContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sourceDestinationPredicate}. + * @param ctx the parse tree + */ + void enterSourceDestinationPredicate(GQL_20240412Parser.SourceDestinationPredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sourceDestinationPredicate}. + * @param ctx the parse tree + */ + void exitSourceDestinationPredicate(GQL_20240412Parser.SourceDestinationPredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeReference}. + * @param ctx the parse tree + */ + void enterNodeReference(GQL_20240412Parser.NodeReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeReference}. + * @param ctx the parse tree + */ + void exitNodeReference(GQL_20240412Parser.NodeReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#sourcePredicatePart2}. + * @param ctx the parse tree + */ + void enterSourcePredicatePart2(GQL_20240412Parser.SourcePredicatePart2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#sourcePredicatePart2}. + * @param ctx the parse tree + */ + void exitSourcePredicatePart2(GQL_20240412Parser.SourcePredicatePart2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#destinationPredicatePart2}. + * @param ctx the parse tree + */ + void enterDestinationPredicatePart2(GQL_20240412Parser.DestinationPredicatePart2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#destinationPredicatePart2}. + * @param ctx the parse tree + */ + void exitDestinationPredicatePart2(GQL_20240412Parser.DestinationPredicatePart2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeReference}. + * @param ctx the parse tree + */ + void enterEdgeReference(GQL_20240412Parser.EdgeReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeReference}. + * @param ctx the parse tree + */ + void exitEdgeReference(GQL_20240412Parser.EdgeReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#all_differentPredicate}. + * @param ctx the parse tree + */ + void enterAll_differentPredicate(GQL_20240412Parser.All_differentPredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#all_differentPredicate}. + * @param ctx the parse tree + */ + void exitAll_differentPredicate(GQL_20240412Parser.All_differentPredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#samePredicate}. + * @param ctx the parse tree + */ + void enterSamePredicate(GQL_20240412Parser.SamePredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#samePredicate}. + * @param ctx the parse tree + */ + void exitSamePredicate(GQL_20240412Parser.SamePredicateContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#property_existsPredicate}. + * @param ctx the parse tree + */ + void enterProperty_existsPredicate(GQL_20240412Parser.Property_existsPredicateContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#property_existsPredicate}. + * @param ctx the parse tree + */ + void exitProperty_existsPredicate(GQL_20240412Parser.Property_existsPredicateContext ctx); + /** + * Enter a parse tree produced by the {@code conjunctiveExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterConjunctiveExprAlt(GQL_20240412Parser.ConjunctiveExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code conjunctiveExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitConjunctiveExprAlt(GQL_20240412Parser.ConjunctiveExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code propertyGraphExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterPropertyGraphExprAlt(GQL_20240412Parser.PropertyGraphExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code propertyGraphExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitPropertyGraphExprAlt(GQL_20240412Parser.PropertyGraphExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code multDivExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterMultDivExprAlt(GQL_20240412Parser.MultDivExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code multDivExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitMultDivExprAlt(GQL_20240412Parser.MultDivExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code bindingTableExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterBindingTableExprAlt(GQL_20240412Parser.BindingTableExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code bindingTableExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitBindingTableExprAlt(GQL_20240412Parser.BindingTableExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code signedExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterSignedExprAlt(GQL_20240412Parser.SignedExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code signedExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitSignedExprAlt(GQL_20240412Parser.SignedExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code isNotExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterIsNotExprAlt(GQL_20240412Parser.IsNotExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code isNotExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitIsNotExprAlt(GQL_20240412Parser.IsNotExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code normalizedPredicateExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterNormalizedPredicateExprAlt(GQL_20240412Parser.NormalizedPredicateExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code normalizedPredicateExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitNormalizedPredicateExprAlt(GQL_20240412Parser.NormalizedPredicateExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code notExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterNotExprAlt(GQL_20240412Parser.NotExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code notExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitNotExprAlt(GQL_20240412Parser.NotExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code valueFunctionExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterValueFunctionExprAlt(GQL_20240412Parser.ValueFunctionExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code valueFunctionExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitValueFunctionExprAlt(GQL_20240412Parser.ValueFunctionExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code concatenationExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterConcatenationExprAlt(GQL_20240412Parser.ConcatenationExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code concatenationExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitConcatenationExprAlt(GQL_20240412Parser.ConcatenationExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code disjunctiveExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterDisjunctiveExprAlt(GQL_20240412Parser.DisjunctiveExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code disjunctiveExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitDisjunctiveExprAlt(GQL_20240412Parser.DisjunctiveExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code comparisonExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterComparisonExprAlt(GQL_20240412Parser.ComparisonExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code comparisonExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitComparisonExprAlt(GQL_20240412Parser.ComparisonExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code primaryExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterPrimaryExprAlt(GQL_20240412Parser.PrimaryExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code primaryExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitPrimaryExprAlt(GQL_20240412Parser.PrimaryExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code addSubtractExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterAddSubtractExprAlt(GQL_20240412Parser.AddSubtractExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code addSubtractExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitAddSubtractExprAlt(GQL_20240412Parser.AddSubtractExprAltContext ctx); + /** + * Enter a parse tree produced by the {@code predicateExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void enterPredicateExprAlt(GQL_20240412Parser.PredicateExprAltContext ctx); + /** + * Exit a parse tree produced by the {@code predicateExprAlt} + * labeled alternative in {@link GQL_20240412Parser#valueExpression}. + * @param ctx the parse tree + */ + void exitPredicateExprAlt(GQL_20240412Parser.PredicateExprAltContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#valueFunction}. + * @param ctx the parse tree + */ + void enterValueFunction(GQL_20240412Parser.ValueFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#valueFunction}. + * @param ctx the parse tree + */ + void exitValueFunction(GQL_20240412Parser.ValueFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#booleanValueExpression}. + * @param ctx the parse tree + */ + void enterBooleanValueExpression(GQL_20240412Parser.BooleanValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#booleanValueExpression}. + * @param ctx the parse tree + */ + void exitBooleanValueExpression(GQL_20240412Parser.BooleanValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#characterOrByteStringFunction}. + * @param ctx the parse tree + */ + void enterCharacterOrByteStringFunction(GQL_20240412Parser.CharacterOrByteStringFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#characterOrByteStringFunction}. + * @param ctx the parse tree + */ + void exitCharacterOrByteStringFunction(GQL_20240412Parser.CharacterOrByteStringFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#subCharacterOrByteString}. + * @param ctx the parse tree + */ + void enterSubCharacterOrByteString(GQL_20240412Parser.SubCharacterOrByteStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#subCharacterOrByteString}. + * @param ctx the parse tree + */ + void exitSubCharacterOrByteString(GQL_20240412Parser.SubCharacterOrByteStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trimSingleCharacterOrByteString}. + * @param ctx the parse tree + */ + void enterTrimSingleCharacterOrByteString(GQL_20240412Parser.TrimSingleCharacterOrByteStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trimSingleCharacterOrByteString}. + * @param ctx the parse tree + */ + void exitTrimSingleCharacterOrByteString(GQL_20240412Parser.TrimSingleCharacterOrByteStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#foldCharacterString}. + * @param ctx the parse tree + */ + void enterFoldCharacterString(GQL_20240412Parser.FoldCharacterStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#foldCharacterString}. + * @param ctx the parse tree + */ + void exitFoldCharacterString(GQL_20240412Parser.FoldCharacterStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trimMultiCharacterCharacterString}. + * @param ctx the parse tree + */ + void enterTrimMultiCharacterCharacterString(GQL_20240412Parser.TrimMultiCharacterCharacterStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trimMultiCharacterCharacterString}. + * @param ctx the parse tree + */ + void exitTrimMultiCharacterCharacterString(GQL_20240412Parser.TrimMultiCharacterCharacterStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#normalizeCharacterString}. + * @param ctx the parse tree + */ + void enterNormalizeCharacterString(GQL_20240412Parser.NormalizeCharacterStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#normalizeCharacterString}. + * @param ctx the parse tree + */ + void exitNormalizeCharacterString(GQL_20240412Parser.NormalizeCharacterStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeReferenceValueExpression}. + * @param ctx the parse tree + */ + void enterNodeReferenceValueExpression(GQL_20240412Parser.NodeReferenceValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeReferenceValueExpression}. + * @param ctx the parse tree + */ + void exitNodeReferenceValueExpression(GQL_20240412Parser.NodeReferenceValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeReferenceValueExpression}. + * @param ctx the parse tree + */ + void enterEdgeReferenceValueExpression(GQL_20240412Parser.EdgeReferenceValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeReferenceValueExpression}. + * @param ctx the parse tree + */ + void exitEdgeReferenceValueExpression(GQL_20240412Parser.EdgeReferenceValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#aggregatingValueExpression}. + * @param ctx the parse tree + */ + void enterAggregatingValueExpression(GQL_20240412Parser.AggregatingValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#aggregatingValueExpression}. + * @param ctx the parse tree + */ + void exitAggregatingValueExpression(GQL_20240412Parser.AggregatingValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#valueExpressionPrimary}. + * @param ctx the parse tree + */ + void enterValueExpressionPrimary(GQL_20240412Parser.ValueExpressionPrimaryContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#valueExpressionPrimary}. + * @param ctx the parse tree + */ + void exitValueExpressionPrimary(GQL_20240412Parser.ValueExpressionPrimaryContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#parenthesizedValueExpression}. + * @param ctx the parse tree + */ + void enterParenthesizedValueExpression(GQL_20240412Parser.ParenthesizedValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#parenthesizedValueExpression}. + * @param ctx the parse tree + */ + void exitParenthesizedValueExpression(GQL_20240412Parser.ParenthesizedValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nonParenthesizedValueExpressionPrimary}. + * @param ctx the parse tree + */ + void enterNonParenthesizedValueExpressionPrimary(GQL_20240412Parser.NonParenthesizedValueExpressionPrimaryContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nonParenthesizedValueExpressionPrimary}. + * @param ctx the parse tree + */ + void exitNonParenthesizedValueExpressionPrimary(GQL_20240412Parser.NonParenthesizedValueExpressionPrimaryContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nonParenthesizedValueExpressionPrimarySpecialCase}. + * @param ctx the parse tree + */ + void enterNonParenthesizedValueExpressionPrimarySpecialCase(GQL_20240412Parser.NonParenthesizedValueExpressionPrimarySpecialCaseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nonParenthesizedValueExpressionPrimarySpecialCase}. + * @param ctx the parse tree + */ + void exitNonParenthesizedValueExpressionPrimarySpecialCase(GQL_20240412Parser.NonParenthesizedValueExpressionPrimarySpecialCaseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#unsignedValueSpecification}. + * @param ctx the parse tree + */ + void enterUnsignedValueSpecification(GQL_20240412Parser.UnsignedValueSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#unsignedValueSpecification}. + * @param ctx the parse tree + */ + void exitUnsignedValueSpecification(GQL_20240412Parser.UnsignedValueSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nonNegativeIntegerSpecification}. + * @param ctx the parse tree + */ + void enterNonNegativeIntegerSpecification(GQL_20240412Parser.NonNegativeIntegerSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nonNegativeIntegerSpecification}. + * @param ctx the parse tree + */ + void exitNonNegativeIntegerSpecification(GQL_20240412Parser.NonNegativeIntegerSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#generalValueSpecification}. + * @param ctx the parse tree + */ + void enterGeneralValueSpecification(GQL_20240412Parser.GeneralValueSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#generalValueSpecification}. + * @param ctx the parse tree + */ + void exitGeneralValueSpecification(GQL_20240412Parser.GeneralValueSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dynamicParameterSpecification}. + * @param ctx the parse tree + */ + void enterDynamicParameterSpecification(GQL_20240412Parser.DynamicParameterSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dynamicParameterSpecification}. + * @param ctx the parse tree + */ + void exitDynamicParameterSpecification(GQL_20240412Parser.DynamicParameterSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#letValueExpression}. + * @param ctx the parse tree + */ + void enterLetValueExpression(GQL_20240412Parser.LetValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#letValueExpression}. + * @param ctx the parse tree + */ + void exitLetValueExpression(GQL_20240412Parser.LetValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#valueQueryExpression}. + * @param ctx the parse tree + */ + void enterValueQueryExpression(GQL_20240412Parser.ValueQueryExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#valueQueryExpression}. + * @param ctx the parse tree + */ + void exitValueQueryExpression(GQL_20240412Parser.ValueQueryExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#caseExpression}. + * @param ctx the parse tree + */ + void enterCaseExpression(GQL_20240412Parser.CaseExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#caseExpression}. + * @param ctx the parse tree + */ + void exitCaseExpression(GQL_20240412Parser.CaseExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#caseAbbreviation}. + * @param ctx the parse tree + */ + void enterCaseAbbreviation(GQL_20240412Parser.CaseAbbreviationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#caseAbbreviation}. + * @param ctx the parse tree + */ + void exitCaseAbbreviation(GQL_20240412Parser.CaseAbbreviationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#caseSpecification}. + * @param ctx the parse tree + */ + void enterCaseSpecification(GQL_20240412Parser.CaseSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#caseSpecification}. + * @param ctx the parse tree + */ + void exitCaseSpecification(GQL_20240412Parser.CaseSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleCase}. + * @param ctx the parse tree + */ + void enterSimpleCase(GQL_20240412Parser.SimpleCaseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleCase}. + * @param ctx the parse tree + */ + void exitSimpleCase(GQL_20240412Parser.SimpleCaseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#searchedCase}. + * @param ctx the parse tree + */ + void enterSearchedCase(GQL_20240412Parser.SearchedCaseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#searchedCase}. + * @param ctx the parse tree + */ + void exitSearchedCase(GQL_20240412Parser.SearchedCaseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#simpleWhenClause}. + * @param ctx the parse tree + */ + void enterSimpleWhenClause(GQL_20240412Parser.SimpleWhenClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#simpleWhenClause}. + * @param ctx the parse tree + */ + void exitSimpleWhenClause(GQL_20240412Parser.SimpleWhenClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#searchedWhenClause}. + * @param ctx the parse tree + */ + void enterSearchedWhenClause(GQL_20240412Parser.SearchedWhenClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#searchedWhenClause}. + * @param ctx the parse tree + */ + void exitSearchedWhenClause(GQL_20240412Parser.SearchedWhenClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elseClause}. + * @param ctx the parse tree + */ + void enterElseClause(GQL_20240412Parser.ElseClauseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elseClause}. + * @param ctx the parse tree + */ + void exitElseClause(GQL_20240412Parser.ElseClauseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#caseOperand}. + * @param ctx the parse tree + */ + void enterCaseOperand(GQL_20240412Parser.CaseOperandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#caseOperand}. + * @param ctx the parse tree + */ + void exitCaseOperand(GQL_20240412Parser.CaseOperandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#whenOperandList}. + * @param ctx the parse tree + */ + void enterWhenOperandList(GQL_20240412Parser.WhenOperandListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#whenOperandList}. + * @param ctx the parse tree + */ + void exitWhenOperandList(GQL_20240412Parser.WhenOperandListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#whenOperand}. + * @param ctx the parse tree + */ + void enterWhenOperand(GQL_20240412Parser.WhenOperandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#whenOperand}. + * @param ctx the parse tree + */ + void exitWhenOperand(GQL_20240412Parser.WhenOperandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#result}. + * @param ctx the parse tree + */ + void enterResult(GQL_20240412Parser.ResultContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#result}. + * @param ctx the parse tree + */ + void exitResult(GQL_20240412Parser.ResultContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#resultExpression}. + * @param ctx the parse tree + */ + void enterResultExpression(GQL_20240412Parser.ResultExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#resultExpression}. + * @param ctx the parse tree + */ + void exitResultExpression(GQL_20240412Parser.ResultExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#castSpecification}. + * @param ctx the parse tree + */ + void enterCastSpecification(GQL_20240412Parser.CastSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#castSpecification}. + * @param ctx the parse tree + */ + void exitCastSpecification(GQL_20240412Parser.CastSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#castOperand}. + * @param ctx the parse tree + */ + void enterCastOperand(GQL_20240412Parser.CastOperandContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#castOperand}. + * @param ctx the parse tree + */ + void exitCastOperand(GQL_20240412Parser.CastOperandContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#castTarget}. + * @param ctx the parse tree + */ + void enterCastTarget(GQL_20240412Parser.CastTargetContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#castTarget}. + * @param ctx the parse tree + */ + void exitCastTarget(GQL_20240412Parser.CastTargetContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#aggregateFunction}. + * @param ctx the parse tree + */ + void enterAggregateFunction(GQL_20240412Parser.AggregateFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#aggregateFunction}. + * @param ctx the parse tree + */ + void exitAggregateFunction(GQL_20240412Parser.AggregateFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#generalSetFunction}. + * @param ctx the parse tree + */ + void enterGeneralSetFunction(GQL_20240412Parser.GeneralSetFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#generalSetFunction}. + * @param ctx the parse tree + */ + void exitGeneralSetFunction(GQL_20240412Parser.GeneralSetFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#binarySetFunction}. + * @param ctx the parse tree + */ + void enterBinarySetFunction(GQL_20240412Parser.BinarySetFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#binarySetFunction}. + * @param ctx the parse tree + */ + void exitBinarySetFunction(GQL_20240412Parser.BinarySetFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#generalSetFunctionType}. + * @param ctx the parse tree + */ + void enterGeneralSetFunctionType(GQL_20240412Parser.GeneralSetFunctionTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#generalSetFunctionType}. + * @param ctx the parse tree + */ + void exitGeneralSetFunctionType(GQL_20240412Parser.GeneralSetFunctionTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#setQuantifier}. + * @param ctx the parse tree + */ + void enterSetQuantifier(GQL_20240412Parser.SetQuantifierContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#setQuantifier}. + * @param ctx the parse tree + */ + void exitSetQuantifier(GQL_20240412Parser.SetQuantifierContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#binarySetFunctionType}. + * @param ctx the parse tree + */ + void enterBinarySetFunctionType(GQL_20240412Parser.BinarySetFunctionTypeContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#binarySetFunctionType}. + * @param ctx the parse tree + */ + void exitBinarySetFunctionType(GQL_20240412Parser.BinarySetFunctionTypeContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dependentValueExpression}. + * @param ctx the parse tree + */ + void enterDependentValueExpression(GQL_20240412Parser.DependentValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dependentValueExpression}. + * @param ctx the parse tree + */ + void exitDependentValueExpression(GQL_20240412Parser.DependentValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#independentValueExpression}. + * @param ctx the parse tree + */ + void enterIndependentValueExpression(GQL_20240412Parser.IndependentValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#independentValueExpression}. + * @param ctx the parse tree + */ + void exitIndependentValueExpression(GQL_20240412Parser.IndependentValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#element_idFunction}. + * @param ctx the parse tree + */ + void enterElement_idFunction(GQL_20240412Parser.Element_idFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#element_idFunction}. + * @param ctx the parse tree + */ + void exitElement_idFunction(GQL_20240412Parser.Element_idFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingVariableReference}. + * @param ctx the parse tree + */ + void enterBindingVariableReference(GQL_20240412Parser.BindingVariableReferenceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingVariableReference}. + * @param ctx the parse tree + */ + void exitBindingVariableReference(GQL_20240412Parser.BindingVariableReferenceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathValueExpression}. + * @param ctx the parse tree + */ + void enterPathValueExpression(GQL_20240412Parser.PathValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathValueExpression}. + * @param ctx the parse tree + */ + void exitPathValueExpression(GQL_20240412Parser.PathValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathValueConstructor}. + * @param ctx the parse tree + */ + void enterPathValueConstructor(GQL_20240412Parser.PathValueConstructorContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathValueConstructor}. + * @param ctx the parse tree + */ + void exitPathValueConstructor(GQL_20240412Parser.PathValueConstructorContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathValueConstructorByEnumeration}. + * @param ctx the parse tree + */ + void enterPathValueConstructorByEnumeration(GQL_20240412Parser.PathValueConstructorByEnumerationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathValueConstructorByEnumeration}. + * @param ctx the parse tree + */ + void exitPathValueConstructorByEnumeration(GQL_20240412Parser.PathValueConstructorByEnumerationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathElementList}. + * @param ctx the parse tree + */ + void enterPathElementList(GQL_20240412Parser.PathElementListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathElementList}. + * @param ctx the parse tree + */ + void exitPathElementList(GQL_20240412Parser.PathElementListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathElementListStart}. + * @param ctx the parse tree + */ + void enterPathElementListStart(GQL_20240412Parser.PathElementListStartContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathElementListStart}. + * @param ctx the parse tree + */ + void exitPathElementListStart(GQL_20240412Parser.PathElementListStartContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathElementListStep}. + * @param ctx the parse tree + */ + void enterPathElementListStep(GQL_20240412Parser.PathElementListStepContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathElementListStep}. + * @param ctx the parse tree + */ + void exitPathElementListStep(GQL_20240412Parser.PathElementListStepContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listValueExpression}. + * @param ctx the parse tree + */ + void enterListValueExpression(GQL_20240412Parser.ListValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listValueExpression}. + * @param ctx the parse tree + */ + void exitListValueExpression(GQL_20240412Parser.ListValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listValueFunction}. + * @param ctx the parse tree + */ + void enterListValueFunction(GQL_20240412Parser.ListValueFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listValueFunction}. + * @param ctx the parse tree + */ + void exitListValueFunction(GQL_20240412Parser.ListValueFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trimListFunction}. + * @param ctx the parse tree + */ + void enterTrimListFunction(GQL_20240412Parser.TrimListFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trimListFunction}. + * @param ctx the parse tree + */ + void exitTrimListFunction(GQL_20240412Parser.TrimListFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementsFunction}. + * @param ctx the parse tree + */ + void enterElementsFunction(GQL_20240412Parser.ElementsFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementsFunction}. + * @param ctx the parse tree + */ + void exitElementsFunction(GQL_20240412Parser.ElementsFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listValueConstructor}. + * @param ctx the parse tree + */ + void enterListValueConstructor(GQL_20240412Parser.ListValueConstructorContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listValueConstructor}. + * @param ctx the parse tree + */ + void exitListValueConstructor(GQL_20240412Parser.ListValueConstructorContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listValueConstructorByEnumeration}. + * @param ctx the parse tree + */ + void enterListValueConstructorByEnumeration(GQL_20240412Parser.ListValueConstructorByEnumerationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listValueConstructorByEnumeration}. + * @param ctx the parse tree + */ + void exitListValueConstructorByEnumeration(GQL_20240412Parser.ListValueConstructorByEnumerationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listElementList}. + * @param ctx the parse tree + */ + void enterListElementList(GQL_20240412Parser.ListElementListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listElementList}. + * @param ctx the parse tree + */ + void exitListElementList(GQL_20240412Parser.ListElementListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listElement}. + * @param ctx the parse tree + */ + void enterListElement(GQL_20240412Parser.ListElementContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listElement}. + * @param ctx the parse tree + */ + void exitListElement(GQL_20240412Parser.ListElementContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#recordConstructor}. + * @param ctx the parse tree + */ + void enterRecordConstructor(GQL_20240412Parser.RecordConstructorContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#recordConstructor}. + * @param ctx the parse tree + */ + void exitRecordConstructor(GQL_20240412Parser.RecordConstructorContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fieldsSpecification}. + * @param ctx the parse tree + */ + void enterFieldsSpecification(GQL_20240412Parser.FieldsSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fieldsSpecification}. + * @param ctx the parse tree + */ + void exitFieldsSpecification(GQL_20240412Parser.FieldsSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fieldList}. + * @param ctx the parse tree + */ + void enterFieldList(GQL_20240412Parser.FieldListContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fieldList}. + * @param ctx the parse tree + */ + void exitFieldList(GQL_20240412Parser.FieldListContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#field}. + * @param ctx the parse tree + */ + void enterField(GQL_20240412Parser.FieldContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#field}. + * @param ctx the parse tree + */ + void exitField(GQL_20240412Parser.FieldContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#truthValue}. + * @param ctx the parse tree + */ + void enterTruthValue(GQL_20240412Parser.TruthValueContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#truthValue}. + * @param ctx the parse tree + */ + void exitTruthValue(GQL_20240412Parser.TruthValueContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numericValueExpression}. + * @param ctx the parse tree + */ + void enterNumericValueExpression(GQL_20240412Parser.NumericValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numericValueExpression}. + * @param ctx the parse tree + */ + void exitNumericValueExpression(GQL_20240412Parser.NumericValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numericValueFunction}. + * @param ctx the parse tree + */ + void enterNumericValueFunction(GQL_20240412Parser.NumericValueFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numericValueFunction}. + * @param ctx the parse tree + */ + void exitNumericValueFunction(GQL_20240412Parser.NumericValueFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#lengthExpression}. + * @param ctx the parse tree + */ + void enterLengthExpression(GQL_20240412Parser.LengthExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#lengthExpression}. + * @param ctx the parse tree + */ + void exitLengthExpression(GQL_20240412Parser.LengthExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#cardinalityExpression}. + * @param ctx the parse tree + */ + void enterCardinalityExpression(GQL_20240412Parser.CardinalityExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#cardinalityExpression}. + * @param ctx the parse tree + */ + void exitCardinalityExpression(GQL_20240412Parser.CardinalityExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#cardinalityExpressionArgument}. + * @param ctx the parse tree + */ + void enterCardinalityExpressionArgument(GQL_20240412Parser.CardinalityExpressionArgumentContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#cardinalityExpressionArgument}. + * @param ctx the parse tree + */ + void exitCardinalityExpressionArgument(GQL_20240412Parser.CardinalityExpressionArgumentContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#charLengthExpression}. + * @param ctx the parse tree + */ + void enterCharLengthExpression(GQL_20240412Parser.CharLengthExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#charLengthExpression}. + * @param ctx the parse tree + */ + void exitCharLengthExpression(GQL_20240412Parser.CharLengthExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#byteLengthExpression}. + * @param ctx the parse tree + */ + void enterByteLengthExpression(GQL_20240412Parser.ByteLengthExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#byteLengthExpression}. + * @param ctx the parse tree + */ + void exitByteLengthExpression(GQL_20240412Parser.ByteLengthExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathLengthExpression}. + * @param ctx the parse tree + */ + void enterPathLengthExpression(GQL_20240412Parser.PathLengthExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathLengthExpression}. + * @param ctx the parse tree + */ + void exitPathLengthExpression(GQL_20240412Parser.PathLengthExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#absoluteValueExpression}. + * @param ctx the parse tree + */ + void enterAbsoluteValueExpression(GQL_20240412Parser.AbsoluteValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#absoluteValueExpression}. + * @param ctx the parse tree + */ + void exitAbsoluteValueExpression(GQL_20240412Parser.AbsoluteValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#modulusExpression}. + * @param ctx the parse tree + */ + void enterModulusExpression(GQL_20240412Parser.ModulusExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#modulusExpression}. + * @param ctx the parse tree + */ + void exitModulusExpression(GQL_20240412Parser.ModulusExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numericValueExpressionDividend}. + * @param ctx the parse tree + */ + void enterNumericValueExpressionDividend(GQL_20240412Parser.NumericValueExpressionDividendContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numericValueExpressionDividend}. + * @param ctx the parse tree + */ + void exitNumericValueExpressionDividend(GQL_20240412Parser.NumericValueExpressionDividendContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numericValueExpressionDivisor}. + * @param ctx the parse tree + */ + void enterNumericValueExpressionDivisor(GQL_20240412Parser.NumericValueExpressionDivisorContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numericValueExpressionDivisor}. + * @param ctx the parse tree + */ + void exitNumericValueExpressionDivisor(GQL_20240412Parser.NumericValueExpressionDivisorContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trigonometricFunction}. + * @param ctx the parse tree + */ + void enterTrigonometricFunction(GQL_20240412Parser.TrigonometricFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trigonometricFunction}. + * @param ctx the parse tree + */ + void exitTrigonometricFunction(GQL_20240412Parser.TrigonometricFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trigonometricFunctionName}. + * @param ctx the parse tree + */ + void enterTrigonometricFunctionName(GQL_20240412Parser.TrigonometricFunctionNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trigonometricFunctionName}. + * @param ctx the parse tree + */ + void exitTrigonometricFunctionName(GQL_20240412Parser.TrigonometricFunctionNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#generalLogarithmFunction}. + * @param ctx the parse tree + */ + void enterGeneralLogarithmFunction(GQL_20240412Parser.GeneralLogarithmFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#generalLogarithmFunction}. + * @param ctx the parse tree + */ + void exitGeneralLogarithmFunction(GQL_20240412Parser.GeneralLogarithmFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#generalLogarithmBase}. + * @param ctx the parse tree + */ + void enterGeneralLogarithmBase(GQL_20240412Parser.GeneralLogarithmBaseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#generalLogarithmBase}. + * @param ctx the parse tree + */ + void exitGeneralLogarithmBase(GQL_20240412Parser.GeneralLogarithmBaseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#generalLogarithmArgument}. + * @param ctx the parse tree + */ + void enterGeneralLogarithmArgument(GQL_20240412Parser.GeneralLogarithmArgumentContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#generalLogarithmArgument}. + * @param ctx the parse tree + */ + void exitGeneralLogarithmArgument(GQL_20240412Parser.GeneralLogarithmArgumentContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#commonLogarithm}. + * @param ctx the parse tree + */ + void enterCommonLogarithm(GQL_20240412Parser.CommonLogarithmContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#commonLogarithm}. + * @param ctx the parse tree + */ + void exitCommonLogarithm(GQL_20240412Parser.CommonLogarithmContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#naturalLogarithm}. + * @param ctx the parse tree + */ + void enterNaturalLogarithm(GQL_20240412Parser.NaturalLogarithmContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#naturalLogarithm}. + * @param ctx the parse tree + */ + void exitNaturalLogarithm(GQL_20240412Parser.NaturalLogarithmContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#exponentialFunction}. + * @param ctx the parse tree + */ + void enterExponentialFunction(GQL_20240412Parser.ExponentialFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#exponentialFunction}. + * @param ctx the parse tree + */ + void exitExponentialFunction(GQL_20240412Parser.ExponentialFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#powerFunction}. + * @param ctx the parse tree + */ + void enterPowerFunction(GQL_20240412Parser.PowerFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#powerFunction}. + * @param ctx the parse tree + */ + void exitPowerFunction(GQL_20240412Parser.PowerFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numericValueExpressionBase}. + * @param ctx the parse tree + */ + void enterNumericValueExpressionBase(GQL_20240412Parser.NumericValueExpressionBaseContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numericValueExpressionBase}. + * @param ctx the parse tree + */ + void exitNumericValueExpressionBase(GQL_20240412Parser.NumericValueExpressionBaseContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#numericValueExpressionExponent}. + * @param ctx the parse tree + */ + void enterNumericValueExpressionExponent(GQL_20240412Parser.NumericValueExpressionExponentContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#numericValueExpressionExponent}. + * @param ctx the parse tree + */ + void exitNumericValueExpressionExponent(GQL_20240412Parser.NumericValueExpressionExponentContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#squareRoot}. + * @param ctx the parse tree + */ + void enterSquareRoot(GQL_20240412Parser.SquareRootContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#squareRoot}. + * @param ctx the parse tree + */ + void exitSquareRoot(GQL_20240412Parser.SquareRootContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#floorFunction}. + * @param ctx the parse tree + */ + void enterFloorFunction(GQL_20240412Parser.FloorFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#floorFunction}. + * @param ctx the parse tree + */ + void exitFloorFunction(GQL_20240412Parser.FloorFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#ceilingFunction}. + * @param ctx the parse tree + */ + void enterCeilingFunction(GQL_20240412Parser.CeilingFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#ceilingFunction}. + * @param ctx the parse tree + */ + void exitCeilingFunction(GQL_20240412Parser.CeilingFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#characterStringValueExpression}. + * @param ctx the parse tree + */ + void enterCharacterStringValueExpression(GQL_20240412Parser.CharacterStringValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#characterStringValueExpression}. + * @param ctx the parse tree + */ + void exitCharacterStringValueExpression(GQL_20240412Parser.CharacterStringValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#byteStringValueExpression}. + * @param ctx the parse tree + */ + void enterByteStringValueExpression(GQL_20240412Parser.ByteStringValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#byteStringValueExpression}. + * @param ctx the parse tree + */ + void exitByteStringValueExpression(GQL_20240412Parser.ByteStringValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trimOperands}. + * @param ctx the parse tree + */ + void enterTrimOperands(GQL_20240412Parser.TrimOperandsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trimOperands}. + * @param ctx the parse tree + */ + void exitTrimOperands(GQL_20240412Parser.TrimOperandsContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trimCharacterOrByteStringSource}. + * @param ctx the parse tree + */ + void enterTrimCharacterOrByteStringSource(GQL_20240412Parser.TrimCharacterOrByteStringSourceContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trimCharacterOrByteStringSource}. + * @param ctx the parse tree + */ + void exitTrimCharacterOrByteStringSource(GQL_20240412Parser.TrimCharacterOrByteStringSourceContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trimSpecification}. + * @param ctx the parse tree + */ + void enterTrimSpecification(GQL_20240412Parser.TrimSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trimSpecification}. + * @param ctx the parse tree + */ + void exitTrimSpecification(GQL_20240412Parser.TrimSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#trimCharacterOrByteString}. + * @param ctx the parse tree + */ + void enterTrimCharacterOrByteString(GQL_20240412Parser.TrimCharacterOrByteStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#trimCharacterOrByteString}. + * @param ctx the parse tree + */ + void exitTrimCharacterOrByteString(GQL_20240412Parser.TrimCharacterOrByteStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#normalForm}. + * @param ctx the parse tree + */ + void enterNormalForm(GQL_20240412Parser.NormalFormContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#normalForm}. + * @param ctx the parse tree + */ + void exitNormalForm(GQL_20240412Parser.NormalFormContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#stringLength}. + * @param ctx the parse tree + */ + void enterStringLength(GQL_20240412Parser.StringLengthContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#stringLength}. + * @param ctx the parse tree + */ + void exitStringLength(GQL_20240412Parser.StringLengthContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeValueExpression}. + * @param ctx the parse tree + */ + void enterDatetimeValueExpression(GQL_20240412Parser.DatetimeValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeValueExpression}. + * @param ctx the parse tree + */ + void exitDatetimeValueExpression(GQL_20240412Parser.DatetimeValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeValueFunction}. + * @param ctx the parse tree + */ + void enterDatetimeValueFunction(GQL_20240412Parser.DatetimeValueFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeValueFunction}. + * @param ctx the parse tree + */ + void exitDatetimeValueFunction(GQL_20240412Parser.DatetimeValueFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dateFunction}. + * @param ctx the parse tree + */ + void enterDateFunction(GQL_20240412Parser.DateFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dateFunction}. + * @param ctx the parse tree + */ + void exitDateFunction(GQL_20240412Parser.DateFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#timeFunction}. + * @param ctx the parse tree + */ + void enterTimeFunction(GQL_20240412Parser.TimeFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#timeFunction}. + * @param ctx the parse tree + */ + void exitTimeFunction(GQL_20240412Parser.TimeFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#localtimeFunction}. + * @param ctx the parse tree + */ + void enterLocaltimeFunction(GQL_20240412Parser.LocaltimeFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#localtimeFunction}. + * @param ctx the parse tree + */ + void exitLocaltimeFunction(GQL_20240412Parser.LocaltimeFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeFunction}. + * @param ctx the parse tree + */ + void enterDatetimeFunction(GQL_20240412Parser.DatetimeFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeFunction}. + * @param ctx the parse tree + */ + void exitDatetimeFunction(GQL_20240412Parser.DatetimeFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#localdatetimeFunction}. + * @param ctx the parse tree + */ + void enterLocaldatetimeFunction(GQL_20240412Parser.LocaldatetimeFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#localdatetimeFunction}. + * @param ctx the parse tree + */ + void exitLocaldatetimeFunction(GQL_20240412Parser.LocaldatetimeFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dateFunctionParameters}. + * @param ctx the parse tree + */ + void enterDateFunctionParameters(GQL_20240412Parser.DateFunctionParametersContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dateFunctionParameters}. + * @param ctx the parse tree + */ + void exitDateFunctionParameters(GQL_20240412Parser.DateFunctionParametersContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#timeFunctionParameters}. + * @param ctx the parse tree + */ + void enterTimeFunctionParameters(GQL_20240412Parser.TimeFunctionParametersContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#timeFunctionParameters}. + * @param ctx the parse tree + */ + void exitTimeFunctionParameters(GQL_20240412Parser.TimeFunctionParametersContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeFunctionParameters}. + * @param ctx the parse tree + */ + void enterDatetimeFunctionParameters(GQL_20240412Parser.DatetimeFunctionParametersContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeFunctionParameters}. + * @param ctx the parse tree + */ + void exitDatetimeFunctionParameters(GQL_20240412Parser.DatetimeFunctionParametersContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#durationValueExpression}. + * @param ctx the parse tree + */ + void enterDurationValueExpression(GQL_20240412Parser.DurationValueExpressionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#durationValueExpression}. + * @param ctx the parse tree + */ + void exitDurationValueExpression(GQL_20240412Parser.DurationValueExpressionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeSubtraction}. + * @param ctx the parse tree + */ + void enterDatetimeSubtraction(GQL_20240412Parser.DatetimeSubtractionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeSubtraction}. + * @param ctx the parse tree + */ + void exitDatetimeSubtraction(GQL_20240412Parser.DatetimeSubtractionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeSubtractionParameters}. + * @param ctx the parse tree + */ + void enterDatetimeSubtractionParameters(GQL_20240412Parser.DatetimeSubtractionParametersContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeSubtractionParameters}. + * @param ctx the parse tree + */ + void exitDatetimeSubtractionParameters(GQL_20240412Parser.DatetimeSubtractionParametersContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeValueExpression1}. + * @param ctx the parse tree + */ + void enterDatetimeValueExpression1(GQL_20240412Parser.DatetimeValueExpression1Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeValueExpression1}. + * @param ctx the parse tree + */ + void exitDatetimeValueExpression1(GQL_20240412Parser.DatetimeValueExpression1Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeValueExpression2}. + * @param ctx the parse tree + */ + void enterDatetimeValueExpression2(GQL_20240412Parser.DatetimeValueExpression2Context ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeValueExpression2}. + * @param ctx the parse tree + */ + void exitDatetimeValueExpression2(GQL_20240412Parser.DatetimeValueExpression2Context ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#durationValueFunction}. + * @param ctx the parse tree + */ + void enterDurationValueFunction(GQL_20240412Parser.DurationValueFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#durationValueFunction}. + * @param ctx the parse tree + */ + void exitDurationValueFunction(GQL_20240412Parser.DurationValueFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#durationFunction}. + * @param ctx the parse tree + */ + void enterDurationFunction(GQL_20240412Parser.DurationFunctionContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#durationFunction}. + * @param ctx the parse tree + */ + void exitDurationFunction(GQL_20240412Parser.DurationFunctionContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#durationFunctionParameters}. + * @param ctx the parse tree + */ + void enterDurationFunctionParameters(GQL_20240412Parser.DurationFunctionParametersContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#durationFunctionParameters}. + * @param ctx the parse tree + */ + void exitDurationFunctionParameters(GQL_20240412Parser.DurationFunctionParametersContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#objectName}. + * @param ctx the parse tree + */ + void enterObjectName(GQL_20240412Parser.ObjectNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#objectName}. + * @param ctx the parse tree + */ + void exitObjectName(GQL_20240412Parser.ObjectNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#objectNameOrBindingVariable}. + * @param ctx the parse tree + */ + void enterObjectNameOrBindingVariable(GQL_20240412Parser.ObjectNameOrBindingVariableContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#objectNameOrBindingVariable}. + * @param ctx the parse tree + */ + void exitObjectNameOrBindingVariable(GQL_20240412Parser.ObjectNameOrBindingVariableContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#directoryName}. + * @param ctx the parse tree + */ + void enterDirectoryName(GQL_20240412Parser.DirectoryNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#directoryName}. + * @param ctx the parse tree + */ + void exitDirectoryName(GQL_20240412Parser.DirectoryNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#schemaName}. + * @param ctx the parse tree + */ + void enterSchemaName(GQL_20240412Parser.SchemaNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#schemaName}. + * @param ctx the parse tree + */ + void exitSchemaName(GQL_20240412Parser.SchemaNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphName}. + * @param ctx the parse tree + */ + void enterGraphName(GQL_20240412Parser.GraphNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphName}. + * @param ctx the parse tree + */ + void exitGraphName(GQL_20240412Parser.GraphNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#delimitedGraphName}. + * @param ctx the parse tree + */ + void enterDelimitedGraphName(GQL_20240412Parser.DelimitedGraphNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#delimitedGraphName}. + * @param ctx the parse tree + */ + void exitDelimitedGraphName(GQL_20240412Parser.DelimitedGraphNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#graphTypeName}. + * @param ctx the parse tree + */ + void enterGraphTypeName(GQL_20240412Parser.GraphTypeNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#graphTypeName}. + * @param ctx the parse tree + */ + void exitGraphTypeName(GQL_20240412Parser.GraphTypeNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeTypeName}. + * @param ctx the parse tree + */ + void enterNodeTypeName(GQL_20240412Parser.NodeTypeNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeTypeName}. + * @param ctx the parse tree + */ + void exitNodeTypeName(GQL_20240412Parser.NodeTypeNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeTypeName}. + * @param ctx the parse tree + */ + void enterEdgeTypeName(GQL_20240412Parser.EdgeTypeNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeTypeName}. + * @param ctx the parse tree + */ + void exitEdgeTypeName(GQL_20240412Parser.EdgeTypeNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingTableName}. + * @param ctx the parse tree + */ + void enterBindingTableName(GQL_20240412Parser.BindingTableNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingTableName}. + * @param ctx the parse tree + */ + void exitBindingTableName(GQL_20240412Parser.BindingTableNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#delimitedBindingTableName}. + * @param ctx the parse tree + */ + void enterDelimitedBindingTableName(GQL_20240412Parser.DelimitedBindingTableNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#delimitedBindingTableName}. + * @param ctx the parse tree + */ + void exitDelimitedBindingTableName(GQL_20240412Parser.DelimitedBindingTableNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#procedureName}. + * @param ctx the parse tree + */ + void enterProcedureName(GQL_20240412Parser.ProcedureNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#procedureName}. + * @param ctx the parse tree + */ + void exitProcedureName(GQL_20240412Parser.ProcedureNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#labelName}. + * @param ctx the parse tree + */ + void enterLabelName(GQL_20240412Parser.LabelNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#labelName}. + * @param ctx the parse tree + */ + void exitLabelName(GQL_20240412Parser.LabelNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#propertyName}. + * @param ctx the parse tree + */ + void enterPropertyName(GQL_20240412Parser.PropertyNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#propertyName}. + * @param ctx the parse tree + */ + void exitPropertyName(GQL_20240412Parser.PropertyNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#fieldName}. + * @param ctx the parse tree + */ + void enterFieldName(GQL_20240412Parser.FieldNameContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#fieldName}. + * @param ctx the parse tree + */ + void exitFieldName(GQL_20240412Parser.FieldNameContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#elementVariable}. + * @param ctx the parse tree + */ + void enterElementVariable(GQL_20240412Parser.ElementVariableContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#elementVariable}. + * @param ctx the parse tree + */ + void exitElementVariable(GQL_20240412Parser.ElementVariableContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#pathVariable}. + * @param ctx the parse tree + */ + void enterPathVariable(GQL_20240412Parser.PathVariableContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#pathVariable}. + * @param ctx the parse tree + */ + void exitPathVariable(GQL_20240412Parser.PathVariableContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#subpathVariable}. + * @param ctx the parse tree + */ + void enterSubpathVariable(GQL_20240412Parser.SubpathVariableContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#subpathVariable}. + * @param ctx the parse tree + */ + void exitSubpathVariable(GQL_20240412Parser.SubpathVariableContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#bindingVariable}. + * @param ctx the parse tree + */ + void enterBindingVariable(GQL_20240412Parser.BindingVariableContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#bindingVariable}. + * @param ctx the parse tree + */ + void exitBindingVariable(GQL_20240412Parser.BindingVariableContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#unsignedLiteral}. + * @param ctx the parse tree + */ + void enterUnsignedLiteral(GQL_20240412Parser.UnsignedLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#unsignedLiteral}. + * @param ctx the parse tree + */ + void exitUnsignedLiteral(GQL_20240412Parser.UnsignedLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#generalLiteral}. + * @param ctx the parse tree + */ + void enterGeneralLiteral(GQL_20240412Parser.GeneralLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#generalLiteral}. + * @param ctx the parse tree + */ + void exitGeneralLiteral(GQL_20240412Parser.GeneralLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#temporalLiteral}. + * @param ctx the parse tree + */ + void enterTemporalLiteral(GQL_20240412Parser.TemporalLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#temporalLiteral}. + * @param ctx the parse tree + */ + void exitTemporalLiteral(GQL_20240412Parser.TemporalLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dateLiteral}. + * @param ctx the parse tree + */ + void enterDateLiteral(GQL_20240412Parser.DateLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dateLiteral}. + * @param ctx the parse tree + */ + void exitDateLiteral(GQL_20240412Parser.DateLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#timeLiteral}. + * @param ctx the parse tree + */ + void enterTimeLiteral(GQL_20240412Parser.TimeLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#timeLiteral}. + * @param ctx the parse tree + */ + void exitTimeLiteral(GQL_20240412Parser.TimeLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeLiteral}. + * @param ctx the parse tree + */ + void enterDatetimeLiteral(GQL_20240412Parser.DatetimeLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeLiteral}. + * @param ctx the parse tree + */ + void exitDatetimeLiteral(GQL_20240412Parser.DatetimeLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#listLiteral}. + * @param ctx the parse tree + */ + void enterListLiteral(GQL_20240412Parser.ListLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#listLiteral}. + * @param ctx the parse tree + */ + void exitListLiteral(GQL_20240412Parser.ListLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#recordLiteral}. + * @param ctx the parse tree + */ + void enterRecordLiteral(GQL_20240412Parser.RecordLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#recordLiteral}. + * @param ctx the parse tree + */ + void exitRecordLiteral(GQL_20240412Parser.RecordLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#identifier}. + * @param ctx the parse tree + */ + void enterIdentifier(GQL_20240412Parser.IdentifierContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#identifier}. + * @param ctx the parse tree + */ + void exitIdentifier(GQL_20240412Parser.IdentifierContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#regularIdentifier}. + * @param ctx the parse tree + */ + void enterRegularIdentifier(GQL_20240412Parser.RegularIdentifierContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#regularIdentifier}. + * @param ctx the parse tree + */ + void exitRegularIdentifier(GQL_20240412Parser.RegularIdentifierContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#timeZoneString}. + * @param ctx the parse tree + */ + void enterTimeZoneString(GQL_20240412Parser.TimeZoneStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#timeZoneString}. + * @param ctx the parse tree + */ + void exitTimeZoneString(GQL_20240412Parser.TimeZoneStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#characterStringLiteral}. + * @param ctx the parse tree + */ + void enterCharacterStringLiteral(GQL_20240412Parser.CharacterStringLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#characterStringLiteral}. + * @param ctx the parse tree + */ + void exitCharacterStringLiteral(GQL_20240412Parser.CharacterStringLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#unsignedNumericLiteral}. + * @param ctx the parse tree + */ + void enterUnsignedNumericLiteral(GQL_20240412Parser.UnsignedNumericLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#unsignedNumericLiteral}. + * @param ctx the parse tree + */ + void exitUnsignedNumericLiteral(GQL_20240412Parser.UnsignedNumericLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#exactNumericLiteral}. + * @param ctx the parse tree + */ + void enterExactNumericLiteral(GQL_20240412Parser.ExactNumericLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#exactNumericLiteral}. + * @param ctx the parse tree + */ + void exitExactNumericLiteral(GQL_20240412Parser.ExactNumericLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#approximateNumericLiteral}. + * @param ctx the parse tree + */ + void enterApproximateNumericLiteral(GQL_20240412Parser.ApproximateNumericLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#approximateNumericLiteral}. + * @param ctx the parse tree + */ + void exitApproximateNumericLiteral(GQL_20240412Parser.ApproximateNumericLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#unsignedInteger}. + * @param ctx the parse tree + */ + void enterUnsignedInteger(GQL_20240412Parser.UnsignedIntegerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#unsignedInteger}. + * @param ctx the parse tree + */ + void exitUnsignedInteger(GQL_20240412Parser.UnsignedIntegerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#unsignedDecimalInteger}. + * @param ctx the parse tree + */ + void enterUnsignedDecimalInteger(GQL_20240412Parser.UnsignedDecimalIntegerContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#unsignedDecimalInteger}. + * @param ctx the parse tree + */ + void exitUnsignedDecimalInteger(GQL_20240412Parser.UnsignedDecimalIntegerContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nullLiteral}. + * @param ctx the parse tree + */ + void enterNullLiteral(GQL_20240412Parser.NullLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nullLiteral}. + * @param ctx the parse tree + */ + void exitNullLiteral(GQL_20240412Parser.NullLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#dateString}. + * @param ctx the parse tree + */ + void enterDateString(GQL_20240412Parser.DateStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#dateString}. + * @param ctx the parse tree + */ + void exitDateString(GQL_20240412Parser.DateStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#timeString}. + * @param ctx the parse tree + */ + void enterTimeString(GQL_20240412Parser.TimeStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#timeString}. + * @param ctx the parse tree + */ + void exitTimeString(GQL_20240412Parser.TimeStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#datetimeString}. + * @param ctx the parse tree + */ + void enterDatetimeString(GQL_20240412Parser.DatetimeStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#datetimeString}. + * @param ctx the parse tree + */ + void exitDatetimeString(GQL_20240412Parser.DatetimeStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#durationLiteral}. + * @param ctx the parse tree + */ + void enterDurationLiteral(GQL_20240412Parser.DurationLiteralContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#durationLiteral}. + * @param ctx the parse tree + */ + void exitDurationLiteral(GQL_20240412Parser.DurationLiteralContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#durationString}. + * @param ctx the parse tree + */ + void enterDurationString(GQL_20240412Parser.DurationStringContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#durationString}. + * @param ctx the parse tree + */ + void exitDurationString(GQL_20240412Parser.DurationStringContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nodeSynonym}. + * @param ctx the parse tree + */ + void enterNodeSynonym(GQL_20240412Parser.NodeSynonymContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nodeSynonym}. + * @param ctx the parse tree + */ + void exitNodeSynonym(GQL_20240412Parser.NodeSynonymContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgesSynonym}. + * @param ctx the parse tree + */ + void enterEdgesSynonym(GQL_20240412Parser.EdgesSynonymContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgesSynonym}. + * @param ctx the parse tree + */ + void exitEdgesSynonym(GQL_20240412Parser.EdgesSynonymContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#edgeSynonym}. + * @param ctx the parse tree + */ + void enterEdgeSynonym(GQL_20240412Parser.EdgeSynonymContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#edgeSynonym}. + * @param ctx the parse tree + */ + void exitEdgeSynonym(GQL_20240412Parser.EdgeSynonymContext ctx); + /** + * Enter a parse tree produced by {@link GQL_20240412Parser#nonReservedWords}. + * @param ctx the parse tree + */ + void enterNonReservedWords(GQL_20240412Parser.NonReservedWordsContext ctx); + /** + * Exit a parse tree produced by {@link GQL_20240412Parser#nonReservedWords}. + * @param ctx the parse tree + */ + void exitNonReservedWords(GQL_20240412Parser.NonReservedWordsContext ctx); +} \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_20240412Parser.java b/developer/javac/ANTLR/GQL_20240412Parser.java new file mode 100644 index 0000000..5781c73 --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240412Parser.java @@ -0,0 +1,41037 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class GQL_20240412Parser extends Parser { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + IMPLIES=1, BOOLEAN_LITERAL=2, SINGLE_QUOTED_CHARACTER_SEQUENCE=3, DOUBLE_QUOTED_CHARACTER_SEQUENCE=4, + ACCENT_QUOTED_CHARACTER_SEQUENCE=5, NO_ESCAPE=6, BYTE_STRING_LITERAL=7, + UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX=8, UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX=9, + UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=10, + UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX=11, UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX=12, + UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=13, + UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX=14, UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX=15, + UNSIGNED_DECIMAL_INTEGER=16, UNSIGNED_HEXADECIMAL_INTEGER=17, UNSIGNED_OCTAL_INTEGER=18, + UNSIGNED_BINARY_INTEGER=19, ABS=20, ACOS=21, ALL=22, ALL_DIFFERENT=23, + AND=24, ANY=25, ARRAY=26, AS=27, ASC=28, ASCENDING=29, ASIN=30, AT=31, + ATAN=32, AVG=33, BIG=34, BIGINT=35, BINARY=36, BOOL=37, BOOLEAN=38, BOTH=39, + BTRIM=40, BY=41, BYTE_LENGTH=42, BYTES=43, CALL=44, CARDINALITY=45, CASE=46, + CAST=47, CEIL=48, CEILING=49, CHAR=50, CHAR_LENGTH=51, CHARACTER_LENGTH=52, + CHARACTERISTICS=53, CLOSE=54, COALESCE=55, COLLECT_LIST=56, COMMIT=57, + COPY=58, COS=59, COSH=60, COT=61, COUNT=62, CREATE=63, CURRENT_DATE=64, + CURRENT_GRAPH=65, CURRENT_PROPERTY_GRAPH=66, CURRENT_SCHEMA=67, CURRENT_TIME=68, + CURRENT_TIMESTAMP=69, DATE=70, DATETIME=71, DAY=72, DEC=73, DECIMAL=74, + DEGREES=75, DELETE=76, DESC=77, DESCENDING=78, DETACH=79, DISTINCT=80, + DOUBLE=81, DROP=82, DURATION=83, DURATION_BETWEEN=84, ELEMENT_ID=85, ELSE=86, + END=87, EXCEPT=88, EXISTS=89, EXP=90, FILTER=91, FINISH=92, FLOAT=93, + FLOAT16=94, FLOAT32=95, FLOAT64=96, FLOAT128=97, FLOAT256=98, FLOOR=99, + FOR=100, FROM=101, GROUP=102, HAVING=103, HOME_GRAPH=104, HOME_PROPERTY_GRAPH=105, + HOME_SCHEMA=106, HOUR=107, IF=108, IN=109, INSERT=110, INT=111, INTEGER=112, + INT8=113, INTEGER8=114, INT16=115, INTEGER16=116, INT32=117, INTEGER32=118, + INT64=119, INTEGER64=120, INT128=121, INTEGER128=122, INT256=123, INTEGER256=124, + INTERSECT=125, INTERVAL=126, IS=127, LEADING=128, LEFT=129, LET=130, LIKE=131, + LIMIT=132, LIST=133, LN=134, LOCAL=135, LOCAL_DATETIME=136, LOCAL_TIME=137, + LOCAL_TIMESTAMP=138, LOG=139, LOG10=140, LOWER=141, LTRIM=142, MATCH=143, + MAX=144, MIN=145, MINUTE=146, MOD=147, MONTH=148, NEXT=149, NODETACH=150, + NORMALIZE=151, NOT=152, NOTHING=153, NULL=154, NULLS=155, NULLIF=156, + OCTET_LENGTH=157, OF=158, OFFSET=159, OPTIONAL=160, OR=161, ORDER=162, + OTHERWISE=163, PARAMETER=164, PARAMETERS=165, PATH=166, PATH_LENGTH=167, + PATHS=168, PERCENTILE_CONT=169, PERCENTILE_DISC=170, POWER=171, PRECISION=172, + PROPERTY_EXISTS=173, RADIANS=174, REAL=175, RECORD=176, REMOVE=177, REPLACE=178, + RESET=179, RETURN=180, RIGHT=181, ROLLBACK=182, RTRIM=183, SAME=184, SCHEMA=185, + SECOND=186, SELECT=187, SESSION=188, SESSION_USER=189, SET=190, SIGNED=191, + SIN=192, SINH=193, SIZE=194, SKIP_RESERVED_WORD=195, SMALL=196, SMALLINT=197, + SQRT=198, START=199, STDDEV_POP=200, STDDEV_SAMP=201, STRING=202, SUM=203, + TAN=204, TANH=205, THEN=206, TIME=207, TIMESTAMP=208, TRAILING=209, TRIM=210, + TYPED=211, UBIGINT=212, UINT=213, UINT8=214, UINT16=215, UINT32=216, UINT64=217, + UINT128=218, UINT256=219, UNION=220, UNSIGNED=221, UPPER=222, USE=223, + USMALLINT=224, VALUE=225, VARBINARY=226, VARCHAR=227, VARIABLE=228, WHEN=229, + WHERE=230, WITH=231, XOR=232, YEAR=233, YIELD=234, ZONED=235, ZONED_DATETIME=236, + ZONED_TIME=237, ABSTRACT=238, AGGREGATE=239, AGGREGATES=240, ALTER=241, + CATALOG=242, CLEAR=243, CLONE=244, CONSTRAINT=245, CURRENT_ROLE=246, CURRENT_USER=247, + DATA=248, DIRECTORY=249, DRYRUN=250, EXACT=251, EXISTING=252, FUNCTION=253, + GQLSTATUS=254, GRANT=255, INSTANT=256, INFINITY=257, NUMBER=258, NUMERIC=259, + ON=260, OPEN=261, PARTITION=262, PROCEDURE=263, PRODUCT=264, PROJECT=265, + QUERY=266, RECORDS=267, REFERENCE=268, RENAME=269, REVOKE=270, SUBSTRING=271, + SYSTEM_USER=272, TEMPORAL=273, UNIQUE=274, UNIT=275, VALUES=276, ACYCLIC=277, + BINDING=278, BINDINGS=279, CONNECTING=280, DESTINATION=281, DIFFERENT=282, + DIRECTED=283, EDGE=284, EDGES=285, ELEMENT=286, ELEMENTS=287, FIRST=288, + GRAPH=289, GROUPS=290, KEEP=291, LABEL=292, LABELED=293, LABELS=294, LAST=295, + NFC=296, NFD=297, NFKC=298, NFKD=299, NO=300, NODE=301, NORMALIZED=302, + ONLY=303, ORDINALITY=304, PROPERTY=305, READ=306, RELATIONSHIP=307, RELATIONSHIPS=308, + REPEATABLE=309, SHORTEST=310, SIMPLE=311, SOURCE=312, TABLE=313, TEMP=314, + TO=315, TRAIL=316, TRANSACTION=317, TYPE=318, UNDIRECTED=319, VERTEX=320, + WALK=321, WITHOUT=322, WRITE=323, ZONE=324, REGULAR_IDENTIFIER=325, SUBSTITUTED_PARAMETER_REFERENCE=326, + GENERAL_PARAMETER_REFERENCE=327, MULTISET_ALTERNATION_OPERATOR=328, BRACKET_RIGHT_ARROW=329, + BRACKET_TILDE_RIGHT_ARROW=330, CONCATENATION_OPERATOR=331, DOUBLE_COLON=332, + DOUBLE_DOLLAR_SIGN=333, DOUBLE_PERIOD=334, GREATER_THAN_OR_EQUALS_OPERATOR=335, + LEFT_ARROW=336, LEFT_ARROW_TILDE=337, LEFT_ARROW_BRACKET=338, LEFT_ARROW_TILDE_BRACKET=339, + LEFT_MINUS_RIGHT=340, LEFT_MINUS_SLASH=341, LEFT_TILDE_SLASH=342, LESS_THAN_OR_EQUALS_OPERATOR=343, + MINUS_LEFT_BRACKET=344, MINUS_SLASH=345, NOT_EQUALS_OPERATOR=346, RIGHT_ARROW=347, + RIGHT_BRACKET_MINUS=348, RIGHT_BRACKET_TILDE=349, RIGHT_DOUBLE_ARROW=350, + SLASH_MINUS=351, SLASH_MINUS_RIGHT=352, SLASH_TILDE=353, SLASH_TILDE_RIGHT=354, + TILDE_LEFT_BRACKET=355, TILDE_RIGHT_ARROW=356, TILDE_SLASH=357, AMPERSAND=358, + ASTERISK=359, COLON=360, COMMA=361, COMMERCIAL_AT=362, DOLLAR_SIGN=363, + DOUBLE_QUOTE=364, EQUALS_OPERATOR=365, EXCLAMATION_MARK=366, RIGHT_ANGLE_BRACKET=367, + GRAVE_ACCENT=368, LEFT_BRACE=369, LEFT_BRACKET=370, LEFT_PAREN=371, LEFT_ANGLE_BRACKET=372, + MINUS_SIGN=373, PERCENT=374, PERIOD=375, PLUS_SIGN=376, QUESTION_MARK=377, + QUOTE=378, REVERSE_SOLIDUS=379, RIGHT_BRACE=380, RIGHT_BRACKET=381, RIGHT_PAREN=382, + SOLIDUS=383, TILDE=384, UNDERSCORE=385, VERTICAL_BAR=386, SP=387, WHITESPACE=388, + BRACKETED_COMMENT=389, SIMPLE_COMMENT_SOLIDUS=390, SIMPLE_COMMENT_MINUS=391; + public static final int + RULE_gqlProgram = 0, RULE_programActivity = 1, RULE_sessionActivity = 2, + RULE_transactionActivity = 3, RULE_endTransactionCommand = 4, RULE_sessionSetCommand = 5, + RULE_sessionSetSchemaClause = 6, RULE_sessionSetGraphClause = 7, RULE_sessionSetTimeZoneClause = 8, + RULE_setTimeZoneValue = 9, RULE_sessionSetParameterClause = 10, RULE_sessionSetGraphParameterClause = 11, + RULE_sessionSetBindingTableParameterClause = 12, RULE_sessionSetValueParameterClause = 13, + RULE_sessionSetParameterName = 14, RULE_sessionResetCommand = 15, RULE_sessionResetArguments = 16, + RULE_sessionCloseCommand = 17, RULE_sessionParameterSpecification = 18, + RULE_startTransactionCommand = 19, RULE_transactionCharacteristics = 20, + RULE_transactionMode = 21, RULE_transactionAccessMode = 22, RULE_rollbackCommand = 23, + RULE_commitCommand = 24, RULE_nestedProcedureSpecification = 25, RULE_procedureSpecification = 26, + RULE_nestedDataModifyingProcedureSpecification = 27, RULE_nestedQuerySpecification = 28, + RULE_procedureBody = 29, RULE_bindingVariableDefinitionBlock = 30, RULE_bindingVariableDefinition = 31, + RULE_statementBlock = 32, RULE_statement = 33, RULE_nextStatement = 34, + RULE_graphVariableDefinition = 35, RULE_optTypedGraphInitializer = 36, + RULE_graphInitializer = 37, RULE_bindingTableVariableDefinition = 38, + RULE_optTypedBindingTableInitializer = 39, RULE_bindingTableInitializer = 40, + RULE_valueVariableDefinition = 41, RULE_optTypedValueInitializer = 42, + RULE_valueInitializer = 43, RULE_graphExpression = 44, RULE_currentGraph = 45, + RULE_bindingTableExpression = 46, RULE_nestedBindingTableQuerySpecification = 47, + RULE_objectExpressionPrimary = 48, RULE_linearCatalogModifyingStatement = 49, + RULE_simpleCatalogModifyingStatement = 50, RULE_primitiveCatalogModifyingStatement = 51, + RULE_createSchemaStatement = 52, RULE_dropSchemaStatement = 53, RULE_createGraphStatement = 54, + RULE_openGraphType = 55, RULE_ofGraphType = 56, RULE_graphTypeLikeGraph = 57, + RULE_graphSource = 58, RULE_dropGraphStatement = 59, RULE_createGraphTypeStatement = 60, + RULE_graphTypeSource = 61, RULE_copyOfGraphType = 62, RULE_dropGraphTypeStatement = 63, + RULE_callCatalogModifyingProcedureStatement = 64, RULE_linearDataModifyingStatement = 65, + RULE_focusedLinearDataModifyingStatement = 66, RULE_focusedLinearDataModifyingStatementBody = 67, + RULE_focusedNestedDataModifyingProcedureSpecification = 68, RULE_ambientLinearDataModifyingStatement = 69, + RULE_ambientLinearDataModifyingStatementBody = 70, RULE_simpleLinearDataAccessingStatement = 71, + RULE_simpleDataModifyingStatement = 72, RULE_primitiveDataModifyingStatement = 73, + RULE_insertStatement = 74, RULE_setStatement = 75, RULE_setItemList = 76, + RULE_setItem = 77, RULE_setPropertyItem = 78, RULE_setAllPropertiesItem = 79, + RULE_setLabelItem = 80, RULE_removeStatement = 81, RULE_removeItemList = 82, + RULE_removeItem = 83, RULE_removePropertyItem = 84, RULE_removeLabelItem = 85, + RULE_deleteStatement = 86, RULE_deleteItemList = 87, RULE_deleteItem = 88, + RULE_callDataModifyingProcedureStatement = 89, RULE_compositeQueryStatement = 90, + RULE_compositeQueryExpression = 91, RULE_queryConjunction = 92, RULE_setOperator = 93, + RULE_compositeQueryPrimary = 94, RULE_linearQueryStatement = 95, RULE_focusedLinearQueryStatement = 96, + RULE_focusedLinearQueryStatementPart = 97, RULE_focusedLinearQueryAndPrimitiveResultStatementPart = 98, + RULE_focusedPrimitiveResultStatement = 99, RULE_focusedNestedQuerySpecification = 100, + RULE_ambientLinearQueryStatement = 101, RULE_simpleLinearQueryStatement = 102, + RULE_simpleQueryStatement = 103, RULE_primitiveQueryStatement = 104, RULE_matchStatement = 105, + RULE_simpleMatchStatement = 106, RULE_optionalMatchStatement = 107, RULE_optionalOperand = 108, + RULE_matchStatementBlock = 109, RULE_callQueryStatement = 110, RULE_filterStatement = 111, + RULE_letStatement = 112, RULE_letVariableDefinitionList = 113, RULE_letVariableDefinition = 114, + RULE_forStatement = 115, RULE_forItem = 116, RULE_forItemAlias = 117, + RULE_forItemSource = 118, RULE_forOrdinalityOrOffset = 119, RULE_orderByAndPageStatement = 120, + RULE_primitiveResultStatement = 121, RULE_returnStatement = 122, RULE_returnStatementBody = 123, + RULE_returnItemList = 124, RULE_returnItem = 125, RULE_returnItemAlias = 126, + RULE_selectStatement = 127, RULE_selectItemList = 128, RULE_selectItem = 129, + RULE_selectItemAlias = 130, RULE_havingClause = 131, RULE_selectStatementBody = 132, + RULE_selectGraphMatchList = 133, RULE_selectGraphMatch = 134, RULE_selectQuerySpecification = 135, + RULE_callProcedureStatement = 136, RULE_procedureCall = 137, RULE_inlineProcedureCall = 138, + RULE_variableScopeClause = 139, RULE_bindingVariableReferenceList = 140, + RULE_namedProcedureCall = 141, RULE_procedureArgumentList = 142, RULE_procedureArgument = 143, + RULE_atSchemaClause = 144, RULE_useGraphClause = 145, RULE_graphPatternBindingTable = 146, + RULE_graphPatternYieldClause = 147, RULE_graphPatternYieldItemList = 148, + RULE_graphPatternYieldItem = 149, RULE_graphPattern = 150, RULE_matchMode = 151, + RULE_repeatableElementsMatchMode = 152, RULE_differentEdgesMatchMode = 153, + RULE_elementBindingsOrElements = 154, RULE_edgeBindingsOrEdges = 155, + RULE_pathPatternList = 156, RULE_pathPattern = 157, RULE_pathVariableDeclaration = 158, + RULE_keepClause = 159, RULE_graphPatternWhereClause = 160, RULE_insertGraphPattern = 161, + RULE_insertPathPatternList = 162, RULE_insertPathPattern = 163, RULE_insertNodePattern = 164, + RULE_insertEdgePattern = 165, RULE_insertEdgePointingLeft = 166, RULE_insertEdgePointingRight = 167, + RULE_insertEdgeUndirected = 168, RULE_insertElementPatternFiller = 169, + RULE_labelAndPropertySetSpecification = 170, RULE_pathPatternPrefix = 171, + RULE_pathModePrefix = 172, RULE_pathMode = 173, RULE_pathSearchPrefix = 174, + RULE_allPathSearch = 175, RULE_pathOrPaths = 176, RULE_anyPathSearch = 177, + RULE_numberOfPaths = 178, RULE_shortestPathSearch = 179, RULE_allShortestPathSearch = 180, + RULE_anyShortestPathSearch = 181, RULE_countedShortestPathSearch = 182, + RULE_countedShortestGroupSearch = 183, RULE_numberOfGroups = 184, RULE_pathPatternExpression = 185, + RULE_pathTerm = 186, RULE_pathFactor = 187, RULE_pathPrimary = 188, RULE_elementPattern = 189, + RULE_nodePattern = 190, RULE_elementPatternFiller = 191, RULE_elementVariableDeclaration = 192, + RULE_isLabelExpression = 193, RULE_isOrColon = 194, RULE_elementPatternPredicate = 195, + RULE_elementPatternWhereClause = 196, RULE_elementPropertySpecification = 197, + RULE_propertyKeyValuePairList = 198, RULE_propertyKeyValuePair = 199, + RULE_edgePattern = 200, RULE_fullEdgePattern = 201, RULE_fullEdgePointingLeft = 202, + RULE_fullEdgeUndirected = 203, RULE_fullEdgePointingRight = 204, RULE_fullEdgeLeftOrUndirected = 205, + RULE_fullEdgeUndirectedOrRight = 206, RULE_fullEdgeLeftOrRight = 207, + RULE_fullEdgeAnyDirection = 208, RULE_abbreviatedEdgePattern = 209, RULE_parenthesizedPathPatternExpression = 210, + RULE_subpathVariableDeclaration = 211, RULE_parenthesizedPathPatternWhereClause = 212, + RULE_labelExpression = 213, RULE_pathVariableReference = 214, RULE_elementVariableReference = 215, + RULE_graphPatternQuantifier = 216, RULE_fixedQuantifier = 217, RULE_generalQuantifier = 218, + RULE_lowerBound = 219, RULE_upperBound = 220, RULE_simplifiedPathPatternExpression = 221, + RULE_simplifiedDefaultingLeft = 222, RULE_simplifiedDefaultingUndirected = 223, + RULE_simplifiedDefaultingRight = 224, RULE_simplifiedDefaultingLeftOrUndirected = 225, + RULE_simplifiedDefaultingUndirectedOrRight = 226, RULE_simplifiedDefaultingLeftOrRight = 227, + RULE_simplifiedDefaultingAnyDirection = 228, RULE_simplifiedContents = 229, + RULE_simplifiedPathUnion = 230, RULE_simplifiedMultisetAlternation = 231, + RULE_simplifiedTerm = 232, RULE_simplifiedFactorLow = 233, RULE_simplifiedFactorHigh = 234, + RULE_simplifiedQuantified = 235, RULE_simplifiedQuestioned = 236, RULE_simplifiedTertiary = 237, + RULE_simplifiedDirectionOverride = 238, RULE_simplifiedOverrideLeft = 239, + RULE_simplifiedOverrideUndirected = 240, RULE_simplifiedOverrideRight = 241, + RULE_simplifiedOverrideLeftOrUndirected = 242, RULE_simplifiedOverrideUndirectedOrRight = 243, + RULE_simplifiedOverrideLeftOrRight = 244, RULE_simplifiedOverrideAnyDirection = 245, + RULE_simplifiedSecondary = 246, RULE_simplifiedNegation = 247, RULE_simplifiedPrimary = 248, + RULE_whereClause = 249, RULE_yieldClause = 250, RULE_yieldItemList = 251, + RULE_yieldItem = 252, RULE_yieldItemName = 253, RULE_yieldItemAlias = 254, + RULE_groupByClause = 255, RULE_groupingElementList = 256, RULE_groupingElement = 257, + RULE_emptyGroupingSet = 258, RULE_orderByClause = 259, RULE_sortSpecificationList = 260, + RULE_sortSpecification = 261, RULE_sortKey = 262, RULE_orderingSpecification = 263, + RULE_nullOrdering = 264, RULE_limitClause = 265, RULE_offsetClause = 266, + RULE_offsetSynonym = 267, RULE_schemaReference = 268, RULE_absoluteCatalogSchemaReference = 269, + RULE_catalogSchemaParentAndName = 270, RULE_relativeCatalogSchemaReference = 271, + RULE_predefinedSchemaReference = 272, RULE_absoluteDirectoryPath = 273, + RULE_relativeDirectoryPath = 274, RULE_simpleDirectoryPath = 275, RULE_graphReference = 276, + RULE_catalogGraphParentAndName = 277, RULE_homeGraph = 278, RULE_graphTypeReference = 279, + RULE_catalogGraphTypeParentAndName = 280, RULE_bindingTableReference = 281, + RULE_procedureReference = 282, RULE_catalogProcedureParentAndName = 283, + RULE_catalogObjectParentReference = 284, RULE_referenceParameterSpecification = 285, + RULE_nestedGraphTypeSpecification = 286, RULE_graphTypeSpecificationBody = 287, + RULE_elementTypeList = 288, RULE_elementTypeSpecification = 289, RULE_nodeTypeSpecification = 290, + RULE_nodeTypePattern = 291, RULE_nodeTypePhrase = 292, RULE_nodeTypePhraseFiller = 293, + RULE_nodeTypeFiller = 294, RULE_localNodeTypeAlias = 295, RULE_nodeTypeImpliedContent = 296, + RULE_nodeTypeKeyLabelSet = 297, RULE_nodeTypeLabelSet = 298, RULE_nodeTypePropertyTypes = 299, + RULE_edgeTypeSpecification = 300, RULE_edgeTypePattern = 301, RULE_edgeTypePhrase = 302, + RULE_edgeTypePhraseFiller = 303, RULE_edgeTypeFiller = 304, RULE_edgeTypeImpliedContent = 305, + RULE_edgeTypeKeyLabelSet = 306, RULE_edgeTypeLabelSet = 307, RULE_edgeTypePropertyTypes = 308, + RULE_edgeTypePatternDirected = 309, RULE_edgeTypePatternPointingRight = 310, + RULE_edgeTypePatternPointingLeft = 311, RULE_edgeTypePatternUndirected = 312, + RULE_arcTypePointingRight = 313, RULE_arcTypePointingLeft = 314, RULE_arcTypeUndirected = 315, + RULE_sourceNodeTypeReference = 316, RULE_destinationNodeTypeReference = 317, + RULE_edgeKind = 318, RULE_endpointPairPhrase = 319, RULE_endpointPair = 320, + RULE_endpointPairDirected = 321, RULE_endpointPairPointingRight = 322, + RULE_endpointPairPointingLeft = 323, RULE_endpointPairUndirected = 324, + RULE_connectorPointingRight = 325, RULE_connectorUndirected = 326, RULE_sourceNodeTypeAlias = 327, + RULE_destinationNodeTypeAlias = 328, RULE_labelSetPhrase = 329, RULE_labelSetSpecification = 330, + RULE_propertyTypesSpecification = 331, RULE_propertyTypeList = 332, RULE_propertyType = 333, + RULE_propertyValueType = 334, RULE_bindingTableType = 335, RULE_valueType = 336, + RULE_typed = 337, RULE_predefinedType = 338, RULE_booleanType = 339, RULE_characterStringType = 340, + RULE_byteStringType = 341, RULE_minLength = 342, RULE_maxLength = 343, + RULE_fixedLength = 344, RULE_numericType = 345, RULE_exactNumericType = 346, + RULE_binaryExactNumericType = 347, RULE_signedBinaryExactNumericType = 348, + RULE_unsignedBinaryExactNumericType = 349, RULE_verboseBinaryExactNumericType = 350, + RULE_decimalExactNumericType = 351, RULE_precision = 352, RULE_scale = 353, + RULE_approximateNumericType = 354, RULE_temporalType = 355, RULE_temporalInstantType = 356, + RULE_datetimeType = 357, RULE_localdatetimeType = 358, RULE_dateType = 359, + RULE_timeType = 360, RULE_localtimeType = 361, RULE_temporalDurationType = 362, + RULE_temporalDurationQualifier = 363, RULE_referenceValueType = 364, RULE_immaterialValueType = 365, + RULE_nullType = 366, RULE_emptyType = 367, RULE_graphReferenceValueType = 368, + RULE_closedGraphReferenceValueType = 369, RULE_openGraphReferenceValueType = 370, + RULE_bindingTableReferenceValueType = 371, RULE_nodeReferenceValueType = 372, + RULE_closedNodeReferenceValueType = 373, RULE_openNodeReferenceValueType = 374, + RULE_edgeReferenceValueType = 375, RULE_closedEdgeReferenceValueType = 376, + RULE_openEdgeReferenceValueType = 377, RULE_pathValueType = 378, RULE_listValueTypeName = 379, + RULE_listValueTypeNameSynonym = 380, RULE_recordType = 381, RULE_fieldTypesSpecification = 382, + RULE_fieldTypeList = 383, RULE_notNull = 384, RULE_fieldType = 385, RULE_searchCondition = 386, + RULE_predicate = 387, RULE_comparisonPredicatePart2 = 388, RULE_compOp = 389, + RULE_existsPredicate = 390, RULE_nullPredicate = 391, RULE_nullPredicatePart2 = 392, + RULE_valueTypePredicate = 393, RULE_valueTypePredicatePart2 = 394, RULE_normalizedPredicatePart2 = 395, + RULE_directedPredicate = 396, RULE_directedPredicatePart2 = 397, RULE_labeledPredicate = 398, + RULE_labeledPredicatePart2 = 399, RULE_isLabeledOrColon = 400, RULE_sourceDestinationPredicate = 401, + RULE_nodeReference = 402, RULE_sourcePredicatePart2 = 403, RULE_destinationPredicatePart2 = 404, + RULE_edgeReference = 405, RULE_all_differentPredicate = 406, RULE_samePredicate = 407, + RULE_property_existsPredicate = 408, RULE_valueExpression = 409, RULE_valueFunction = 410, + RULE_booleanValueExpression = 411, RULE_characterOrByteStringFunction = 412, + RULE_subCharacterOrByteString = 413, RULE_trimSingleCharacterOrByteString = 414, + RULE_foldCharacterString = 415, RULE_trimMultiCharacterCharacterString = 416, + RULE_normalizeCharacterString = 417, RULE_nodeReferenceValueExpression = 418, + RULE_edgeReferenceValueExpression = 419, RULE_aggregatingValueExpression = 420, + RULE_valueExpressionPrimary = 421, RULE_parenthesizedValueExpression = 422, + RULE_nonParenthesizedValueExpressionPrimary = 423, RULE_nonParenthesizedValueExpressionPrimarySpecialCase = 424, + RULE_unsignedValueSpecification = 425, RULE_nonNegativeIntegerSpecification = 426, + RULE_generalValueSpecification = 427, RULE_dynamicParameterSpecification = 428, + RULE_letValueExpression = 429, RULE_valueQueryExpression = 430, RULE_caseExpression = 431, + RULE_caseAbbreviation = 432, RULE_caseSpecification = 433, RULE_simpleCase = 434, + RULE_searchedCase = 435, RULE_simpleWhenClause = 436, RULE_searchedWhenClause = 437, + RULE_elseClause = 438, RULE_caseOperand = 439, RULE_whenOperandList = 440, + RULE_whenOperand = 441, RULE_result = 442, RULE_resultExpression = 443, + RULE_castSpecification = 444, RULE_castOperand = 445, RULE_castTarget = 446, + RULE_aggregateFunction = 447, RULE_generalSetFunction = 448, RULE_binarySetFunction = 449, + RULE_generalSetFunctionType = 450, RULE_setQuantifier = 451, RULE_binarySetFunctionType = 452, + RULE_dependentValueExpression = 453, RULE_independentValueExpression = 454, + RULE_element_idFunction = 455, RULE_bindingVariableReference = 456, RULE_pathValueExpression = 457, + RULE_pathValueConstructor = 458, RULE_pathValueConstructorByEnumeration = 459, + RULE_pathElementList = 460, RULE_pathElementListStart = 461, RULE_pathElementListStep = 462, + RULE_listValueExpression = 463, RULE_listValueFunction = 464, RULE_trimListFunction = 465, + RULE_elementsFunction = 466, RULE_listValueConstructor = 467, RULE_listValueConstructorByEnumeration = 468, + RULE_listElementList = 469, RULE_listElement = 470, RULE_recordConstructor = 471, + RULE_fieldsSpecification = 472, RULE_fieldList = 473, RULE_field = 474, + RULE_truthValue = 475, RULE_numericValueExpression = 476, RULE_numericValueFunction = 477, + RULE_lengthExpression = 478, RULE_cardinalityExpression = 479, RULE_cardinalityExpressionArgument = 480, + RULE_charLengthExpression = 481, RULE_byteLengthExpression = 482, RULE_pathLengthExpression = 483, + RULE_absoluteValueExpression = 484, RULE_modulusExpression = 485, RULE_numericValueExpressionDividend = 486, + RULE_numericValueExpressionDivisor = 487, RULE_trigonometricFunction = 488, + RULE_trigonometricFunctionName = 489, RULE_generalLogarithmFunction = 490, + RULE_generalLogarithmBase = 491, RULE_generalLogarithmArgument = 492, + RULE_commonLogarithm = 493, RULE_naturalLogarithm = 494, RULE_exponentialFunction = 495, + RULE_powerFunction = 496, RULE_numericValueExpressionBase = 497, RULE_numericValueExpressionExponent = 498, + RULE_squareRoot = 499, RULE_floorFunction = 500, RULE_ceilingFunction = 501, + RULE_characterStringValueExpression = 502, RULE_byteStringValueExpression = 503, + RULE_trimOperands = 504, RULE_trimCharacterOrByteStringSource = 505, RULE_trimSpecification = 506, + RULE_trimCharacterOrByteString = 507, RULE_normalForm = 508, RULE_stringLength = 509, + RULE_datetimeValueExpression = 510, RULE_datetimeValueFunction = 511, + RULE_dateFunction = 512, RULE_timeFunction = 513, RULE_localtimeFunction = 514, + RULE_datetimeFunction = 515, RULE_localdatetimeFunction = 516, RULE_dateFunctionParameters = 517, + RULE_timeFunctionParameters = 518, RULE_datetimeFunctionParameters = 519, + RULE_durationValueExpression = 520, RULE_datetimeSubtraction = 521, RULE_datetimeSubtractionParameters = 522, + RULE_datetimeValueExpression1 = 523, RULE_datetimeValueExpression2 = 524, + RULE_durationValueFunction = 525, RULE_durationFunction = 526, RULE_durationFunctionParameters = 527, + RULE_objectName = 528, RULE_objectNameOrBindingVariable = 529, RULE_directoryName = 530, + RULE_schemaName = 531, RULE_graphName = 532, RULE_delimitedGraphName = 533, + RULE_graphTypeName = 534, RULE_nodeTypeName = 535, RULE_edgeTypeName = 536, + RULE_bindingTableName = 537, RULE_delimitedBindingTableName = 538, RULE_procedureName = 539, + RULE_labelName = 540, RULE_propertyName = 541, RULE_fieldName = 542, RULE_elementVariable = 543, + RULE_pathVariable = 544, RULE_subpathVariable = 545, RULE_bindingVariable = 546, + RULE_unsignedLiteral = 547, RULE_generalLiteral = 548, RULE_temporalLiteral = 549, + RULE_dateLiteral = 550, RULE_timeLiteral = 551, RULE_datetimeLiteral = 552, + RULE_listLiteral = 553, RULE_recordLiteral = 554, RULE_identifier = 555, + RULE_regularIdentifier = 556, RULE_timeZoneString = 557, RULE_characterStringLiteral = 558, + RULE_unsignedNumericLiteral = 559, RULE_exactNumericLiteral = 560, RULE_approximateNumericLiteral = 561, + RULE_unsignedInteger = 562, RULE_unsignedDecimalInteger = 563, RULE_nullLiteral = 564, + RULE_dateString = 565, RULE_timeString = 566, RULE_datetimeString = 567, + RULE_durationLiteral = 568, RULE_durationString = 569, RULE_nodeSynonym = 570, + RULE_edgesSynonym = 571, RULE_edgeSynonym = 572, RULE_nonReservedWords = 573; + private static String[] makeRuleNames() { + return new String[] { + "gqlProgram", "programActivity", "sessionActivity", "transactionActivity", + "endTransactionCommand", "sessionSetCommand", "sessionSetSchemaClause", + "sessionSetGraphClause", "sessionSetTimeZoneClause", "setTimeZoneValue", + "sessionSetParameterClause", "sessionSetGraphParameterClause", "sessionSetBindingTableParameterClause", + "sessionSetValueParameterClause", "sessionSetParameterName", "sessionResetCommand", + "sessionResetArguments", "sessionCloseCommand", "sessionParameterSpecification", + "startTransactionCommand", "transactionCharacteristics", "transactionMode", + "transactionAccessMode", "rollbackCommand", "commitCommand", "nestedProcedureSpecification", + "procedureSpecification", "nestedDataModifyingProcedureSpecification", + "nestedQuerySpecification", "procedureBody", "bindingVariableDefinitionBlock", + "bindingVariableDefinition", "statementBlock", "statement", "nextStatement", + "graphVariableDefinition", "optTypedGraphInitializer", "graphInitializer", + "bindingTableVariableDefinition", "optTypedBindingTableInitializer", + "bindingTableInitializer", "valueVariableDefinition", "optTypedValueInitializer", + "valueInitializer", "graphExpression", "currentGraph", "bindingTableExpression", + "nestedBindingTableQuerySpecification", "objectExpressionPrimary", "linearCatalogModifyingStatement", + "simpleCatalogModifyingStatement", "primitiveCatalogModifyingStatement", + "createSchemaStatement", "dropSchemaStatement", "createGraphStatement", + "openGraphType", "ofGraphType", "graphTypeLikeGraph", "graphSource", + "dropGraphStatement", "createGraphTypeStatement", "graphTypeSource", + "copyOfGraphType", "dropGraphTypeStatement", "callCatalogModifyingProcedureStatement", + "linearDataModifyingStatement", "focusedLinearDataModifyingStatement", + "focusedLinearDataModifyingStatementBody", "focusedNestedDataModifyingProcedureSpecification", + "ambientLinearDataModifyingStatement", "ambientLinearDataModifyingStatementBody", + "simpleLinearDataAccessingStatement", "simpleDataModifyingStatement", + "primitiveDataModifyingStatement", "insertStatement", "setStatement", + "setItemList", "setItem", "setPropertyItem", "setAllPropertiesItem", + "setLabelItem", "removeStatement", "removeItemList", "removeItem", "removePropertyItem", + "removeLabelItem", "deleteStatement", "deleteItemList", "deleteItem", + "callDataModifyingProcedureStatement", "compositeQueryStatement", "compositeQueryExpression", + "queryConjunction", "setOperator", "compositeQueryPrimary", "linearQueryStatement", + "focusedLinearQueryStatement", "focusedLinearQueryStatementPart", "focusedLinearQueryAndPrimitiveResultStatementPart", + "focusedPrimitiveResultStatement", "focusedNestedQuerySpecification", + "ambientLinearQueryStatement", "simpleLinearQueryStatement", "simpleQueryStatement", + "primitiveQueryStatement", "matchStatement", "simpleMatchStatement", + "optionalMatchStatement", "optionalOperand", "matchStatementBlock", "callQueryStatement", + "filterStatement", "letStatement", "letVariableDefinitionList", "letVariableDefinition", + "forStatement", "forItem", "forItemAlias", "forItemSource", "forOrdinalityOrOffset", + "orderByAndPageStatement", "primitiveResultStatement", "returnStatement", + "returnStatementBody", "returnItemList", "returnItem", "returnItemAlias", + "selectStatement", "selectItemList", "selectItem", "selectItemAlias", + "havingClause", "selectStatementBody", "selectGraphMatchList", "selectGraphMatch", + "selectQuerySpecification", "callProcedureStatement", "procedureCall", + "inlineProcedureCall", "variableScopeClause", "bindingVariableReferenceList", + "namedProcedureCall", "procedureArgumentList", "procedureArgument", "atSchemaClause", + "useGraphClause", "graphPatternBindingTable", "graphPatternYieldClause", + "graphPatternYieldItemList", "graphPatternYieldItem", "graphPattern", + "matchMode", "repeatableElementsMatchMode", "differentEdgesMatchMode", + "elementBindingsOrElements", "edgeBindingsOrEdges", "pathPatternList", + "pathPattern", "pathVariableDeclaration", "keepClause", "graphPatternWhereClause", + "insertGraphPattern", "insertPathPatternList", "insertPathPattern", "insertNodePattern", + "insertEdgePattern", "insertEdgePointingLeft", "insertEdgePointingRight", + "insertEdgeUndirected", "insertElementPatternFiller", "labelAndPropertySetSpecification", + "pathPatternPrefix", "pathModePrefix", "pathMode", "pathSearchPrefix", + "allPathSearch", "pathOrPaths", "anyPathSearch", "numberOfPaths", "shortestPathSearch", + "allShortestPathSearch", "anyShortestPathSearch", "countedShortestPathSearch", + "countedShortestGroupSearch", "numberOfGroups", "pathPatternExpression", + "pathTerm", "pathFactor", "pathPrimary", "elementPattern", "nodePattern", + "elementPatternFiller", "elementVariableDeclaration", "isLabelExpression", + "isOrColon", "elementPatternPredicate", "elementPatternWhereClause", + "elementPropertySpecification", "propertyKeyValuePairList", "propertyKeyValuePair", + "edgePattern", "fullEdgePattern", "fullEdgePointingLeft", "fullEdgeUndirected", + "fullEdgePointingRight", "fullEdgeLeftOrUndirected", "fullEdgeUndirectedOrRight", + "fullEdgeLeftOrRight", "fullEdgeAnyDirection", "abbreviatedEdgePattern", + "parenthesizedPathPatternExpression", "subpathVariableDeclaration", "parenthesizedPathPatternWhereClause", + "labelExpression", "pathVariableReference", "elementVariableReference", + "graphPatternQuantifier", "fixedQuantifier", "generalQuantifier", "lowerBound", + "upperBound", "simplifiedPathPatternExpression", "simplifiedDefaultingLeft", + "simplifiedDefaultingUndirected", "simplifiedDefaultingRight", "simplifiedDefaultingLeftOrUndirected", + "simplifiedDefaultingUndirectedOrRight", "simplifiedDefaultingLeftOrRight", + "simplifiedDefaultingAnyDirection", "simplifiedContents", "simplifiedPathUnion", + "simplifiedMultisetAlternation", "simplifiedTerm", "simplifiedFactorLow", + "simplifiedFactorHigh", "simplifiedQuantified", "simplifiedQuestioned", + "simplifiedTertiary", "simplifiedDirectionOverride", "simplifiedOverrideLeft", + "simplifiedOverrideUndirected", "simplifiedOverrideRight", "simplifiedOverrideLeftOrUndirected", + "simplifiedOverrideUndirectedOrRight", "simplifiedOverrideLeftOrRight", + "simplifiedOverrideAnyDirection", "simplifiedSecondary", "simplifiedNegation", + "simplifiedPrimary", "whereClause", "yieldClause", "yieldItemList", "yieldItem", + "yieldItemName", "yieldItemAlias", "groupByClause", "groupingElementList", + "groupingElement", "emptyGroupingSet", "orderByClause", "sortSpecificationList", + "sortSpecification", "sortKey", "orderingSpecification", "nullOrdering", + "limitClause", "offsetClause", "offsetSynonym", "schemaReference", "absoluteCatalogSchemaReference", + "catalogSchemaParentAndName", "relativeCatalogSchemaReference", "predefinedSchemaReference", + "absoluteDirectoryPath", "relativeDirectoryPath", "simpleDirectoryPath", + "graphReference", "catalogGraphParentAndName", "homeGraph", "graphTypeReference", + "catalogGraphTypeParentAndName", "bindingTableReference", "procedureReference", + "catalogProcedureParentAndName", "catalogObjectParentReference", "referenceParameterSpecification", + "nestedGraphTypeSpecification", "graphTypeSpecificationBody", "elementTypeList", + "elementTypeSpecification", "nodeTypeSpecification", "nodeTypePattern", + "nodeTypePhrase", "nodeTypePhraseFiller", "nodeTypeFiller", "localNodeTypeAlias", + "nodeTypeImpliedContent", "nodeTypeKeyLabelSet", "nodeTypeLabelSet", + "nodeTypePropertyTypes", "edgeTypeSpecification", "edgeTypePattern", + "edgeTypePhrase", "edgeTypePhraseFiller", "edgeTypeFiller", "edgeTypeImpliedContent", + "edgeTypeKeyLabelSet", "edgeTypeLabelSet", "edgeTypePropertyTypes", "edgeTypePatternDirected", + "edgeTypePatternPointingRight", "edgeTypePatternPointingLeft", "edgeTypePatternUndirected", + "arcTypePointingRight", "arcTypePointingLeft", "arcTypeUndirected", "sourceNodeTypeReference", + "destinationNodeTypeReference", "edgeKind", "endpointPairPhrase", "endpointPair", + "endpointPairDirected", "endpointPairPointingRight", "endpointPairPointingLeft", + "endpointPairUndirected", "connectorPointingRight", "connectorUndirected", + "sourceNodeTypeAlias", "destinationNodeTypeAlias", "labelSetPhrase", + "labelSetSpecification", "propertyTypesSpecification", "propertyTypeList", + "propertyType", "propertyValueType", "bindingTableType", "valueType", + "typed", "predefinedType", "booleanType", "characterStringType", "byteStringType", + "minLength", "maxLength", "fixedLength", "numericType", "exactNumericType", + "binaryExactNumericType", "signedBinaryExactNumericType", "unsignedBinaryExactNumericType", + "verboseBinaryExactNumericType", "decimalExactNumericType", "precision", + "scale", "approximateNumericType", "temporalType", "temporalInstantType", + "datetimeType", "localdatetimeType", "dateType", "timeType", "localtimeType", + "temporalDurationType", "temporalDurationQualifier", "referenceValueType", + "immaterialValueType", "nullType", "emptyType", "graphReferenceValueType", + "closedGraphReferenceValueType", "openGraphReferenceValueType", "bindingTableReferenceValueType", + "nodeReferenceValueType", "closedNodeReferenceValueType", "openNodeReferenceValueType", + "edgeReferenceValueType", "closedEdgeReferenceValueType", "openEdgeReferenceValueType", + "pathValueType", "listValueTypeName", "listValueTypeNameSynonym", "recordType", + "fieldTypesSpecification", "fieldTypeList", "notNull", "fieldType", "searchCondition", + "predicate", "comparisonPredicatePart2", "compOp", "existsPredicate", + "nullPredicate", "nullPredicatePart2", "valueTypePredicate", "valueTypePredicatePart2", + "normalizedPredicatePart2", "directedPredicate", "directedPredicatePart2", + "labeledPredicate", "labeledPredicatePart2", "isLabeledOrColon", "sourceDestinationPredicate", + "nodeReference", "sourcePredicatePart2", "destinationPredicatePart2", + "edgeReference", "all_differentPredicate", "samePredicate", "property_existsPredicate", + "valueExpression", "valueFunction", "booleanValueExpression", "characterOrByteStringFunction", + "subCharacterOrByteString", "trimSingleCharacterOrByteString", "foldCharacterString", + "trimMultiCharacterCharacterString", "normalizeCharacterString", "nodeReferenceValueExpression", + "edgeReferenceValueExpression", "aggregatingValueExpression", "valueExpressionPrimary", + "parenthesizedValueExpression", "nonParenthesizedValueExpressionPrimary", + "nonParenthesizedValueExpressionPrimarySpecialCase", "unsignedValueSpecification", + "nonNegativeIntegerSpecification", "generalValueSpecification", "dynamicParameterSpecification", + "letValueExpression", "valueQueryExpression", "caseExpression", "caseAbbreviation", + "caseSpecification", "simpleCase", "searchedCase", "simpleWhenClause", + "searchedWhenClause", "elseClause", "caseOperand", "whenOperandList", + "whenOperand", "result", "resultExpression", "castSpecification", "castOperand", + "castTarget", "aggregateFunction", "generalSetFunction", "binarySetFunction", + "generalSetFunctionType", "setQuantifier", "binarySetFunctionType", "dependentValueExpression", + "independentValueExpression", "element_idFunction", "bindingVariableReference", + "pathValueExpression", "pathValueConstructor", "pathValueConstructorByEnumeration", + "pathElementList", "pathElementListStart", "pathElementListStep", "listValueExpression", + "listValueFunction", "trimListFunction", "elementsFunction", "listValueConstructor", + "listValueConstructorByEnumeration", "listElementList", "listElement", + "recordConstructor", "fieldsSpecification", "fieldList", "field", "truthValue", + "numericValueExpression", "numericValueFunction", "lengthExpression", + "cardinalityExpression", "cardinalityExpressionArgument", "charLengthExpression", + "byteLengthExpression", "pathLengthExpression", "absoluteValueExpression", + "modulusExpression", "numericValueExpressionDividend", "numericValueExpressionDivisor", + "trigonometricFunction", "trigonometricFunctionName", "generalLogarithmFunction", + "generalLogarithmBase", "generalLogarithmArgument", "commonLogarithm", + "naturalLogarithm", "exponentialFunction", "powerFunction", "numericValueExpressionBase", + "numericValueExpressionExponent", "squareRoot", "floorFunction", "ceilingFunction", + "characterStringValueExpression", "byteStringValueExpression", "trimOperands", + "trimCharacterOrByteStringSource", "trimSpecification", "trimCharacterOrByteString", + "normalForm", "stringLength", "datetimeValueExpression", "datetimeValueFunction", + "dateFunction", "timeFunction", "localtimeFunction", "datetimeFunction", + "localdatetimeFunction", "dateFunctionParameters", "timeFunctionParameters", + "datetimeFunctionParameters", "durationValueExpression", "datetimeSubtraction", + "datetimeSubtractionParameters", "datetimeValueExpression1", "datetimeValueExpression2", + "durationValueFunction", "durationFunction", "durationFunctionParameters", + "objectName", "objectNameOrBindingVariable", "directoryName", "schemaName", + "graphName", "delimitedGraphName", "graphTypeName", "nodeTypeName", "edgeTypeName", + "bindingTableName", "delimitedBindingTableName", "procedureName", "labelName", + "propertyName", "fieldName", "elementVariable", "pathVariable", "subpathVariable", + "bindingVariable", "unsignedLiteral", "generalLiteral", "temporalLiteral", + "dateLiteral", "timeLiteral", "datetimeLiteral", "listLiteral", "recordLiteral", + "identifier", "regularIdentifier", "timeZoneString", "characterStringLiteral", + "unsignedNumericLiteral", "exactNumericLiteral", "approximateNumericLiteral", + "unsignedInteger", "unsignedDecimalInteger", "nullLiteral", "dateString", + "timeString", "datetimeString", "durationLiteral", "durationString", + "nodeSynonym", "edgesSynonym", "edgeSynonym", "nonReservedWords" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, "'ABS'", "'ACOS'", "'ALL'", + "'ALL_DIFFERENT'", "'AND'", "'ANY'", "'ARRAY'", "'AS'", "'ASC'", "'ASCENDING'", + "'ASIN'", "'AT'", "'ATAN'", "'AVG'", "'BIG'", "'BIGINT'", "'BINARY'", + "'BOOL'", "'BOOLEAN'", "'BOTH'", "'BTRIM'", "'BY'", "'BYTE_LENGTH'", + "'BYTES'", "'CALL'", "'CARDINALITY'", "'CASE'", "'CAST'", "'CEIL'", "'CEILING'", + "'CHAR'", "'CHAR_LENGTH'", "'CHARACTER_LENGTH'", "'CHARACTERISTICS'", + "'CLOSE'", "'COALESCE'", "'COLLECT_LIST'", "'COMMIT'", "'COPY'", "'COS'", + "'COSH'", "'COT'", "'COUNT'", "'CREATE'", "'CURRENT_DATE'", "'CURRENT_GRAPH'", + "'CURRENT_PROPERTY_GRAPH'", "'CURRENT_SCHEMA'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", + "'DATE'", "'DATETIME'", "'DAY'", "'DEC'", "'DECIMAL'", "'DEGREES'", "'DELETE'", + "'DESC'", "'DESCENDING'", "'DETACH'", "'DISTINCT'", "'DOUBLE'", "'DROP'", + "'DURATION'", "'DURATION_BETWEEN'", "'ELEMENT_ID'", "'ELSE'", "'END'", + "'EXCEPT'", "'EXISTS'", "'EXP'", "'FILTER'", "'FINISH'", "'FLOAT'", "'FLOAT16'", + "'FLOAT32'", "'FLOAT64'", "'FLOAT128'", "'FLOAT256'", "'FLOOR'", "'FOR'", + "'FROM'", "'GROUP'", "'HAVING'", "'HOME_GRAPH'", "'HOME_PROPERTY_GRAPH'", + "'HOME_SCHEMA'", "'HOUR'", "'IF'", "'IN'", "'INSERT'", "'INT'", "'INTEGER'", + "'INT8'", "'INTEGER8'", "'INT16'", "'INTEGER16'", "'INT32'", "'INTEGER32'", + "'INT64'", "'INTEGER64'", "'INT128'", "'INTEGER128'", "'INT256'", "'INTEGER256'", + "'INTERSECT'", "'INTERVAL'", "'IS'", "'LEADING'", "'LEFT'", "'LET'", + "'LIKE'", "'LIMIT'", "'LIST'", "'LN'", "'LOCAL'", "'LOCAL_DATETIME'", + "'LOCAL_TIME'", "'LOCAL_TIMESTAMP'", "'LOG'", "'LOG10'", "'LOWER'", "'LTRIM'", + "'MATCH'", "'MAX'", "'MIN'", "'MINUTE'", "'MOD'", "'MONTH'", "'NEXT'", + "'NODETACH'", "'NORMALIZE'", "'NOT'", "'NOTHING'", "'NULL'", "'NULLS'", + "'NULLIF'", "'OCTET_LENGTH'", "'OF'", "'OFFSET'", "'OPTIONAL'", "'OR'", + "'ORDER'", "'OTHERWISE'", "'PARAMETER'", "'PARAMETERS'", "'PATH'", "'PATH_LENGTH'", + "'PATHS'", "'PERCENTILE_CONT'", "'PERCENTILE_DISC'", "'POWER'", "'PRECISION'", + "'PROPERTY_EXISTS'", "'RADIANS'", "'REAL'", "'RECORD'", "'REMOVE'", "'REPLACE'", + "'RESET'", "'RETURN'", "'RIGHT'", "'ROLLBACK'", "'RTRIM'", "'SAME'", + "'SCHEMA'", "'SECOND'", "'SELECT'", "'SESSION'", "'SESSION_USER'", "'SET'", + "'SIGNED'", "'SIN'", "'SINH'", "'SIZE'", "'SKIP'", "'SMALL'", "'SMALLINT'", + "'SQRT'", "'START'", "'STDDEV_POP'", "'STDDEV_SAMP'", "'STRING'", "'SUM'", + "'TAN'", "'TANH'", "'THEN'", "'TIME'", "'TIMESTAMP'", "'TRAILING'", "'TRIM'", + "'TYPED'", "'UBIGINT'", "'UINT'", "'UINT8'", "'UINT16'", "'UINT32'", + "'UINT64'", "'UINT128'", "'UINT256'", "'UNION'", "'UNSIGNED'", "'UPPER'", + "'USE'", "'USMALLINT'", "'VALUE'", "'VARBINARY'", "'VARCHAR'", "'VARIABLE'", + "'WHEN'", "'WHERE'", "'WITH'", "'XOR'", "'YEAR'", "'YIELD'", "'ZONED'", + "'ZONED_DATETIME'", "'ZONED_TIME'", "'ABSTRACT'", "'AGGREGATE'", "'AGGREGATES'", + "'ALTER'", "'CATALOG'", "'CLEAR'", "'CLONE'", "'CONSTRAINT'", "'CURRENT_ROLE'", + "'CURRENT_USER'", "'DATA'", "'DIRECTORY'", "'DRYRUN'", "'EXACT'", "'EXISTING'", + "'FUNCTION'", "'GQLSTATUS'", "'GRANT'", "'INSTANT'", "'INFINITY'", "'NUMBER'", + "'NUMERIC'", "'ON'", "'OPEN'", "'PARTITION'", "'PROCEDURE'", "'PRODUCT'", + "'PROJECT'", "'QUERY'", "'RECORDS'", "'REFERENCE'", "'RENAME'", "'REVOKE'", + "'SUBSTRING'", "'SYSTEM_USER'", "'TEMPORAL'", "'UNIQUE'", "'UNIT'", "'VALUES'", + "'ACYCLIC'", "'BINDING'", "'BINDINGS'", "'CONNECTING'", "'DESTINATION'", + "'DIFFERENT'", "'DIRECTED'", "'EDGE'", "'EDGES'", "'ELEMENT'", "'ELEMENTS'", + "'FIRST'", "'GRAPH'", "'GROUPS'", "'KEEP'", "'LABEL'", "'LABELED'", "'LABELS'", + "'LAST'", "'NFC'", "'NFD'", "'NFKC'", "'NFKD'", "'NO'", "'NODE'", "'NORMALIZED'", + "'ONLY'", "'ORDINALITY'", "'PROPERTY'", "'READ'", "'RELATIONSHIP'", "'RELATIONSHIPS'", + "'REPEATABLE'", "'SHORTEST'", "'SIMPLE'", "'SOURCE'", "'TABLE'", "'TEMP'", + "'TO'", "'TRAIL'", "'TRANSACTION'", "'TYPE'", "'UNDIRECTED'", "'VERTEX'", + "'WALK'", "'WITHOUT'", "'WRITE'", "'ZONE'", null, null, null, "'|+|'", + "']->'", "']~>'", "'||'", "'::'", "'$$'", "'..'", "'>='", "'<-'", "'<~'", + "'<-['", "'<~['", "'<->'", "'<-/'", "'<~/'", "'<='", "'-['", "'-/'", + "'<>'", "'->'", "']-'", "']~'", "'=>'", "'/-'", "'/->'", "'/~'", "'/~>'", + "'~['", "'~>'", "'~/'", "'&'", "'*'", "':'", "','", "'@'", "'$'", "'\"'", + "'='", "'!'", "'>'", "'`'", "'{'", "'['", "'('", "'<'", "'-'", "'%'", + "'.'", "'+'", "'?'", "'''", "'\\'", "'}'", "']'", "')'", "'/'", "'~'", + "'_'", "'|'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "IMPLIES", "BOOLEAN_LITERAL", "SINGLE_QUOTED_CHARACTER_SEQUENCE", + "DOUBLE_QUOTED_CHARACTER_SEQUENCE", "ACCENT_QUOTED_CHARACTER_SEQUENCE", + "NO_ESCAPE", "BYTE_STRING_LITERAL", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER", "UNSIGNED_HEXADECIMAL_INTEGER", "UNSIGNED_OCTAL_INTEGER", + "UNSIGNED_BINARY_INTEGER", "ABS", "ACOS", "ALL", "ALL_DIFFERENT", "AND", + "ANY", "ARRAY", "AS", "ASC", "ASCENDING", "ASIN", "AT", "ATAN", "AVG", + "BIG", "BIGINT", "BINARY", "BOOL", "BOOLEAN", "BOTH", "BTRIM", "BY", + "BYTE_LENGTH", "BYTES", "CALL", "CARDINALITY", "CASE", "CAST", "CEIL", + "CEILING", "CHAR", "CHAR_LENGTH", "CHARACTER_LENGTH", "CHARACTERISTICS", + "CLOSE", "COALESCE", "COLLECT_LIST", "COMMIT", "COPY", "COS", "COSH", + "COT", "COUNT", "CREATE", "CURRENT_DATE", "CURRENT_GRAPH", "CURRENT_PROPERTY_GRAPH", + "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "DATE", "DATETIME", + "DAY", "DEC", "DECIMAL", "DEGREES", "DELETE", "DESC", "DESCENDING", "DETACH", + "DISTINCT", "DOUBLE", "DROP", "DURATION", "DURATION_BETWEEN", "ELEMENT_ID", + "ELSE", "END", "EXCEPT", "EXISTS", "EXP", "FILTER", "FINISH", "FLOAT", + "FLOAT16", "FLOAT32", "FLOAT64", "FLOAT128", "FLOAT256", "FLOOR", "FOR", + "FROM", "GROUP", "HAVING", "HOME_GRAPH", "HOME_PROPERTY_GRAPH", "HOME_SCHEMA", + "HOUR", "IF", "IN", "INSERT", "INT", "INTEGER", "INT8", "INTEGER8", "INT16", + "INTEGER16", "INT32", "INTEGER32", "INT64", "INTEGER64", "INT128", "INTEGER128", + "INT256", "INTEGER256", "INTERSECT", "INTERVAL", "IS", "LEADING", "LEFT", + "LET", "LIKE", "LIMIT", "LIST", "LN", "LOCAL", "LOCAL_DATETIME", "LOCAL_TIME", + "LOCAL_TIMESTAMP", "LOG", "LOG10", "LOWER", "LTRIM", "MATCH", "MAX", + "MIN", "MINUTE", "MOD", "MONTH", "NEXT", "NODETACH", "NORMALIZE", "NOT", + "NOTHING", "NULL", "NULLS", "NULLIF", "OCTET_LENGTH", "OF", "OFFSET", + "OPTIONAL", "OR", "ORDER", "OTHERWISE", "PARAMETER", "PARAMETERS", "PATH", + "PATH_LENGTH", "PATHS", "PERCENTILE_CONT", "PERCENTILE_DISC", "POWER", + "PRECISION", "PROPERTY_EXISTS", "RADIANS", "REAL", "RECORD", "REMOVE", + "REPLACE", "RESET", "RETURN", "RIGHT", "ROLLBACK", "RTRIM", "SAME", "SCHEMA", + "SECOND", "SELECT", "SESSION", "SESSION_USER", "SET", "SIGNED", "SIN", + "SINH", "SIZE", "SKIP_RESERVED_WORD", "SMALL", "SMALLINT", "SQRT", "START", + "STDDEV_POP", "STDDEV_SAMP", "STRING", "SUM", "TAN", "TANH", "THEN", + "TIME", "TIMESTAMP", "TRAILING", "TRIM", "TYPED", "UBIGINT", "UINT", + "UINT8", "UINT16", "UINT32", "UINT64", "UINT128", "UINT256", "UNION", + "UNSIGNED", "UPPER", "USE", "USMALLINT", "VALUE", "VARBINARY", "VARCHAR", + "VARIABLE", "WHEN", "WHERE", "WITH", "XOR", "YEAR", "YIELD", "ZONED", + "ZONED_DATETIME", "ZONED_TIME", "ABSTRACT", "AGGREGATE", "AGGREGATES", + "ALTER", "CATALOG", "CLEAR", "CLONE", "CONSTRAINT", "CURRENT_ROLE", "CURRENT_USER", + "DATA", "DIRECTORY", "DRYRUN", "EXACT", "EXISTING", "FUNCTION", "GQLSTATUS", + "GRANT", "INSTANT", "INFINITY", "NUMBER", "NUMERIC", "ON", "OPEN", "PARTITION", + "PROCEDURE", "PRODUCT", "PROJECT", "QUERY", "RECORDS", "REFERENCE", "RENAME", + "REVOKE", "SUBSTRING", "SYSTEM_USER", "TEMPORAL", "UNIQUE", "UNIT", "VALUES", + "ACYCLIC", "BINDING", "BINDINGS", "CONNECTING", "DESTINATION", "DIFFERENT", + "DIRECTED", "EDGE", "EDGES", "ELEMENT", "ELEMENTS", "FIRST", "GRAPH", + "GROUPS", "KEEP", "LABEL", "LABELED", "LABELS", "LAST", "NFC", "NFD", + "NFKC", "NFKD", "NO", "NODE", "NORMALIZED", "ONLY", "ORDINALITY", "PROPERTY", + "READ", "RELATIONSHIP", "RELATIONSHIPS", "REPEATABLE", "SHORTEST", "SIMPLE", + "SOURCE", "TABLE", "TEMP", "TO", "TRAIL", "TRANSACTION", "TYPE", "UNDIRECTED", + "VERTEX", "WALK", "WITHOUT", "WRITE", "ZONE", "REGULAR_IDENTIFIER", "SUBSTITUTED_PARAMETER_REFERENCE", + "GENERAL_PARAMETER_REFERENCE", "MULTISET_ALTERNATION_OPERATOR", "BRACKET_RIGHT_ARROW", + "BRACKET_TILDE_RIGHT_ARROW", "CONCATENATION_OPERATOR", "DOUBLE_COLON", + "DOUBLE_DOLLAR_SIGN", "DOUBLE_PERIOD", "GREATER_THAN_OR_EQUALS_OPERATOR", + "LEFT_ARROW", "LEFT_ARROW_TILDE", "LEFT_ARROW_BRACKET", "LEFT_ARROW_TILDE_BRACKET", + "LEFT_MINUS_RIGHT", "LEFT_MINUS_SLASH", "LEFT_TILDE_SLASH", "LESS_THAN_OR_EQUALS_OPERATOR", + "MINUS_LEFT_BRACKET", "MINUS_SLASH", "NOT_EQUALS_OPERATOR", "RIGHT_ARROW", + "RIGHT_BRACKET_MINUS", "RIGHT_BRACKET_TILDE", "RIGHT_DOUBLE_ARROW", "SLASH_MINUS", + "SLASH_MINUS_RIGHT", "SLASH_TILDE", "SLASH_TILDE_RIGHT", "TILDE_LEFT_BRACKET", + "TILDE_RIGHT_ARROW", "TILDE_SLASH", "AMPERSAND", "ASTERISK", "COLON", + "COMMA", "COMMERCIAL_AT", "DOLLAR_SIGN", "DOUBLE_QUOTE", "EQUALS_OPERATOR", + "EXCLAMATION_MARK", "RIGHT_ANGLE_BRACKET", "GRAVE_ACCENT", "LEFT_BRACE", + "LEFT_BRACKET", "LEFT_PAREN", "LEFT_ANGLE_BRACKET", "MINUS_SIGN", "PERCENT", + "PERIOD", "PLUS_SIGN", "QUESTION_MARK", "QUOTE", "REVERSE_SOLIDUS", "RIGHT_BRACE", + "RIGHT_BRACKET", "RIGHT_PAREN", "SOLIDUS", "TILDE", "UNDERSCORE", "VERTICAL_BAR", + "SP", "WHITESPACE", "BRACKETED_COMMENT", "SIMPLE_COMMENT_SOLIDUS", "SIMPLE_COMMENT_MINUS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "java-escape"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public GQL_20240412Parser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @SuppressWarnings("CheckReturnValue") + public static class GqlProgramContext extends ParserRuleContext { + public ProgramActivityContext programActivity() { + return getRuleContext(ProgramActivityContext.class,0); + } + public TerminalNode EOF() { return getToken(GQL_20240412Parser.EOF, 0); } + public SessionCloseCommandContext sessionCloseCommand() { + return getRuleContext(SessionCloseCommandContext.class,0); + } + public GqlProgramContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_gqlProgram; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGqlProgram(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGqlProgram(this); + } + } + + public final GqlProgramContext gqlProgram() throws RecognitionException { + GqlProgramContext _localctx = new GqlProgramContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_gqlProgram); + int _la; + try { + setState(1157); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1148); + programActivity(); + setState(1150); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SESSION) { + { + setState(1149); + sessionCloseCommand(); + } + } + + setState(1152); + match(EOF); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1154); + sessionCloseCommand(); + setState(1155); + match(EOF); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProgramActivityContext extends ParserRuleContext { + public SessionActivityContext sessionActivity() { + return getRuleContext(SessionActivityContext.class,0); + } + public TransactionActivityContext transactionActivity() { + return getRuleContext(TransactionActivityContext.class,0); + } + public ProgramActivityContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_programActivity; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProgramActivity(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProgramActivity(this); + } + } + + public final ProgramActivityContext programActivity() throws RecognitionException { + ProgramActivityContext _localctx = new ProgramActivityContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_programActivity); + try { + setState(1161); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SESSION: + enterOuterAlt(_localctx, 1); + { + setState(1159); + sessionActivity(); + } + break; + case AT: + case CALL: + case COMMIT: + case CREATE: + case DELETE: + case DETACH: + case DROP: + case FILTER: + case FINISH: + case FOR: + case INSERT: + case LET: + case LIMIT: + case MATCH: + case NODETACH: + case OFFSET: + case OPTIONAL: + case ORDER: + case REMOVE: + case RETURN: + case ROLLBACK: + case SELECT: + case SET: + case SKIP_RESERVED_WORD: + case START: + case USE: + case VALUE: + case BINDING: + case GRAPH: + case PROPERTY: + case TABLE: + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1160); + transactionActivity(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionActivityContext extends ParserRuleContext { + public List sessionResetCommand() { + return getRuleContexts(SessionResetCommandContext.class); + } + public SessionResetCommandContext sessionResetCommand(int i) { + return getRuleContext(SessionResetCommandContext.class,i); + } + public List sessionSetCommand() { + return getRuleContexts(SessionSetCommandContext.class); + } + public SessionSetCommandContext sessionSetCommand(int i) { + return getRuleContext(SessionSetCommandContext.class,i); + } + public SessionActivityContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionActivity; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionActivity(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionActivity(this); + } + } + + public final SessionActivityContext sessionActivity() throws RecognitionException { + SessionActivityContext _localctx = new SessionActivityContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_sessionActivity); + try { + int _alt; + setState(1179); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1164); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(1163); + sessionResetCommand(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(1166); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,3,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1169); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(1168); + sessionSetCommand(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(1171); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,4,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + setState(1176); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,5,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1173); + sessionResetCommand(); + } + } + } + setState(1178); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,5,_ctx); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TransactionActivityContext extends ParserRuleContext { + public StartTransactionCommandContext startTransactionCommand() { + return getRuleContext(StartTransactionCommandContext.class,0); + } + public ProcedureSpecificationContext procedureSpecification() { + return getRuleContext(ProcedureSpecificationContext.class,0); + } + public EndTransactionCommandContext endTransactionCommand() { + return getRuleContext(EndTransactionCommandContext.class,0); + } + public TransactionActivityContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transactionActivity; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTransactionActivity(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTransactionActivity(this); + } + } + + public final TransactionActivityContext transactionActivity() throws RecognitionException { + TransactionActivityContext _localctx = new TransactionActivityContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_transactionActivity); + int _la; + try { + setState(1193); + _errHandler.sync(this); + switch (_input.LA(1)) { + case START: + enterOuterAlt(_localctx, 1); + { + setState(1181); + startTransactionCommand(); + setState(1186); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la - 31)) & ~0x3f) == 0 && ((1L << (_la - 31)) & 3461332977278001153L) != 0 || (((_la - 100)) & ~0x3f) == 0 && ((1L << (_la - 100)) & 6342202976706233345L) != 0 || (((_la - 177)) & ~0x3f) == 0 && ((1L << (_la - 177)) & 351843721159689L) != 0 || (((_la - 278)) & ~0x3f) == 0 && ((1L << (_la - 278)) & 34493958145L) != 0 || _la==LEFT_BRACE) { + { + setState(1182); + procedureSpecification(); + setState(1184); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMIT || _la==ROLLBACK) { + { + setState(1183); + endTransactionCommand(); + } + } + + } + } + + } + break; + case AT: + case CALL: + case CREATE: + case DELETE: + case DETACH: + case DROP: + case FILTER: + case FINISH: + case FOR: + case INSERT: + case LET: + case LIMIT: + case MATCH: + case NODETACH: + case OFFSET: + case OPTIONAL: + case ORDER: + case REMOVE: + case RETURN: + case SELECT: + case SET: + case SKIP_RESERVED_WORD: + case USE: + case VALUE: + case BINDING: + case GRAPH: + case PROPERTY: + case TABLE: + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1188); + procedureSpecification(); + setState(1190); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMIT || _la==ROLLBACK) { + { + setState(1189); + endTransactionCommand(); + } + } + + } + break; + case COMMIT: + case ROLLBACK: + enterOuterAlt(_localctx, 3); + { + setState(1192); + endTransactionCommand(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EndTransactionCommandContext extends ParserRuleContext { + public RollbackCommandContext rollbackCommand() { + return getRuleContext(RollbackCommandContext.class,0); + } + public CommitCommandContext commitCommand() { + return getRuleContext(CommitCommandContext.class,0); + } + public EndTransactionCommandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_endTransactionCommand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEndTransactionCommand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEndTransactionCommand(this); + } + } + + public final EndTransactionCommandContext endTransactionCommand() throws RecognitionException { + EndTransactionCommandContext _localctx = new EndTransactionCommandContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_endTransactionCommand); + try { + setState(1197); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ROLLBACK: + enterOuterAlt(_localctx, 1); + { + setState(1195); + rollbackCommand(); + } + break; + case COMMIT: + enterOuterAlt(_localctx, 2); + { + setState(1196); + commitCommand(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetCommandContext extends ParserRuleContext { + public TerminalNode SESSION() { return getToken(GQL_20240412Parser.SESSION, 0); } + public TerminalNode SET() { return getToken(GQL_20240412Parser.SET, 0); } + public SessionSetSchemaClauseContext sessionSetSchemaClause() { + return getRuleContext(SessionSetSchemaClauseContext.class,0); + } + public SessionSetGraphClauseContext sessionSetGraphClause() { + return getRuleContext(SessionSetGraphClauseContext.class,0); + } + public SessionSetTimeZoneClauseContext sessionSetTimeZoneClause() { + return getRuleContext(SessionSetTimeZoneClauseContext.class,0); + } + public SessionSetParameterClauseContext sessionSetParameterClause() { + return getRuleContext(SessionSetParameterClauseContext.class,0); + } + public SessionSetCommandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetCommand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetCommand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetCommand(this); + } + } + + public final SessionSetCommandContext sessionSetCommand() throws RecognitionException { + SessionSetCommandContext _localctx = new SessionSetCommandContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_sessionSetCommand); + try { + enterOuterAlt(_localctx, 1); + { + setState(1199); + match(SESSION); + setState(1200); + match(SET); + setState(1205); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) { + case 1: + { + setState(1201); + sessionSetSchemaClause(); + } + break; + case 2: + { + setState(1202); + sessionSetGraphClause(); + } + break; + case 3: + { + setState(1203); + sessionSetTimeZoneClause(); + } + break; + case 4: + { + setState(1204); + sessionSetParameterClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetSchemaClauseContext extends ParserRuleContext { + public TerminalNode SCHEMA() { return getToken(GQL_20240412Parser.SCHEMA, 0); } + public SchemaReferenceContext schemaReference() { + return getRuleContext(SchemaReferenceContext.class,0); + } + public SessionSetSchemaClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetSchemaClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetSchemaClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetSchemaClause(this); + } + } + + public final SessionSetSchemaClauseContext sessionSetSchemaClause() throws RecognitionException { + SessionSetSchemaClauseContext _localctx = new SessionSetSchemaClauseContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_sessionSetSchemaClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1207); + match(SCHEMA); + setState(1208); + schemaReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetGraphClauseContext extends ParserRuleContext { + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public GraphExpressionContext graphExpression() { + return getRuleContext(GraphExpressionContext.class,0); + } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public SessionSetGraphClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetGraphClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetGraphClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetGraphClause(this); + } + } + + public final SessionSetGraphClauseContext sessionSetGraphClause() throws RecognitionException { + SessionSetGraphClauseContext _localctx = new SessionSetGraphClauseContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_sessionSetGraphClause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1211); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1210); + match(PROPERTY); + } + } + + setState(1213); + match(GRAPH); + setState(1214); + graphExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetTimeZoneClauseContext extends ParserRuleContext { + public TerminalNode TIME() { return getToken(GQL_20240412Parser.TIME, 0); } + public TerminalNode ZONE() { return getToken(GQL_20240412Parser.ZONE, 0); } + public SetTimeZoneValueContext setTimeZoneValue() { + return getRuleContext(SetTimeZoneValueContext.class,0); + } + public SessionSetTimeZoneClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetTimeZoneClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetTimeZoneClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetTimeZoneClause(this); + } + } + + public final SessionSetTimeZoneClauseContext sessionSetTimeZoneClause() throws RecognitionException { + SessionSetTimeZoneClauseContext _localctx = new SessionSetTimeZoneClauseContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_sessionSetTimeZoneClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1216); + match(TIME); + setState(1217); + match(ZONE); + setState(1218); + setTimeZoneValue(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetTimeZoneValueContext extends ParserRuleContext { + public TimeZoneStringContext timeZoneString() { + return getRuleContext(TimeZoneStringContext.class,0); + } + public SetTimeZoneValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setTimeZoneValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetTimeZoneValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetTimeZoneValue(this); + } + } + + public final SetTimeZoneValueContext setTimeZoneValue() throws RecognitionException { + SetTimeZoneValueContext _localctx = new SetTimeZoneValueContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_setTimeZoneValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(1220); + timeZoneString(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetParameterClauseContext extends ParserRuleContext { + public SessionSetGraphParameterClauseContext sessionSetGraphParameterClause() { + return getRuleContext(SessionSetGraphParameterClauseContext.class,0); + } + public SessionSetBindingTableParameterClauseContext sessionSetBindingTableParameterClause() { + return getRuleContext(SessionSetBindingTableParameterClauseContext.class,0); + } + public SessionSetValueParameterClauseContext sessionSetValueParameterClause() { + return getRuleContext(SessionSetValueParameterClauseContext.class,0); + } + public SessionSetParameterClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetParameterClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetParameterClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetParameterClause(this); + } + } + + public final SessionSetParameterClauseContext sessionSetParameterClause() throws RecognitionException { + SessionSetParameterClauseContext _localctx = new SessionSetParameterClauseContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_sessionSetParameterClause); + try { + setState(1225); + _errHandler.sync(this); + switch (_input.LA(1)) { + case GRAPH: + case PROPERTY: + enterOuterAlt(_localctx, 1); + { + setState(1222); + sessionSetGraphParameterClause(); + } + break; + case BINDING: + case TABLE: + enterOuterAlt(_localctx, 2); + { + setState(1223); + sessionSetBindingTableParameterClause(); + } + break; + case VALUE: + enterOuterAlt(_localctx, 3); + { + setState(1224); + sessionSetValueParameterClause(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetGraphParameterClauseContext extends ParserRuleContext { + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public SessionSetParameterNameContext sessionSetParameterName() { + return getRuleContext(SessionSetParameterNameContext.class,0); + } + public OptTypedGraphInitializerContext optTypedGraphInitializer() { + return getRuleContext(OptTypedGraphInitializerContext.class,0); + } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public SessionSetGraphParameterClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetGraphParameterClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetGraphParameterClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetGraphParameterClause(this); + } + } + + public final SessionSetGraphParameterClauseContext sessionSetGraphParameterClause() throws RecognitionException { + SessionSetGraphParameterClauseContext _localctx = new SessionSetGraphParameterClauseContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_sessionSetGraphParameterClause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1228); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1227); + match(PROPERTY); + } + } + + setState(1230); + match(GRAPH); + setState(1231); + sessionSetParameterName(); + setState(1232); + optTypedGraphInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetBindingTableParameterClauseContext extends ParserRuleContext { + public TerminalNode TABLE() { return getToken(GQL_20240412Parser.TABLE, 0); } + public SessionSetParameterNameContext sessionSetParameterName() { + return getRuleContext(SessionSetParameterNameContext.class,0); + } + public OptTypedBindingTableInitializerContext optTypedBindingTableInitializer() { + return getRuleContext(OptTypedBindingTableInitializerContext.class,0); + } + public TerminalNode BINDING() { return getToken(GQL_20240412Parser.BINDING, 0); } + public SessionSetBindingTableParameterClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetBindingTableParameterClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetBindingTableParameterClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetBindingTableParameterClause(this); + } + } + + public final SessionSetBindingTableParameterClauseContext sessionSetBindingTableParameterClause() throws RecognitionException { + SessionSetBindingTableParameterClauseContext _localctx = new SessionSetBindingTableParameterClauseContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_sessionSetBindingTableParameterClause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1235); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BINDING) { + { + setState(1234); + match(BINDING); + } + } + + setState(1237); + match(TABLE); + setState(1238); + sessionSetParameterName(); + setState(1239); + optTypedBindingTableInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetValueParameterClauseContext extends ParserRuleContext { + public TerminalNode VALUE() { return getToken(GQL_20240412Parser.VALUE, 0); } + public SessionSetParameterNameContext sessionSetParameterName() { + return getRuleContext(SessionSetParameterNameContext.class,0); + } + public OptTypedValueInitializerContext optTypedValueInitializer() { + return getRuleContext(OptTypedValueInitializerContext.class,0); + } + public SessionSetValueParameterClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetValueParameterClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetValueParameterClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetValueParameterClause(this); + } + } + + public final SessionSetValueParameterClauseContext sessionSetValueParameterClause() throws RecognitionException { + SessionSetValueParameterClauseContext _localctx = new SessionSetValueParameterClauseContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_sessionSetValueParameterClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1241); + match(VALUE); + setState(1242); + sessionSetParameterName(); + setState(1243); + optTypedValueInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionSetParameterNameContext extends ParserRuleContext { + public SessionParameterSpecificationContext sessionParameterSpecification() { + return getRuleContext(SessionParameterSpecificationContext.class,0); + } + public TerminalNode IF() { return getToken(GQL_20240412Parser.IF, 0); } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(GQL_20240412Parser.EXISTS, 0); } + public SessionSetParameterNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionSetParameterName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionSetParameterName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionSetParameterName(this); + } + } + + public final SessionSetParameterNameContext sessionSetParameterName() throws RecognitionException { + SessionSetParameterNameContext _localctx = new SessionSetParameterNameContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_sessionSetParameterName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1248); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1245); + match(IF); + setState(1246); + match(NOT); + setState(1247); + match(EXISTS); + } + } + + setState(1250); + sessionParameterSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionResetCommandContext extends ParserRuleContext { + public TerminalNode SESSION() { return getToken(GQL_20240412Parser.SESSION, 0); } + public TerminalNode RESET() { return getToken(GQL_20240412Parser.RESET, 0); } + public SessionResetArgumentsContext sessionResetArguments() { + return getRuleContext(SessionResetArgumentsContext.class,0); + } + public SessionResetCommandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionResetCommand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionResetCommand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionResetCommand(this); + } + } + + public final SessionResetCommandContext sessionResetCommand() throws RecognitionException { + SessionResetCommandContext _localctx = new SessionResetCommandContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_sessionResetCommand); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1252); + match(SESSION); + setState(1253); + match(RESET); + setState(1255); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==CHARACTERISTICS || (((_la - 164)) & ~0x3f) == 0 && ((1L << (_la - 164)) & 8796095119363L) != 0 || (((_la - 289)) & ~0x3f) == 0 && ((1L << (_la - 289)) & 274877972481L) != 0) { + { + setState(1254); + sessionResetArguments(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionResetArgumentsContext extends ParserRuleContext { + public TerminalNode PARAMETERS() { return getToken(GQL_20240412Parser.PARAMETERS, 0); } + public TerminalNode CHARACTERISTICS() { return getToken(GQL_20240412Parser.CHARACTERISTICS, 0); } + public TerminalNode ALL() { return getToken(GQL_20240412Parser.ALL, 0); } + public TerminalNode SCHEMA() { return getToken(GQL_20240412Parser.SCHEMA, 0); } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public TerminalNode TIME() { return getToken(GQL_20240412Parser.TIME, 0); } + public TerminalNode ZONE() { return getToken(GQL_20240412Parser.ZONE, 0); } + public SessionParameterSpecificationContext sessionParameterSpecification() { + return getRuleContext(SessionParameterSpecificationContext.class,0); + } + public TerminalNode PARAMETER() { return getToken(GQL_20240412Parser.PARAMETER, 0); } + public SessionResetArgumentsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionResetArguments; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionResetArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionResetArguments(this); + } + } + + public final SessionResetArgumentsContext sessionResetArguments() throws RecognitionException { + SessionResetArgumentsContext _localctx = new SessionResetArgumentsContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_sessionResetArguments); + int _la; + try { + setState(1272); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ALL: + case CHARACTERISTICS: + case PARAMETERS: + enterOuterAlt(_localctx, 1); + { + setState(1258); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL) { + { + setState(1257); + match(ALL); + } + } + + setState(1260); + _la = _input.LA(1); + if ( !(_la==CHARACTERISTICS || _la==PARAMETERS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case SCHEMA: + enterOuterAlt(_localctx, 2); + { + setState(1261); + match(SCHEMA); + } + break; + case GRAPH: + case PROPERTY: + enterOuterAlt(_localctx, 3); + { + setState(1263); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1262); + match(PROPERTY); + } + } + + setState(1265); + match(GRAPH); + } + break; + case TIME: + enterOuterAlt(_localctx, 4); + { + setState(1266); + match(TIME); + setState(1267); + match(ZONE); + } + break; + case PARAMETER: + case GENERAL_PARAMETER_REFERENCE: + enterOuterAlt(_localctx, 5); + { + setState(1269); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PARAMETER) { + { + setState(1268); + match(PARAMETER); + } + } + + setState(1271); + sessionParameterSpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionCloseCommandContext extends ParserRuleContext { + public TerminalNode SESSION() { return getToken(GQL_20240412Parser.SESSION, 0); } + public TerminalNode CLOSE() { return getToken(GQL_20240412Parser.CLOSE, 0); } + public SessionCloseCommandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionCloseCommand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionCloseCommand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionCloseCommand(this); + } + } + + public final SessionCloseCommandContext sessionCloseCommand() throws RecognitionException { + SessionCloseCommandContext _localctx = new SessionCloseCommandContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_sessionCloseCommand); + try { + enterOuterAlt(_localctx, 1); + { + setState(1274); + match(SESSION); + setState(1275); + match(CLOSE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SessionParameterSpecificationContext extends ParserRuleContext { + public TerminalNode GENERAL_PARAMETER_REFERENCE() { return getToken(GQL_20240412Parser.GENERAL_PARAMETER_REFERENCE, 0); } + public SessionParameterSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sessionParameterSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSessionParameterSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSessionParameterSpecification(this); + } + } + + public final SessionParameterSpecificationContext sessionParameterSpecification() throws RecognitionException { + SessionParameterSpecificationContext _localctx = new SessionParameterSpecificationContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_sessionParameterSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(1277); + match(GENERAL_PARAMETER_REFERENCE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StartTransactionCommandContext extends ParserRuleContext { + public TerminalNode START() { return getToken(GQL_20240412Parser.START, 0); } + public TerminalNode TRANSACTION() { return getToken(GQL_20240412Parser.TRANSACTION, 0); } + public TransactionCharacteristicsContext transactionCharacteristics() { + return getRuleContext(TransactionCharacteristicsContext.class,0); + } + public StartTransactionCommandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_startTransactionCommand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterStartTransactionCommand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitStartTransactionCommand(this); + } + } + + public final StartTransactionCommandContext startTransactionCommand() throws RecognitionException { + StartTransactionCommandContext _localctx = new StartTransactionCommandContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_startTransactionCommand); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1279); + match(START); + setState(1280); + match(TRANSACTION); + setState(1282); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==READ) { + { + setState(1281); + transactionCharacteristics(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TransactionCharacteristicsContext extends ParserRuleContext { + public List transactionMode() { + return getRuleContexts(TransactionModeContext.class); + } + public TransactionModeContext transactionMode(int i) { + return getRuleContext(TransactionModeContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public TransactionCharacteristicsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transactionCharacteristics; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTransactionCharacteristics(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTransactionCharacteristics(this); + } + } + + public final TransactionCharacteristicsContext transactionCharacteristics() throws RecognitionException { + TransactionCharacteristicsContext _localctx = new TransactionCharacteristicsContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_transactionCharacteristics); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1284); + transactionMode(); + setState(1289); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1285); + match(COMMA); + setState(1286); + transactionMode(); + } + } + setState(1291); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TransactionModeContext extends ParserRuleContext { + public TransactionAccessModeContext transactionAccessMode() { + return getRuleContext(TransactionAccessModeContext.class,0); + } + public TransactionModeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transactionMode; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTransactionMode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTransactionMode(this); + } + } + + public final TransactionModeContext transactionMode() throws RecognitionException { + TransactionModeContext _localctx = new TransactionModeContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_transactionMode); + try { + enterOuterAlt(_localctx, 1); + { + setState(1292); + transactionAccessMode(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TransactionAccessModeContext extends ParserRuleContext { + public TerminalNode READ() { return getToken(GQL_20240412Parser.READ, 0); } + public TerminalNode ONLY() { return getToken(GQL_20240412Parser.ONLY, 0); } + public TerminalNode WRITE() { return getToken(GQL_20240412Parser.WRITE, 0); } + public TransactionAccessModeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_transactionAccessMode; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTransactionAccessMode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTransactionAccessMode(this); + } + } + + public final TransactionAccessModeContext transactionAccessMode() throws RecognitionException { + TransactionAccessModeContext _localctx = new TransactionAccessModeContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_transactionAccessMode); + try { + setState(1298); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1294); + match(READ); + setState(1295); + match(ONLY); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1296); + match(READ); + setState(1297); + match(WRITE); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RollbackCommandContext extends ParserRuleContext { + public TerminalNode ROLLBACK() { return getToken(GQL_20240412Parser.ROLLBACK, 0); } + public RollbackCommandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_rollbackCommand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRollbackCommand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRollbackCommand(this); + } + } + + public final RollbackCommandContext rollbackCommand() throws RecognitionException { + RollbackCommandContext _localctx = new RollbackCommandContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_rollbackCommand); + try { + enterOuterAlt(_localctx, 1); + { + setState(1300); + match(ROLLBACK); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CommitCommandContext extends ParserRuleContext { + public TerminalNode COMMIT() { return getToken(GQL_20240412Parser.COMMIT, 0); } + public CommitCommandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_commitCommand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCommitCommand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCommitCommand(this); + } + } + + public final CommitCommandContext commitCommand() throws RecognitionException { + CommitCommandContext _localctx = new CommitCommandContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_commitCommand); + try { + enterOuterAlt(_localctx, 1); + { + setState(1302); + match(COMMIT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NestedProcedureSpecificationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public ProcedureSpecificationContext procedureSpecification() { + return getRuleContext(ProcedureSpecificationContext.class,0); + } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public NestedProcedureSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nestedProcedureSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNestedProcedureSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNestedProcedureSpecification(this); + } + } + + public final NestedProcedureSpecificationContext nestedProcedureSpecification() throws RecognitionException { + NestedProcedureSpecificationContext _localctx = new NestedProcedureSpecificationContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_nestedProcedureSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(1304); + match(LEFT_BRACE); + setState(1305); + procedureSpecification(); + setState(1306); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProcedureSpecificationContext extends ParserRuleContext { + public ProcedureBodyContext procedureBody() { + return getRuleContext(ProcedureBodyContext.class,0); + } + public ProcedureSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_procedureSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProcedureSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProcedureSpecification(this); + } + } + + public final ProcedureSpecificationContext procedureSpecification() throws RecognitionException { + ProcedureSpecificationContext _localctx = new ProcedureSpecificationContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_procedureSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(1308); + procedureBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NestedDataModifyingProcedureSpecificationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public ProcedureBodyContext procedureBody() { + return getRuleContext(ProcedureBodyContext.class,0); + } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public NestedDataModifyingProcedureSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nestedDataModifyingProcedureSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNestedDataModifyingProcedureSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNestedDataModifyingProcedureSpecification(this); + } + } + + public final NestedDataModifyingProcedureSpecificationContext nestedDataModifyingProcedureSpecification() throws RecognitionException { + NestedDataModifyingProcedureSpecificationContext _localctx = new NestedDataModifyingProcedureSpecificationContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_nestedDataModifyingProcedureSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(1310); + match(LEFT_BRACE); + setState(1311); + procedureBody(); + setState(1312); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NestedQuerySpecificationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public ProcedureBodyContext procedureBody() { + return getRuleContext(ProcedureBodyContext.class,0); + } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public NestedQuerySpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nestedQuerySpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNestedQuerySpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNestedQuerySpecification(this); + } + } + + public final NestedQuerySpecificationContext nestedQuerySpecification() throws RecognitionException { + NestedQuerySpecificationContext _localctx = new NestedQuerySpecificationContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_nestedQuerySpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(1314); + match(LEFT_BRACE); + setState(1315); + procedureBody(); + setState(1316); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProcedureBodyContext extends ParserRuleContext { + public StatementBlockContext statementBlock() { + return getRuleContext(StatementBlockContext.class,0); + } + public AtSchemaClauseContext atSchemaClause() { + return getRuleContext(AtSchemaClauseContext.class,0); + } + public BindingVariableDefinitionBlockContext bindingVariableDefinitionBlock() { + return getRuleContext(BindingVariableDefinitionBlockContext.class,0); + } + public ProcedureBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_procedureBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProcedureBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProcedureBody(this); + } + } + + public final ProcedureBodyContext procedureBody() throws RecognitionException { + ProcedureBodyContext _localctx = new ProcedureBodyContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_procedureBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1319); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AT) { + { + setState(1318); + atSchemaClause(); + } + } + + setState(1322); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VALUE || _la==BINDING || (((_la - 289)) & ~0x3f) == 0 && ((1L << (_la - 289)) & 16842753L) != 0) { + { + setState(1321); + bindingVariableDefinitionBlock(); + } + } + + setState(1324); + statementBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingVariableDefinitionBlockContext extends ParserRuleContext { + public List bindingVariableDefinition() { + return getRuleContexts(BindingVariableDefinitionContext.class); + } + public BindingVariableDefinitionContext bindingVariableDefinition(int i) { + return getRuleContext(BindingVariableDefinitionContext.class,i); + } + public BindingVariableDefinitionBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingVariableDefinitionBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingVariableDefinitionBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingVariableDefinitionBlock(this); + } + } + + public final BindingVariableDefinitionBlockContext bindingVariableDefinitionBlock() throws RecognitionException { + BindingVariableDefinitionBlockContext _localctx = new BindingVariableDefinitionBlockContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_bindingVariableDefinitionBlock); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1327); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1326); + bindingVariableDefinition(); + } + } + setState(1329); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==VALUE || _la==BINDING || (((_la - 289)) & ~0x3f) == 0 && ((1L << (_la - 289)) & 16842753L) != 0 ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingVariableDefinitionContext extends ParserRuleContext { + public GraphVariableDefinitionContext graphVariableDefinition() { + return getRuleContext(GraphVariableDefinitionContext.class,0); + } + public BindingTableVariableDefinitionContext bindingTableVariableDefinition() { + return getRuleContext(BindingTableVariableDefinitionContext.class,0); + } + public ValueVariableDefinitionContext valueVariableDefinition() { + return getRuleContext(ValueVariableDefinitionContext.class,0); + } + public BindingVariableDefinitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingVariableDefinition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingVariableDefinition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingVariableDefinition(this); + } + } + + public final BindingVariableDefinitionContext bindingVariableDefinition() throws RecognitionException { + BindingVariableDefinitionContext _localctx = new BindingVariableDefinitionContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_bindingVariableDefinition); + try { + setState(1334); + _errHandler.sync(this); + switch (_input.LA(1)) { + case GRAPH: + case PROPERTY: + enterOuterAlt(_localctx, 1); + { + setState(1331); + graphVariableDefinition(); + } + break; + case BINDING: + case TABLE: + enterOuterAlt(_localctx, 2); + { + setState(1332); + bindingTableVariableDefinition(); + } + break; + case VALUE: + enterOuterAlt(_localctx, 3); + { + setState(1333); + valueVariableDefinition(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementBlockContext extends ParserRuleContext { + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public List nextStatement() { + return getRuleContexts(NextStatementContext.class); + } + public NextStatementContext nextStatement(int i) { + return getRuleContext(NextStatementContext.class,i); + } + public StatementBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statementBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterStatementBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitStatementBlock(this); + } + } + + public final StatementBlockContext statementBlock() throws RecognitionException { + StatementBlockContext _localctx = new StatementBlockContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_statementBlock); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1336); + statement(); + setState(1340); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==NEXT) { + { + { + setState(1337); + nextStatement(); + } + } + setState(1342); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementContext extends ParserRuleContext { + public LinearCatalogModifyingStatementContext linearCatalogModifyingStatement() { + return getRuleContext(LinearCatalogModifyingStatementContext.class,0); + } + public LinearDataModifyingStatementContext linearDataModifyingStatement() { + return getRuleContext(LinearDataModifyingStatementContext.class,0); + } + public CompositeQueryStatementContext compositeQueryStatement() { + return getRuleContext(CompositeQueryStatementContext.class,0); + } + public StatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitStatement(this); + } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_statement); + try { + setState(1346); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1343); + linearCatalogModifyingStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1344); + linearDataModifyingStatement(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1345); + compositeQueryStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NextStatementContext extends ParserRuleContext { + public TerminalNode NEXT() { return getToken(GQL_20240412Parser.NEXT, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public YieldClauseContext yieldClause() { + return getRuleContext(YieldClauseContext.class,0); + } + public NextStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nextStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNextStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNextStatement(this); + } + } + + public final NextStatementContext nextStatement() throws RecognitionException { + NextStatementContext _localctx = new NextStatementContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_nextStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1348); + match(NEXT); + setState(1350); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==YIELD) { + { + setState(1349); + yieldClause(); + } + } + + setState(1352); + statement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphVariableDefinitionContext extends ParserRuleContext { + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public OptTypedGraphInitializerContext optTypedGraphInitializer() { + return getRuleContext(OptTypedGraphInitializerContext.class,0); + } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public GraphVariableDefinitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphVariableDefinition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphVariableDefinition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphVariableDefinition(this); + } + } + + public final GraphVariableDefinitionContext graphVariableDefinition() throws RecognitionException { + GraphVariableDefinitionContext _localctx = new GraphVariableDefinitionContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_graphVariableDefinition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1355); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1354); + match(PROPERTY); + } + } + + setState(1357); + match(GRAPH); + setState(1358); + bindingVariable(); + setState(1359); + optTypedGraphInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OptTypedGraphInitializerContext extends ParserRuleContext { + public GraphInitializerContext graphInitializer() { + return getRuleContext(GraphInitializerContext.class,0); + } + public GraphReferenceValueTypeContext graphReferenceValueType() { + return getRuleContext(GraphReferenceValueTypeContext.class,0); + } + public TypedContext typed() { + return getRuleContext(TypedContext.class,0); + } + public OptTypedGraphInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_optTypedGraphInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOptTypedGraphInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOptTypedGraphInitializer(this); + } + } + + public final OptTypedGraphInitializerContext optTypedGraphInitializer() throws RecognitionException { + OptTypedGraphInitializerContext _localctx = new OptTypedGraphInitializerContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_optTypedGraphInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1365); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ANY || _la==TYPED || (((_la - 289)) & ~0x3f) == 0 && ((1L << (_la - 289)) & 8796093087745L) != 0) { + { + setState(1362); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || _la==DOUBLE_COLON) { + { + setState(1361); + typed(); + } + } + + setState(1364); + graphReferenceValueType(); + } + } + + setState(1367); + graphInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphInitializerContext extends ParserRuleContext { + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public GraphExpressionContext graphExpression() { + return getRuleContext(GraphExpressionContext.class,0); + } + public GraphInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphInitializer(this); + } + } + + public final GraphInitializerContext graphInitializer() throws RecognitionException { + GraphInitializerContext _localctx = new GraphInitializerContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_graphInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1369); + match(EQUALS_OPERATOR); + setState(1370); + graphExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingTableVariableDefinitionContext extends ParserRuleContext { + public TerminalNode TABLE() { return getToken(GQL_20240412Parser.TABLE, 0); } + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public OptTypedBindingTableInitializerContext optTypedBindingTableInitializer() { + return getRuleContext(OptTypedBindingTableInitializerContext.class,0); + } + public TerminalNode BINDING() { return getToken(GQL_20240412Parser.BINDING, 0); } + public BindingTableVariableDefinitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingTableVariableDefinition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingTableVariableDefinition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingTableVariableDefinition(this); + } + } + + public final BindingTableVariableDefinitionContext bindingTableVariableDefinition() throws RecognitionException { + BindingTableVariableDefinitionContext _localctx = new BindingTableVariableDefinitionContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_bindingTableVariableDefinition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1373); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BINDING) { + { + setState(1372); + match(BINDING); + } + } + + setState(1375); + match(TABLE); + setState(1376); + bindingVariable(); + setState(1377); + optTypedBindingTableInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OptTypedBindingTableInitializerContext extends ParserRuleContext { + public BindingTableInitializerContext bindingTableInitializer() { + return getRuleContext(BindingTableInitializerContext.class,0); + } + public BindingTableReferenceValueTypeContext bindingTableReferenceValueType() { + return getRuleContext(BindingTableReferenceValueTypeContext.class,0); + } + public TypedContext typed() { + return getRuleContext(TypedContext.class,0); + } + public OptTypedBindingTableInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_optTypedBindingTableInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOptTypedBindingTableInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOptTypedBindingTableInitializer(this); + } + } + + public final OptTypedBindingTableInitializerContext optTypedBindingTableInitializer() throws RecognitionException { + OptTypedBindingTableInitializerContext _localctx = new OptTypedBindingTableInitializerContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_optTypedBindingTableInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1383); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || (((_la - 278)) & ~0x3f) == 0 && ((1L << (_la - 278)) & 18014432869220353L) != 0) { + { + setState(1380); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || _la==DOUBLE_COLON) { + { + setState(1379); + typed(); + } + } + + setState(1382); + bindingTableReferenceValueType(); + } + } + + setState(1385); + bindingTableInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingTableInitializerContext extends ParserRuleContext { + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public BindingTableExpressionContext bindingTableExpression() { + return getRuleContext(BindingTableExpressionContext.class,0); + } + public BindingTableInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingTableInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingTableInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingTableInitializer(this); + } + } + + public final BindingTableInitializerContext bindingTableInitializer() throws RecognitionException { + BindingTableInitializerContext _localctx = new BindingTableInitializerContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_bindingTableInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1387); + match(EQUALS_OPERATOR); + setState(1388); + bindingTableExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueVariableDefinitionContext extends ParserRuleContext { + public TerminalNode VALUE() { return getToken(GQL_20240412Parser.VALUE, 0); } + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public OptTypedValueInitializerContext optTypedValueInitializer() { + return getRuleContext(OptTypedValueInitializerContext.class,0); + } + public ValueVariableDefinitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueVariableDefinition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterValueVariableDefinition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitValueVariableDefinition(this); + } + } + + public final ValueVariableDefinitionContext valueVariableDefinition() throws RecognitionException { + ValueVariableDefinitionContext _localctx = new ValueVariableDefinitionContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_valueVariableDefinition); + try { + enterOuterAlt(_localctx, 1); + { + setState(1390); + match(VALUE); + setState(1391); + bindingVariable(); + setState(1392); + optTypedValueInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OptTypedValueInitializerContext extends ParserRuleContext { + public ValueInitializerContext valueInitializer() { + return getRuleContext(ValueInitializerContext.class,0); + } + public ValueTypeContext valueType() { + return getRuleContext(ValueTypeContext.class,0); + } + public TypedContext typed() { + return getRuleContext(TypedContext.class,0); + } + public OptTypedValueInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_optTypedValueInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOptTypedValueInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOptTypedValueInitializer(this); + } + } + + public final OptTypedValueInitializerContext optTypedValueInitializer() throws RecognitionException { + OptTypedValueInitializerContext _localctx = new OptTypedValueInitializerContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_optTypedValueInitializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1398); + _errHandler.sync(this); + _la = _input.LA(1); + if (((_la) & ~0x3f) == 0 && ((1L << _la) & 1135228676472832L) != 0 || (((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & -9187345434035607527L) != 0 || (((_la - 135)) & ~0x3f) == 0 && ((1L << (_la - 135)) & 6989589922362163201L) != 0 || (((_la - 202)) & ~0x3f) == 0 && ((1L << (_la - 202)) & 8645246561L) != 0 || (((_la - 278)) & ~0x3f) == 0 && ((1L << (_la - 278)) & 18021030618466401L) != 0 || _la==LEFT_BRACE || _la==LEFT_PAREN) { + { + setState(1395); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || _la==DOUBLE_COLON) { + { + setState(1394); + typed(); + } + } + + setState(1397); + valueType(0); + } + } + + setState(1400); + valueInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueInitializerContext extends ParserRuleContext { + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ValueInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterValueInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitValueInitializer(this); + } + } + + public final ValueInitializerContext valueInitializer() throws RecognitionException { + ValueInitializerContext _localctx = new ValueInitializerContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_valueInitializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(1402); + match(EQUALS_OPERATOR); + setState(1403); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphExpressionContext extends ParserRuleContext { + public ObjectExpressionPrimaryContext objectExpressionPrimary() { + return getRuleContext(ObjectExpressionPrimaryContext.class,0); + } + public GraphReferenceContext graphReference() { + return getRuleContext(GraphReferenceContext.class,0); + } + public ObjectNameOrBindingVariableContext objectNameOrBindingVariable() { + return getRuleContext(ObjectNameOrBindingVariableContext.class,0); + } + public CurrentGraphContext currentGraph() { + return getRuleContext(CurrentGraphContext.class,0); + } + public GraphExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphExpression(this); + } + } + + public final GraphExpressionContext graphExpression() throws RecognitionException { + GraphExpressionContext _localctx = new GraphExpressionContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_graphExpression); + try { + setState(1409); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1405); + objectExpressionPrimary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1406); + graphReference(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1407); + objectNameOrBindingVariable(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1408); + currentGraph(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CurrentGraphContext extends ParserRuleContext { + public TerminalNode CURRENT_PROPERTY_GRAPH() { return getToken(GQL_20240412Parser.CURRENT_PROPERTY_GRAPH, 0); } + public TerminalNode CURRENT_GRAPH() { return getToken(GQL_20240412Parser.CURRENT_GRAPH, 0); } + public CurrentGraphContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_currentGraph; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCurrentGraph(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCurrentGraph(this); + } + } + + public final CurrentGraphContext currentGraph() throws RecognitionException { + CurrentGraphContext _localctx = new CurrentGraphContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_currentGraph); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1411); + _la = _input.LA(1); + if ( !(_la==CURRENT_GRAPH || _la==CURRENT_PROPERTY_GRAPH) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingTableExpressionContext extends ParserRuleContext { + public NestedBindingTableQuerySpecificationContext nestedBindingTableQuerySpecification() { + return getRuleContext(NestedBindingTableQuerySpecificationContext.class,0); + } + public ObjectExpressionPrimaryContext objectExpressionPrimary() { + return getRuleContext(ObjectExpressionPrimaryContext.class,0); + } + public BindingTableReferenceContext bindingTableReference() { + return getRuleContext(BindingTableReferenceContext.class,0); + } + public ObjectNameOrBindingVariableContext objectNameOrBindingVariable() { + return getRuleContext(ObjectNameOrBindingVariableContext.class,0); + } + public BindingTableExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingTableExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingTableExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingTableExpression(this); + } + } + + public final BindingTableExpressionContext bindingTableExpression() throws RecognitionException { + BindingTableExpressionContext _localctx = new BindingTableExpressionContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_bindingTableExpression); + try { + setState(1417); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1413); + nestedBindingTableQuerySpecification(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1414); + objectExpressionPrimary(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1415); + bindingTableReference(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1416); + objectNameOrBindingVariable(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NestedBindingTableQuerySpecificationContext extends ParserRuleContext { + public NestedQuerySpecificationContext nestedQuerySpecification() { + return getRuleContext(NestedQuerySpecificationContext.class,0); + } + public NestedBindingTableQuerySpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nestedBindingTableQuerySpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNestedBindingTableQuerySpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNestedBindingTableQuerySpecification(this); + } + } + + public final NestedBindingTableQuerySpecificationContext nestedBindingTableQuerySpecification() throws RecognitionException { + NestedBindingTableQuerySpecificationContext _localctx = new NestedBindingTableQuerySpecificationContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_nestedBindingTableQuerySpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(1419); + nestedQuerySpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ObjectExpressionPrimaryContext extends ParserRuleContext { + public TerminalNode VARIABLE() { return getToken(GQL_20240412Parser.VARIABLE, 0); } + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public ParenthesizedValueExpressionContext parenthesizedValueExpression() { + return getRuleContext(ParenthesizedValueExpressionContext.class,0); + } + public NonParenthesizedValueExpressionPrimarySpecialCaseContext nonParenthesizedValueExpressionPrimarySpecialCase() { + return getRuleContext(NonParenthesizedValueExpressionPrimarySpecialCaseContext.class,0); + } + public ObjectExpressionPrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_objectExpressionPrimary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterObjectExpressionPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitObjectExpressionPrimary(this); + } + } + + public final ObjectExpressionPrimaryContext objectExpressionPrimary() throws RecognitionException { + ObjectExpressionPrimaryContext _localctx = new ObjectExpressionPrimaryContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_objectExpressionPrimary); + try { + setState(1425); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1421); + match(VARIABLE); + setState(1422); + valueExpressionPrimary(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1423); + parenthesizedValueExpression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1424); + nonParenthesizedValueExpressionPrimarySpecialCase(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LinearCatalogModifyingStatementContext extends ParserRuleContext { + public List simpleCatalogModifyingStatement() { + return getRuleContexts(SimpleCatalogModifyingStatementContext.class); + } + public SimpleCatalogModifyingStatementContext simpleCatalogModifyingStatement(int i) { + return getRuleContext(SimpleCatalogModifyingStatementContext.class,i); + } + public LinearCatalogModifyingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_linearCatalogModifyingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLinearCatalogModifyingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLinearCatalogModifyingStatement(this); + } + } + + public final LinearCatalogModifyingStatementContext linearCatalogModifyingStatement() throws RecognitionException { + LinearCatalogModifyingStatementContext _localctx = new LinearCatalogModifyingStatementContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_linearCatalogModifyingStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1428); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1427); + simpleCatalogModifyingStatement(); + } + } + setState(1430); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( (((_la - 44)) & ~0x3f) == 0 && ((1L << (_la - 44)) & 274878431233L) != 0 || _la==OPTIONAL ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleCatalogModifyingStatementContext extends ParserRuleContext { + public PrimitiveCatalogModifyingStatementContext primitiveCatalogModifyingStatement() { + return getRuleContext(PrimitiveCatalogModifyingStatementContext.class,0); + } + public CallCatalogModifyingProcedureStatementContext callCatalogModifyingProcedureStatement() { + return getRuleContext(CallCatalogModifyingProcedureStatementContext.class,0); + } + public SimpleCatalogModifyingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleCatalogModifyingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleCatalogModifyingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleCatalogModifyingStatement(this); + } + } + + public final SimpleCatalogModifyingStatementContext simpleCatalogModifyingStatement() throws RecognitionException { + SimpleCatalogModifyingStatementContext _localctx = new SimpleCatalogModifyingStatementContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_simpleCatalogModifyingStatement); + try { + setState(1434); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CREATE: + case DROP: + enterOuterAlt(_localctx, 1); + { + setState(1432); + primitiveCatalogModifyingStatement(); + } + break; + case CALL: + case OPTIONAL: + enterOuterAlt(_localctx, 2); + { + setState(1433); + callCatalogModifyingProcedureStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimitiveCatalogModifyingStatementContext extends ParserRuleContext { + public CreateSchemaStatementContext createSchemaStatement() { + return getRuleContext(CreateSchemaStatementContext.class,0); + } + public DropSchemaStatementContext dropSchemaStatement() { + return getRuleContext(DropSchemaStatementContext.class,0); + } + public CreateGraphStatementContext createGraphStatement() { + return getRuleContext(CreateGraphStatementContext.class,0); + } + public DropGraphStatementContext dropGraphStatement() { + return getRuleContext(DropGraphStatementContext.class,0); + } + public CreateGraphTypeStatementContext createGraphTypeStatement() { + return getRuleContext(CreateGraphTypeStatementContext.class,0); + } + public DropGraphTypeStatementContext dropGraphTypeStatement() { + return getRuleContext(DropGraphTypeStatementContext.class,0); + } + public PrimitiveCatalogModifyingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primitiveCatalogModifyingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPrimitiveCatalogModifyingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPrimitiveCatalogModifyingStatement(this); + } + } + + public final PrimitiveCatalogModifyingStatementContext primitiveCatalogModifyingStatement() throws RecognitionException { + PrimitiveCatalogModifyingStatementContext _localctx = new PrimitiveCatalogModifyingStatementContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_primitiveCatalogModifyingStatement); + try { + setState(1442); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,46,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1436); + createSchemaStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1437); + dropSchemaStatement(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1438); + createGraphStatement(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1439); + dropGraphStatement(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1440); + createGraphTypeStatement(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1441); + dropGraphTypeStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreateSchemaStatementContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(GQL_20240412Parser.CREATE, 0); } + public TerminalNode SCHEMA() { return getToken(GQL_20240412Parser.SCHEMA, 0); } + public CatalogSchemaParentAndNameContext catalogSchemaParentAndName() { + return getRuleContext(CatalogSchemaParentAndNameContext.class,0); + } + public TerminalNode IF() { return getToken(GQL_20240412Parser.IF, 0); } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(GQL_20240412Parser.EXISTS, 0); } + public CreateSchemaStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_createSchemaStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCreateSchemaStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCreateSchemaStatement(this); + } + } + + public final CreateSchemaStatementContext createSchemaStatement() throws RecognitionException { + CreateSchemaStatementContext _localctx = new CreateSchemaStatementContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_createSchemaStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1444); + match(CREATE); + setState(1445); + match(SCHEMA); + setState(1449); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1446); + match(IF); + setState(1447); + match(NOT); + setState(1448); + match(EXISTS); + } + } + + setState(1451); + catalogSchemaParentAndName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DropSchemaStatementContext extends ParserRuleContext { + public TerminalNode DROP() { return getToken(GQL_20240412Parser.DROP, 0); } + public TerminalNode SCHEMA() { return getToken(GQL_20240412Parser.SCHEMA, 0); } + public CatalogSchemaParentAndNameContext catalogSchemaParentAndName() { + return getRuleContext(CatalogSchemaParentAndNameContext.class,0); + } + public TerminalNode IF() { return getToken(GQL_20240412Parser.IF, 0); } + public TerminalNode EXISTS() { return getToken(GQL_20240412Parser.EXISTS, 0); } + public DropSchemaStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dropSchemaStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDropSchemaStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDropSchemaStatement(this); + } + } + + public final DropSchemaStatementContext dropSchemaStatement() throws RecognitionException { + DropSchemaStatementContext _localctx = new DropSchemaStatementContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_dropSchemaStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1453); + match(DROP); + setState(1454); + match(SCHEMA); + setState(1457); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1455); + match(IF); + setState(1456); + match(EXISTS); + } + } + + setState(1459); + catalogSchemaParentAndName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreateGraphStatementContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(GQL_20240412Parser.CREATE, 0); } + public CatalogGraphParentAndNameContext catalogGraphParentAndName() { + return getRuleContext(CatalogGraphParentAndNameContext.class,0); + } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public TerminalNode OR() { return getToken(GQL_20240412Parser.OR, 0); } + public TerminalNode REPLACE() { return getToken(GQL_20240412Parser.REPLACE, 0); } + public OpenGraphTypeContext openGraphType() { + return getRuleContext(OpenGraphTypeContext.class,0); + } + public OfGraphTypeContext ofGraphType() { + return getRuleContext(OfGraphTypeContext.class,0); + } + public GraphSourceContext graphSource() { + return getRuleContext(GraphSourceContext.class,0); + } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public TerminalNode IF() { return getToken(GQL_20240412Parser.IF, 0); } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(GQL_20240412Parser.EXISTS, 0); } + public CreateGraphStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_createGraphStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCreateGraphStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCreateGraphStatement(this); + } + } + + public final CreateGraphStatementContext createGraphStatement() throws RecognitionException { + CreateGraphStatementContext _localctx = new CreateGraphStatementContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_createGraphStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1461); + match(CREATE); + setState(1477); + _errHandler.sync(this); + switch (_input.LA(1)) { + case GRAPH: + case PROPERTY: + { + setState(1463); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1462); + match(PROPERTY); + } + } + + setState(1465); + match(GRAPH); + setState(1469); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1466); + match(IF); + setState(1467); + match(NOT); + setState(1468); + match(EXISTS); + } + } + + } + break; + case OR: + { + setState(1471); + match(OR); + setState(1472); + match(REPLACE); + setState(1474); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1473); + match(PROPERTY); + } + } + + setState(1476); + match(GRAPH); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1479); + catalogGraphParentAndName(); + setState(1482); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,53,_ctx) ) { + case 1: + { + setState(1480); + openGraphType(); + } + break; + case 2: + { + setState(1481); + ofGraphType(); + } + break; + } + setState(1485); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(1484); + graphSource(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OpenGraphTypeContext extends ParserRuleContext { + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public TypedContext typed() { + return getRuleContext(TypedContext.class,0); + } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public OpenGraphTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_openGraphType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOpenGraphType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOpenGraphType(this); + } + } + + public final OpenGraphTypeContext openGraphType() throws RecognitionException { + OpenGraphTypeContext _localctx = new OpenGraphTypeContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_openGraphType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1488); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || _la==DOUBLE_COLON) { + { + setState(1487); + typed(); + } + } + + setState(1490); + match(ANY); + setState(1495); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==GRAPH || _la==PROPERTY) { + { + setState(1492); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1491); + match(PROPERTY); + } + } + + setState(1494); + match(GRAPH); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OfGraphTypeContext extends ParserRuleContext { + public GraphTypeLikeGraphContext graphTypeLikeGraph() { + return getRuleContext(GraphTypeLikeGraphContext.class,0); + } + public GraphTypeReferenceContext graphTypeReference() { + return getRuleContext(GraphTypeReferenceContext.class,0); + } + public TypedContext typed() { + return getRuleContext(TypedContext.class,0); + } + public NestedGraphTypeSpecificationContext nestedGraphTypeSpecification() { + return getRuleContext(NestedGraphTypeSpecificationContext.class,0); + } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public OfGraphTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ofGraphType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOfGraphType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOfGraphType(this); + } + } + + public final OfGraphTypeContext ofGraphType() throws RecognitionException { + OfGraphTypeContext _localctx = new OfGraphTypeContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_ofGraphType); + int _la; + try { + setState(1512); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1497); + graphTypeLikeGraph(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1499); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || _la==DOUBLE_COLON) { + { + setState(1498); + typed(); + } + } + + setState(1501); + graphTypeReference(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1503); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || _la==DOUBLE_COLON) { + { + setState(1502); + typed(); + } + } + + setState(1509); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==GRAPH || _la==PROPERTY) { + { + setState(1506); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1505); + match(PROPERTY); + } + } + + setState(1508); + match(GRAPH); + } + } + + setState(1511); + nestedGraphTypeSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphTypeLikeGraphContext extends ParserRuleContext { + public TerminalNode LIKE() { return getToken(GQL_20240412Parser.LIKE, 0); } + public GraphExpressionContext graphExpression() { + return getRuleContext(GraphExpressionContext.class,0); + } + public GraphTypeLikeGraphContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphTypeLikeGraph; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphTypeLikeGraph(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphTypeLikeGraph(this); + } + } + + public final GraphTypeLikeGraphContext graphTypeLikeGraph() throws RecognitionException { + GraphTypeLikeGraphContext _localctx = new GraphTypeLikeGraphContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_graphTypeLikeGraph); + try { + enterOuterAlt(_localctx, 1); + { + setState(1514); + match(LIKE); + setState(1515); + graphExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphSourceContext extends ParserRuleContext { + public TerminalNode AS() { return getToken(GQL_20240412Parser.AS, 0); } + public TerminalNode COPY() { return getToken(GQL_20240412Parser.COPY, 0); } + public TerminalNode OF() { return getToken(GQL_20240412Parser.OF, 0); } + public GraphExpressionContext graphExpression() { + return getRuleContext(GraphExpressionContext.class,0); + } + public GraphSourceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphSource; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphSource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphSource(this); + } + } + + public final GraphSourceContext graphSource() throws RecognitionException { + GraphSourceContext _localctx = new GraphSourceContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_graphSource); + try { + enterOuterAlt(_localctx, 1); + { + setState(1517); + match(AS); + setState(1518); + match(COPY); + setState(1519); + match(OF); + setState(1520); + graphExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DropGraphStatementContext extends ParserRuleContext { + public TerminalNode DROP() { return getToken(GQL_20240412Parser.DROP, 0); } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public CatalogGraphParentAndNameContext catalogGraphParentAndName() { + return getRuleContext(CatalogGraphParentAndNameContext.class,0); + } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public TerminalNode IF() { return getToken(GQL_20240412Parser.IF, 0); } + public TerminalNode EXISTS() { return getToken(GQL_20240412Parser.EXISTS, 0); } + public DropGraphStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dropGraphStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDropGraphStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDropGraphStatement(this); + } + } + + public final DropGraphStatementContext dropGraphStatement() throws RecognitionException { + DropGraphStatementContext _localctx = new DropGraphStatementContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_dropGraphStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1522); + match(DROP); + setState(1524); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1523); + match(PROPERTY); + } + } + + setState(1526); + match(GRAPH); + setState(1529); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1527); + match(IF); + setState(1528); + match(EXISTS); + } + } + + setState(1531); + catalogGraphParentAndName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreateGraphTypeStatementContext extends ParserRuleContext { + public TerminalNode CREATE() { return getToken(GQL_20240412Parser.CREATE, 0); } + public CatalogGraphTypeParentAndNameContext catalogGraphTypeParentAndName() { + return getRuleContext(CatalogGraphTypeParentAndNameContext.class,0); + } + public GraphTypeSourceContext graphTypeSource() { + return getRuleContext(GraphTypeSourceContext.class,0); + } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public TerminalNode TYPE() { return getToken(GQL_20240412Parser.TYPE, 0); } + public TerminalNode OR() { return getToken(GQL_20240412Parser.OR, 0); } + public TerminalNode REPLACE() { return getToken(GQL_20240412Parser.REPLACE, 0); } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public TerminalNode IF() { return getToken(GQL_20240412Parser.IF, 0); } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public TerminalNode EXISTS() { return getToken(GQL_20240412Parser.EXISTS, 0); } + public CreateGraphTypeStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_createGraphTypeStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCreateGraphTypeStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCreateGraphTypeStatement(this); + } + } + + public final CreateGraphTypeStatementContext createGraphTypeStatement() throws RecognitionException { + CreateGraphTypeStatementContext _localctx = new CreateGraphTypeStatementContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_createGraphTypeStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1533); + match(CREATE); + setState(1551); + _errHandler.sync(this); + switch (_input.LA(1)) { + case GRAPH: + case PROPERTY: + { + setState(1535); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1534); + match(PROPERTY); + } + } + + setState(1537); + match(GRAPH); + setState(1538); + match(TYPE); + setState(1542); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1539); + match(IF); + setState(1540); + match(NOT); + setState(1541); + match(EXISTS); + } + } + + } + break; + case OR: + { + setState(1544); + match(OR); + setState(1545); + match(REPLACE); + setState(1547); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1546); + match(PROPERTY); + } + } + + setState(1549); + match(GRAPH); + setState(1550); + match(TYPE); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1553); + catalogGraphTypeParentAndName(); + setState(1554); + graphTypeSource(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphTypeSourceContext extends ParserRuleContext { + public CopyOfGraphTypeContext copyOfGraphType() { + return getRuleContext(CopyOfGraphTypeContext.class,0); + } + public TerminalNode AS() { return getToken(GQL_20240412Parser.AS, 0); } + public GraphTypeLikeGraphContext graphTypeLikeGraph() { + return getRuleContext(GraphTypeLikeGraphContext.class,0); + } + public NestedGraphTypeSpecificationContext nestedGraphTypeSpecification() { + return getRuleContext(NestedGraphTypeSpecificationContext.class,0); + } + public GraphTypeSourceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphTypeSource; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphTypeSource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphTypeSource(this); + } + } + + public final GraphTypeSourceContext graphTypeSource() throws RecognitionException { + GraphTypeSourceContext _localctx = new GraphTypeSourceContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_graphTypeSource); + int _la; + try { + setState(1565); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1557); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(1556); + match(AS); + } + } + + setState(1559); + copyOfGraphType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1560); + graphTypeLikeGraph(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1562); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(1561); + match(AS); + } + } + + setState(1564); + nestedGraphTypeSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CopyOfGraphTypeContext extends ParserRuleContext { + public TerminalNode COPY() { return getToken(GQL_20240412Parser.COPY, 0); } + public TerminalNode OF() { return getToken(GQL_20240412Parser.OF, 0); } + public GraphTypeReferenceContext graphTypeReference() { + return getRuleContext(GraphTypeReferenceContext.class,0); + } + public CopyOfGraphTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_copyOfGraphType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCopyOfGraphType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCopyOfGraphType(this); + } + } + + public final CopyOfGraphTypeContext copyOfGraphType() throws RecognitionException { + CopyOfGraphTypeContext _localctx = new CopyOfGraphTypeContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_copyOfGraphType); + try { + enterOuterAlt(_localctx, 1); + { + setState(1567); + match(COPY); + setState(1568); + match(OF); + setState(1569); + graphTypeReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DropGraphTypeStatementContext extends ParserRuleContext { + public TerminalNode DROP() { return getToken(GQL_20240412Parser.DROP, 0); } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public TerminalNode TYPE() { return getToken(GQL_20240412Parser.TYPE, 0); } + public CatalogGraphTypeParentAndNameContext catalogGraphTypeParentAndName() { + return getRuleContext(CatalogGraphTypeParentAndNameContext.class,0); + } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public TerminalNode IF() { return getToken(GQL_20240412Parser.IF, 0); } + public TerminalNode EXISTS() { return getToken(GQL_20240412Parser.EXISTS, 0); } + public DropGraphTypeStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dropGraphTypeStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDropGraphTypeStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDropGraphTypeStatement(this); + } + } + + public final DropGraphTypeStatementContext dropGraphTypeStatement() throws RecognitionException { + DropGraphTypeStatementContext _localctx = new DropGraphTypeStatementContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_dropGraphTypeStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1571); + match(DROP); + setState(1573); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(1572); + match(PROPERTY); + } + } + + setState(1575); + match(GRAPH); + setState(1576); + match(TYPE); + setState(1579); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IF) { + { + setState(1577); + match(IF); + setState(1578); + match(EXISTS); + } + } + + setState(1581); + catalogGraphTypeParentAndName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CallCatalogModifyingProcedureStatementContext extends ParserRuleContext { + public CallProcedureStatementContext callProcedureStatement() { + return getRuleContext(CallProcedureStatementContext.class,0); + } + public CallCatalogModifyingProcedureStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callCatalogModifyingProcedureStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCallCatalogModifyingProcedureStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCallCatalogModifyingProcedureStatement(this); + } + } + + public final CallCatalogModifyingProcedureStatementContext callCatalogModifyingProcedureStatement() throws RecognitionException { + CallCatalogModifyingProcedureStatementContext _localctx = new CallCatalogModifyingProcedureStatementContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_callCatalogModifyingProcedureStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1583); + callProcedureStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LinearDataModifyingStatementContext extends ParserRuleContext { + public FocusedLinearDataModifyingStatementContext focusedLinearDataModifyingStatement() { + return getRuleContext(FocusedLinearDataModifyingStatementContext.class,0); + } + public AmbientLinearDataModifyingStatementContext ambientLinearDataModifyingStatement() { + return getRuleContext(AmbientLinearDataModifyingStatementContext.class,0); + } + public LinearDataModifyingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_linearDataModifyingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLinearDataModifyingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLinearDataModifyingStatement(this); + } + } + + public final LinearDataModifyingStatementContext linearDataModifyingStatement() throws RecognitionException { + LinearDataModifyingStatementContext _localctx = new LinearDataModifyingStatementContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_linearDataModifyingStatement); + try { + setState(1587); + _errHandler.sync(this); + switch (_input.LA(1)) { + case USE: + enterOuterAlt(_localctx, 1); + { + setState(1585); + focusedLinearDataModifyingStatement(); + } + break; + case CALL: + case DELETE: + case DETACH: + case FILTER: + case FOR: + case INSERT: + case LET: + case LIMIT: + case MATCH: + case NODETACH: + case OFFSET: + case OPTIONAL: + case ORDER: + case REMOVE: + case SET: + case SKIP_RESERVED_WORD: + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1586); + ambientLinearDataModifyingStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FocusedLinearDataModifyingStatementContext extends ParserRuleContext { + public FocusedLinearDataModifyingStatementBodyContext focusedLinearDataModifyingStatementBody() { + return getRuleContext(FocusedLinearDataModifyingStatementBodyContext.class,0); + } + public FocusedNestedDataModifyingProcedureSpecificationContext focusedNestedDataModifyingProcedureSpecification() { + return getRuleContext(FocusedNestedDataModifyingProcedureSpecificationContext.class,0); + } + public FocusedLinearDataModifyingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_focusedLinearDataModifyingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFocusedLinearDataModifyingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFocusedLinearDataModifyingStatement(this); + } + } + + public final FocusedLinearDataModifyingStatementContext focusedLinearDataModifyingStatement() throws RecognitionException { + FocusedLinearDataModifyingStatementContext _localctx = new FocusedLinearDataModifyingStatementContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_focusedLinearDataModifyingStatement); + try { + setState(1591); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,75,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1589); + focusedLinearDataModifyingStatementBody(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1590); + focusedNestedDataModifyingProcedureSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FocusedLinearDataModifyingStatementBodyContext extends ParserRuleContext { + public UseGraphClauseContext useGraphClause() { + return getRuleContext(UseGraphClauseContext.class,0); + } + public SimpleLinearDataAccessingStatementContext simpleLinearDataAccessingStatement() { + return getRuleContext(SimpleLinearDataAccessingStatementContext.class,0); + } + public PrimitiveResultStatementContext primitiveResultStatement() { + return getRuleContext(PrimitiveResultStatementContext.class,0); + } + public FocusedLinearDataModifyingStatementBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_focusedLinearDataModifyingStatementBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFocusedLinearDataModifyingStatementBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFocusedLinearDataModifyingStatementBody(this); + } + } + + public final FocusedLinearDataModifyingStatementBodyContext focusedLinearDataModifyingStatementBody() throws RecognitionException { + FocusedLinearDataModifyingStatementBodyContext _localctx = new FocusedLinearDataModifyingStatementBodyContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_focusedLinearDataModifyingStatementBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1593); + useGraphClause(); + setState(1594); + simpleLinearDataAccessingStatement(); + setState(1596); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FINISH || _la==RETURN) { + { + setState(1595); + primitiveResultStatement(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FocusedNestedDataModifyingProcedureSpecificationContext extends ParserRuleContext { + public UseGraphClauseContext useGraphClause() { + return getRuleContext(UseGraphClauseContext.class,0); + } + public NestedDataModifyingProcedureSpecificationContext nestedDataModifyingProcedureSpecification() { + return getRuleContext(NestedDataModifyingProcedureSpecificationContext.class,0); + } + public FocusedNestedDataModifyingProcedureSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_focusedNestedDataModifyingProcedureSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFocusedNestedDataModifyingProcedureSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFocusedNestedDataModifyingProcedureSpecification(this); + } + } + + public final FocusedNestedDataModifyingProcedureSpecificationContext focusedNestedDataModifyingProcedureSpecification() throws RecognitionException { + FocusedNestedDataModifyingProcedureSpecificationContext _localctx = new FocusedNestedDataModifyingProcedureSpecificationContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_focusedNestedDataModifyingProcedureSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(1598); + useGraphClause(); + setState(1599); + nestedDataModifyingProcedureSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AmbientLinearDataModifyingStatementContext extends ParserRuleContext { + public AmbientLinearDataModifyingStatementBodyContext ambientLinearDataModifyingStatementBody() { + return getRuleContext(AmbientLinearDataModifyingStatementBodyContext.class,0); + } + public NestedDataModifyingProcedureSpecificationContext nestedDataModifyingProcedureSpecification() { + return getRuleContext(NestedDataModifyingProcedureSpecificationContext.class,0); + } + public AmbientLinearDataModifyingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ambientLinearDataModifyingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAmbientLinearDataModifyingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAmbientLinearDataModifyingStatement(this); + } + } + + public final AmbientLinearDataModifyingStatementContext ambientLinearDataModifyingStatement() throws RecognitionException { + AmbientLinearDataModifyingStatementContext _localctx = new AmbientLinearDataModifyingStatementContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_ambientLinearDataModifyingStatement); + try { + setState(1603); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CALL: + case DELETE: + case DETACH: + case FILTER: + case FOR: + case INSERT: + case LET: + case LIMIT: + case MATCH: + case NODETACH: + case OFFSET: + case OPTIONAL: + case ORDER: + case REMOVE: + case SET: + case SKIP_RESERVED_WORD: + enterOuterAlt(_localctx, 1); + { + setState(1601); + ambientLinearDataModifyingStatementBody(); + } + break; + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1602); + nestedDataModifyingProcedureSpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AmbientLinearDataModifyingStatementBodyContext extends ParserRuleContext { + public SimpleLinearDataAccessingStatementContext simpleLinearDataAccessingStatement() { + return getRuleContext(SimpleLinearDataAccessingStatementContext.class,0); + } + public PrimitiveResultStatementContext primitiveResultStatement() { + return getRuleContext(PrimitiveResultStatementContext.class,0); + } + public AmbientLinearDataModifyingStatementBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ambientLinearDataModifyingStatementBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAmbientLinearDataModifyingStatementBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAmbientLinearDataModifyingStatementBody(this); + } + } + + public final AmbientLinearDataModifyingStatementBodyContext ambientLinearDataModifyingStatementBody() throws RecognitionException { + AmbientLinearDataModifyingStatementBodyContext _localctx = new AmbientLinearDataModifyingStatementBodyContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_ambientLinearDataModifyingStatementBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1605); + simpleLinearDataAccessingStatement(); + setState(1607); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FINISH || _la==RETURN) { + { + setState(1606); + primitiveResultStatement(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleLinearDataAccessingStatementContext extends ParserRuleContext { + public List simpleQueryStatement() { + return getRuleContexts(SimpleQueryStatementContext.class); + } + public SimpleQueryStatementContext simpleQueryStatement(int i) { + return getRuleContext(SimpleQueryStatementContext.class,i); + } + public List simpleDataModifyingStatement() { + return getRuleContexts(SimpleDataModifyingStatementContext.class); + } + public SimpleDataModifyingStatementContext simpleDataModifyingStatement(int i) { + return getRuleContext(SimpleDataModifyingStatementContext.class,i); + } + public SimpleLinearDataAccessingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleLinearDataAccessingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleLinearDataAccessingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleLinearDataAccessingStatement(this); + } + } + + public final SimpleLinearDataAccessingStatementContext simpleLinearDataAccessingStatement() throws RecognitionException { + SimpleLinearDataAccessingStatementContext _localctx = new SimpleLinearDataAccessingStatementContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_simpleLinearDataAccessingStatement); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1612); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,79,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1609); + simpleQueryStatement(); + } + } + } + setState(1614); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,79,_ctx); + } + setState(1616); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1615); + simpleDataModifyingStatement(); + } + } + setState(1618); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==CALL || (((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & 17179869193L) != 0 || (((_la - 150)) & ~0x3f) == 0 && ((1L << (_la - 150)) & 1099645846529L) != 0 ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleDataModifyingStatementContext extends ParserRuleContext { + public PrimitiveDataModifyingStatementContext primitiveDataModifyingStatement() { + return getRuleContext(PrimitiveDataModifyingStatementContext.class,0); + } + public CallDataModifyingProcedureStatementContext callDataModifyingProcedureStatement() { + return getRuleContext(CallDataModifyingProcedureStatementContext.class,0); + } + public SimpleDataModifyingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleDataModifyingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleDataModifyingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleDataModifyingStatement(this); + } + } + + public final SimpleDataModifyingStatementContext simpleDataModifyingStatement() throws RecognitionException { + SimpleDataModifyingStatementContext _localctx = new SimpleDataModifyingStatementContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_simpleDataModifyingStatement); + try { + setState(1622); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DELETE: + case DETACH: + case INSERT: + case NODETACH: + case REMOVE: + case SET: + enterOuterAlt(_localctx, 1); + { + setState(1620); + primitiveDataModifyingStatement(); + } + break; + case CALL: + case OPTIONAL: + enterOuterAlt(_localctx, 2); + { + setState(1621); + callDataModifyingProcedureStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimitiveDataModifyingStatementContext extends ParserRuleContext { + public InsertStatementContext insertStatement() { + return getRuleContext(InsertStatementContext.class,0); + } + public SetStatementContext setStatement() { + return getRuleContext(SetStatementContext.class,0); + } + public RemoveStatementContext removeStatement() { + return getRuleContext(RemoveStatementContext.class,0); + } + public DeleteStatementContext deleteStatement() { + return getRuleContext(DeleteStatementContext.class,0); + } + public PrimitiveDataModifyingStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primitiveDataModifyingStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPrimitiveDataModifyingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPrimitiveDataModifyingStatement(this); + } + } + + public final PrimitiveDataModifyingStatementContext primitiveDataModifyingStatement() throws RecognitionException { + PrimitiveDataModifyingStatementContext _localctx = new PrimitiveDataModifyingStatementContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_primitiveDataModifyingStatement); + try { + setState(1628); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INSERT: + enterOuterAlt(_localctx, 1); + { + setState(1624); + insertStatement(); + } + break; + case SET: + enterOuterAlt(_localctx, 2); + { + setState(1625); + setStatement(); + } + break; + case REMOVE: + enterOuterAlt(_localctx, 3); + { + setState(1626); + removeStatement(); + } + break; + case DELETE: + case DETACH: + case NODETACH: + enterOuterAlt(_localctx, 4); + { + setState(1627); + deleteStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertStatementContext extends ParserRuleContext { + public TerminalNode INSERT() { return getToken(GQL_20240412Parser.INSERT, 0); } + public InsertGraphPatternContext insertGraphPattern() { + return getRuleContext(InsertGraphPatternContext.class,0); + } + public InsertStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertStatement(this); + } + } + + public final InsertStatementContext insertStatement() throws RecognitionException { + InsertStatementContext _localctx = new InsertStatementContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_insertStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1630); + match(INSERT); + setState(1631); + insertGraphPattern(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetStatementContext extends ParserRuleContext { + public TerminalNode SET() { return getToken(GQL_20240412Parser.SET, 0); } + public SetItemListContext setItemList() { + return getRuleContext(SetItemListContext.class,0); + } + public SetStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetStatement(this); + } + } + + public final SetStatementContext setStatement() throws RecognitionException { + SetStatementContext _localctx = new SetStatementContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_setStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1633); + match(SET); + setState(1634); + setItemList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetItemListContext extends ParserRuleContext { + public List setItem() { + return getRuleContexts(SetItemContext.class); + } + public SetItemContext setItem(int i) { + return getRuleContext(SetItemContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public SetItemListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setItemList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetItemList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetItemList(this); + } + } + + public final SetItemListContext setItemList() throws RecognitionException { + SetItemListContext _localctx = new SetItemListContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_setItemList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1636); + setItem(); + setState(1641); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1637); + match(COMMA); + setState(1638); + setItem(); + } + } + setState(1643); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetItemContext extends ParserRuleContext { + public SetPropertyItemContext setPropertyItem() { + return getRuleContext(SetPropertyItemContext.class,0); + } + public SetAllPropertiesItemContext setAllPropertiesItem() { + return getRuleContext(SetAllPropertiesItemContext.class,0); + } + public SetLabelItemContext setLabelItem() { + return getRuleContext(SetLabelItemContext.class,0); + } + public SetItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetItem(this); + } + } + + public final SetItemContext setItem() throws RecognitionException { + SetItemContext _localctx = new SetItemContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_setItem); + try { + setState(1647); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,84,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1644); + setPropertyItem(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1645); + setAllPropertiesItem(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1646); + setLabelItem(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetPropertyItemContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public TerminalNode PERIOD() { return getToken(GQL_20240412Parser.PERIOD, 0); } + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public SetPropertyItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setPropertyItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetPropertyItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetPropertyItem(this); + } + } + + public final SetPropertyItemContext setPropertyItem() throws RecognitionException { + SetPropertyItemContext _localctx = new SetPropertyItemContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_setPropertyItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(1649); + bindingVariableReference(); + setState(1650); + match(PERIOD); + setState(1651); + propertyName(); + setState(1652); + match(EQUALS_OPERATOR); + setState(1653); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetAllPropertiesItemContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public PropertyKeyValuePairListContext propertyKeyValuePairList() { + return getRuleContext(PropertyKeyValuePairListContext.class,0); + } + public SetAllPropertiesItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setAllPropertiesItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetAllPropertiesItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetAllPropertiesItem(this); + } + } + + public final SetAllPropertiesItemContext setAllPropertiesItem() throws RecognitionException { + SetAllPropertiesItemContext _localctx = new SetAllPropertiesItemContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_setAllPropertiesItem); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1655); + bindingVariableReference(); + setState(1656); + match(EQUALS_OPERATOR); + setState(1657); + match(LEFT_BRACE); + setState(1659); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==ACCENT_QUOTED_CHARACTER_SEQUENCE || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0) { + { + setState(1658); + propertyKeyValuePairList(); + } + } + + setState(1661); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetLabelItemContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public IsOrColonContext isOrColon() { + return getRuleContext(IsOrColonContext.class,0); + } + public LabelNameContext labelName() { + return getRuleContext(LabelNameContext.class,0); + } + public SetLabelItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setLabelItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetLabelItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetLabelItem(this); + } + } + + public final SetLabelItemContext setLabelItem() throws RecognitionException { + SetLabelItemContext _localctx = new SetLabelItemContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_setLabelItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(1663); + bindingVariableReference(); + setState(1664); + isOrColon(); + setState(1665); + labelName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RemoveStatementContext extends ParserRuleContext { + public TerminalNode REMOVE() { return getToken(GQL_20240412Parser.REMOVE, 0); } + public RemoveItemListContext removeItemList() { + return getRuleContext(RemoveItemListContext.class,0); + } + public RemoveStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_removeStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRemoveStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRemoveStatement(this); + } + } + + public final RemoveStatementContext removeStatement() throws RecognitionException { + RemoveStatementContext _localctx = new RemoveStatementContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_removeStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1667); + match(REMOVE); + setState(1668); + removeItemList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RemoveItemListContext extends ParserRuleContext { + public List removeItem() { + return getRuleContexts(RemoveItemContext.class); + } + public RemoveItemContext removeItem(int i) { + return getRuleContext(RemoveItemContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public RemoveItemListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_removeItemList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRemoveItemList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRemoveItemList(this); + } + } + + public final RemoveItemListContext removeItemList() throws RecognitionException { + RemoveItemListContext _localctx = new RemoveItemListContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_removeItemList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1670); + removeItem(); + setState(1675); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1671); + match(COMMA); + setState(1672); + removeItem(); + } + } + setState(1677); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RemoveItemContext extends ParserRuleContext { + public RemovePropertyItemContext removePropertyItem() { + return getRuleContext(RemovePropertyItemContext.class,0); + } + public RemoveLabelItemContext removeLabelItem() { + return getRuleContext(RemoveLabelItemContext.class,0); + } + public RemoveItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_removeItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRemoveItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRemoveItem(this); + } + } + + public final RemoveItemContext removeItem() throws RecognitionException { + RemoveItemContext _localctx = new RemoveItemContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_removeItem); + try { + setState(1680); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,87,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1678); + removePropertyItem(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1679); + removeLabelItem(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RemovePropertyItemContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public TerminalNode PERIOD() { return getToken(GQL_20240412Parser.PERIOD, 0); } + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public RemovePropertyItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_removePropertyItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRemovePropertyItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRemovePropertyItem(this); + } + } + + public final RemovePropertyItemContext removePropertyItem() throws RecognitionException { + RemovePropertyItemContext _localctx = new RemovePropertyItemContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_removePropertyItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(1682); + bindingVariableReference(); + setState(1683); + match(PERIOD); + setState(1684); + propertyName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RemoveLabelItemContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public IsOrColonContext isOrColon() { + return getRuleContext(IsOrColonContext.class,0); + } + public LabelNameContext labelName() { + return getRuleContext(LabelNameContext.class,0); + } + public RemoveLabelItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_removeLabelItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRemoveLabelItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRemoveLabelItem(this); + } + } + + public final RemoveLabelItemContext removeLabelItem() throws RecognitionException { + RemoveLabelItemContext _localctx = new RemoveLabelItemContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_removeLabelItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(1686); + bindingVariableReference(); + setState(1687); + isOrColon(); + setState(1688); + labelName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DeleteStatementContext extends ParserRuleContext { + public TerminalNode DELETE() { return getToken(GQL_20240412Parser.DELETE, 0); } + public DeleteItemListContext deleteItemList() { + return getRuleContext(DeleteItemListContext.class,0); + } + public TerminalNode DETACH() { return getToken(GQL_20240412Parser.DETACH, 0); } + public TerminalNode NODETACH() { return getToken(GQL_20240412Parser.NODETACH, 0); } + public DeleteStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_deleteStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDeleteStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDeleteStatement(this); + } + } + + public final DeleteStatementContext deleteStatement() throws RecognitionException { + DeleteStatementContext _localctx = new DeleteStatementContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_deleteStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1691); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DETACH || _la==NODETACH) { + { + setState(1690); + _la = _input.LA(1); + if ( !(_la==DETACH || _la==NODETACH) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(1693); + match(DELETE); + setState(1694); + deleteItemList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DeleteItemListContext extends ParserRuleContext { + public List deleteItem() { + return getRuleContexts(DeleteItemContext.class); + } + public DeleteItemContext deleteItem(int i) { + return getRuleContext(DeleteItemContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public DeleteItemListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_deleteItemList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDeleteItemList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDeleteItemList(this); + } + } + + public final DeleteItemListContext deleteItemList() throws RecognitionException { + DeleteItemListContext _localctx = new DeleteItemListContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_deleteItemList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1696); + deleteItem(); + setState(1701); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1697); + match(COMMA); + setState(1698); + deleteItem(); + } + } + setState(1703); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DeleteItemContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public DeleteItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_deleteItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDeleteItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDeleteItem(this); + } + } + + public final DeleteItemContext deleteItem() throws RecognitionException { + DeleteItemContext _localctx = new DeleteItemContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_deleteItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(1704); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CallDataModifyingProcedureStatementContext extends ParserRuleContext { + public CallProcedureStatementContext callProcedureStatement() { + return getRuleContext(CallProcedureStatementContext.class,0); + } + public CallDataModifyingProcedureStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callDataModifyingProcedureStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCallDataModifyingProcedureStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCallDataModifyingProcedureStatement(this); + } + } + + public final CallDataModifyingProcedureStatementContext callDataModifyingProcedureStatement() throws RecognitionException { + CallDataModifyingProcedureStatementContext _localctx = new CallDataModifyingProcedureStatementContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_callDataModifyingProcedureStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1706); + callProcedureStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CompositeQueryStatementContext extends ParserRuleContext { + public CompositeQueryExpressionContext compositeQueryExpression() { + return getRuleContext(CompositeQueryExpressionContext.class,0); + } + public CompositeQueryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_compositeQueryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCompositeQueryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCompositeQueryStatement(this); + } + } + + public final CompositeQueryStatementContext compositeQueryStatement() throws RecognitionException { + CompositeQueryStatementContext _localctx = new CompositeQueryStatementContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_compositeQueryStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1708); + compositeQueryExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CompositeQueryExpressionContext extends ParserRuleContext { + public CompositeQueryPrimaryContext compositeQueryPrimary() { + return getRuleContext(CompositeQueryPrimaryContext.class,0); + } + public CompositeQueryExpressionContext compositeQueryExpression() { + return getRuleContext(CompositeQueryExpressionContext.class,0); + } + public QueryConjunctionContext queryConjunction() { + return getRuleContext(QueryConjunctionContext.class,0); + } + public CompositeQueryExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_compositeQueryExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCompositeQueryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCompositeQueryExpression(this); + } + } + + public final CompositeQueryExpressionContext compositeQueryExpression() throws RecognitionException { + return compositeQueryExpression(0); + } + + private CompositeQueryExpressionContext compositeQueryExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + CompositeQueryExpressionContext _localctx = new CompositeQueryExpressionContext(_ctx, _parentState); + CompositeQueryExpressionContext _prevctx = _localctx; + int _startState = 182; + enterRecursionRule(_localctx, 182, RULE_compositeQueryExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(1711); + compositeQueryPrimary(); + } + _ctx.stop = _input.LT(-1); + setState(1719); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,90,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new CompositeQueryExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_compositeQueryExpression); + setState(1713); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(1714); + queryConjunction(); + setState(1715); + compositeQueryPrimary(); + } + } + } + setState(1721); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,90,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class QueryConjunctionContext extends ParserRuleContext { + public SetOperatorContext setOperator() { + return getRuleContext(SetOperatorContext.class,0); + } + public TerminalNode OTHERWISE() { return getToken(GQL_20240412Parser.OTHERWISE, 0); } + public QueryConjunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_queryConjunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterQueryConjunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitQueryConjunction(this); + } + } + + public final QueryConjunctionContext queryConjunction() throws RecognitionException { + QueryConjunctionContext _localctx = new QueryConjunctionContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_queryConjunction); + try { + setState(1724); + _errHandler.sync(this); + switch (_input.LA(1)) { + case EXCEPT: + case INTERSECT: + case UNION: + enterOuterAlt(_localctx, 1); + { + setState(1722); + setOperator(); + } + break; + case OTHERWISE: + enterOuterAlt(_localctx, 2); + { + setState(1723); + match(OTHERWISE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetOperatorContext extends ParserRuleContext { + public TerminalNode UNION() { return getToken(GQL_20240412Parser.UNION, 0); } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public TerminalNode EXCEPT() { return getToken(GQL_20240412Parser.EXCEPT, 0); } + public TerminalNode INTERSECT() { return getToken(GQL_20240412Parser.INTERSECT, 0); } + public SetOperatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setOperator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetOperator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetOperator(this); + } + } + + public final SetOperatorContext setOperator() throws RecognitionException { + SetOperatorContext _localctx = new SetOperatorContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_setOperator); + int _la; + try { + setState(1738); + _errHandler.sync(this); + switch (_input.LA(1)) { + case UNION: + enterOuterAlt(_localctx, 1); + { + setState(1726); + match(UNION); + setState(1728); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(1727); + setQuantifier(); + } + } + + } + break; + case EXCEPT: + enterOuterAlt(_localctx, 2); + { + setState(1730); + match(EXCEPT); + setState(1732); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(1731); + setQuantifier(); + } + } + + } + break; + case INTERSECT: + enterOuterAlt(_localctx, 3); + { + setState(1734); + match(INTERSECT); + setState(1736); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(1735); + setQuantifier(); + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CompositeQueryPrimaryContext extends ParserRuleContext { + public LinearQueryStatementContext linearQueryStatement() { + return getRuleContext(LinearQueryStatementContext.class,0); + } + public CompositeQueryPrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_compositeQueryPrimary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCompositeQueryPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCompositeQueryPrimary(this); + } + } + + public final CompositeQueryPrimaryContext compositeQueryPrimary() throws RecognitionException { + CompositeQueryPrimaryContext _localctx = new CompositeQueryPrimaryContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_compositeQueryPrimary); + try { + enterOuterAlt(_localctx, 1); + { + setState(1740); + linearQueryStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LinearQueryStatementContext extends ParserRuleContext { + public FocusedLinearQueryStatementContext focusedLinearQueryStatement() { + return getRuleContext(FocusedLinearQueryStatementContext.class,0); + } + public AmbientLinearQueryStatementContext ambientLinearQueryStatement() { + return getRuleContext(AmbientLinearQueryStatementContext.class,0); + } + public LinearQueryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_linearQueryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLinearQueryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLinearQueryStatement(this); + } + } + + public final LinearQueryStatementContext linearQueryStatement() throws RecognitionException { + LinearQueryStatementContext _localctx = new LinearQueryStatementContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_linearQueryStatement); + try { + setState(1744); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SELECT: + case USE: + enterOuterAlt(_localctx, 1); + { + setState(1742); + focusedLinearQueryStatement(); + } + break; + case CALL: + case FILTER: + case FINISH: + case FOR: + case LET: + case LIMIT: + case MATCH: + case OFFSET: + case OPTIONAL: + case ORDER: + case RETURN: + case SKIP_RESERVED_WORD: + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1743); + ambientLinearQueryStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FocusedLinearQueryStatementContext extends ParserRuleContext { + public FocusedLinearQueryAndPrimitiveResultStatementPartContext focusedLinearQueryAndPrimitiveResultStatementPart() { + return getRuleContext(FocusedLinearQueryAndPrimitiveResultStatementPartContext.class,0); + } + public List focusedLinearQueryStatementPart() { + return getRuleContexts(FocusedLinearQueryStatementPartContext.class); + } + public FocusedLinearQueryStatementPartContext focusedLinearQueryStatementPart(int i) { + return getRuleContext(FocusedLinearQueryStatementPartContext.class,i); + } + public FocusedPrimitiveResultStatementContext focusedPrimitiveResultStatement() { + return getRuleContext(FocusedPrimitiveResultStatementContext.class,0); + } + public FocusedNestedQuerySpecificationContext focusedNestedQuerySpecification() { + return getRuleContext(FocusedNestedQuerySpecificationContext.class,0); + } + public SelectStatementContext selectStatement() { + return getRuleContext(SelectStatementContext.class,0); + } + public FocusedLinearQueryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_focusedLinearQueryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFocusedLinearQueryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFocusedLinearQueryStatement(this); + } + } + + public final FocusedLinearQueryStatementContext focusedLinearQueryStatement() throws RecognitionException { + FocusedLinearQueryStatementContext _localctx = new FocusedLinearQueryStatementContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_focusedLinearQueryStatement); + try { + int _alt; + setState(1756); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,98,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1749); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,97,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1746); + focusedLinearQueryStatementPart(); + } + } + } + setState(1751); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,97,_ctx); + } + setState(1752); + focusedLinearQueryAndPrimitiveResultStatementPart(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1753); + focusedPrimitiveResultStatement(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1754); + focusedNestedQuerySpecification(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1755); + selectStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FocusedLinearQueryStatementPartContext extends ParserRuleContext { + public UseGraphClauseContext useGraphClause() { + return getRuleContext(UseGraphClauseContext.class,0); + } + public SimpleLinearQueryStatementContext simpleLinearQueryStatement() { + return getRuleContext(SimpleLinearQueryStatementContext.class,0); + } + public FocusedLinearQueryStatementPartContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_focusedLinearQueryStatementPart; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFocusedLinearQueryStatementPart(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFocusedLinearQueryStatementPart(this); + } + } + + public final FocusedLinearQueryStatementPartContext focusedLinearQueryStatementPart() throws RecognitionException { + FocusedLinearQueryStatementPartContext _localctx = new FocusedLinearQueryStatementPartContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_focusedLinearQueryStatementPart); + try { + enterOuterAlt(_localctx, 1); + { + setState(1758); + useGraphClause(); + setState(1759); + simpleLinearQueryStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FocusedLinearQueryAndPrimitiveResultStatementPartContext extends ParserRuleContext { + public UseGraphClauseContext useGraphClause() { + return getRuleContext(UseGraphClauseContext.class,0); + } + public SimpleLinearQueryStatementContext simpleLinearQueryStatement() { + return getRuleContext(SimpleLinearQueryStatementContext.class,0); + } + public PrimitiveResultStatementContext primitiveResultStatement() { + return getRuleContext(PrimitiveResultStatementContext.class,0); + } + public FocusedLinearQueryAndPrimitiveResultStatementPartContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_focusedLinearQueryAndPrimitiveResultStatementPart; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFocusedLinearQueryAndPrimitiveResultStatementPart(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFocusedLinearQueryAndPrimitiveResultStatementPart(this); + } + } + + public final FocusedLinearQueryAndPrimitiveResultStatementPartContext focusedLinearQueryAndPrimitiveResultStatementPart() throws RecognitionException { + FocusedLinearQueryAndPrimitiveResultStatementPartContext _localctx = new FocusedLinearQueryAndPrimitiveResultStatementPartContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_focusedLinearQueryAndPrimitiveResultStatementPart); + try { + enterOuterAlt(_localctx, 1); + { + setState(1761); + useGraphClause(); + setState(1762); + simpleLinearQueryStatement(); + setState(1763); + primitiveResultStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FocusedPrimitiveResultStatementContext extends ParserRuleContext { + public UseGraphClauseContext useGraphClause() { + return getRuleContext(UseGraphClauseContext.class,0); + } + public PrimitiveResultStatementContext primitiveResultStatement() { + return getRuleContext(PrimitiveResultStatementContext.class,0); + } + public FocusedPrimitiveResultStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_focusedPrimitiveResultStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFocusedPrimitiveResultStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFocusedPrimitiveResultStatement(this); + } + } + + public final FocusedPrimitiveResultStatementContext focusedPrimitiveResultStatement() throws RecognitionException { + FocusedPrimitiveResultStatementContext _localctx = new FocusedPrimitiveResultStatementContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_focusedPrimitiveResultStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1765); + useGraphClause(); + setState(1766); + primitiveResultStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FocusedNestedQuerySpecificationContext extends ParserRuleContext { + public UseGraphClauseContext useGraphClause() { + return getRuleContext(UseGraphClauseContext.class,0); + } + public NestedQuerySpecificationContext nestedQuerySpecification() { + return getRuleContext(NestedQuerySpecificationContext.class,0); + } + public FocusedNestedQuerySpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_focusedNestedQuerySpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFocusedNestedQuerySpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFocusedNestedQuerySpecification(this); + } + } + + public final FocusedNestedQuerySpecificationContext focusedNestedQuerySpecification() throws RecognitionException { + FocusedNestedQuerySpecificationContext _localctx = new FocusedNestedQuerySpecificationContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_focusedNestedQuerySpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(1768); + useGraphClause(); + setState(1769); + nestedQuerySpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AmbientLinearQueryStatementContext extends ParserRuleContext { + public PrimitiveResultStatementContext primitiveResultStatement() { + return getRuleContext(PrimitiveResultStatementContext.class,0); + } + public SimpleLinearQueryStatementContext simpleLinearQueryStatement() { + return getRuleContext(SimpleLinearQueryStatementContext.class,0); + } + public NestedQuerySpecificationContext nestedQuerySpecification() { + return getRuleContext(NestedQuerySpecificationContext.class,0); + } + public AmbientLinearQueryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ambientLinearQueryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAmbientLinearQueryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAmbientLinearQueryStatement(this); + } + } + + public final AmbientLinearQueryStatementContext ambientLinearQueryStatement() throws RecognitionException { + AmbientLinearQueryStatementContext _localctx = new AmbientLinearQueryStatementContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_ambientLinearQueryStatement); + int _la; + try { + setState(1776); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CALL: + case FILTER: + case FINISH: + case FOR: + case LET: + case LIMIT: + case MATCH: + case OFFSET: + case OPTIONAL: + case ORDER: + case RETURN: + case SKIP_RESERVED_WORD: + enterOuterAlt(_localctx, 1); + { + setState(1772); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CALL || (((_la - 91)) & ~0x3f) == 0 && ((1L << (_la - 91)) & 4506348406440449L) != 0 || (((_la - 159)) & ~0x3f) == 0 && ((1L << (_la - 159)) & 68719476747L) != 0) { + { + setState(1771); + simpleLinearQueryStatement(); + } + } + + setState(1774); + primitiveResultStatement(); + } + break; + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1775); + nestedQuerySpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleLinearQueryStatementContext extends ParserRuleContext { + public List simpleQueryStatement() { + return getRuleContexts(SimpleQueryStatementContext.class); + } + public SimpleQueryStatementContext simpleQueryStatement(int i) { + return getRuleContext(SimpleQueryStatementContext.class,i); + } + public SimpleLinearQueryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleLinearQueryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleLinearQueryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleLinearQueryStatement(this); + } + } + + public final SimpleLinearQueryStatementContext simpleLinearQueryStatement() throws RecognitionException { + SimpleLinearQueryStatementContext _localctx = new SimpleLinearQueryStatementContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_simpleLinearQueryStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1779); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1778); + simpleQueryStatement(); + } + } + setState(1781); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==CALL || (((_la - 91)) & ~0x3f) == 0 && ((1L << (_la - 91)) & 4506348406440449L) != 0 || (((_la - 159)) & ~0x3f) == 0 && ((1L << (_la - 159)) & 68719476747L) != 0 ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleQueryStatementContext extends ParserRuleContext { + public PrimitiveQueryStatementContext primitiveQueryStatement() { + return getRuleContext(PrimitiveQueryStatementContext.class,0); + } + public CallQueryStatementContext callQueryStatement() { + return getRuleContext(CallQueryStatementContext.class,0); + } + public SimpleQueryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleQueryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleQueryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleQueryStatement(this); + } + } + + public final SimpleQueryStatementContext simpleQueryStatement() throws RecognitionException { + SimpleQueryStatementContext _localctx = new SimpleQueryStatementContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_simpleQueryStatement); + try { + setState(1785); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,102,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1783); + primitiveQueryStatement(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1784); + callQueryStatement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimitiveQueryStatementContext extends ParserRuleContext { + public MatchStatementContext matchStatement() { + return getRuleContext(MatchStatementContext.class,0); + } + public LetStatementContext letStatement() { + return getRuleContext(LetStatementContext.class,0); + } + public ForStatementContext forStatement() { + return getRuleContext(ForStatementContext.class,0); + } + public FilterStatementContext filterStatement() { + return getRuleContext(FilterStatementContext.class,0); + } + public OrderByAndPageStatementContext orderByAndPageStatement() { + return getRuleContext(OrderByAndPageStatementContext.class,0); + } + public PrimitiveQueryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primitiveQueryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPrimitiveQueryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPrimitiveQueryStatement(this); + } + } + + public final PrimitiveQueryStatementContext primitiveQueryStatement() throws RecognitionException { + PrimitiveQueryStatementContext _localctx = new PrimitiveQueryStatementContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_primitiveQueryStatement); + try { + setState(1792); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MATCH: + case OPTIONAL: + enterOuterAlt(_localctx, 1); + { + setState(1787); + matchStatement(); + } + break; + case LET: + enterOuterAlt(_localctx, 2); + { + setState(1788); + letStatement(); + } + break; + case FOR: + enterOuterAlt(_localctx, 3); + { + setState(1789); + forStatement(); + } + break; + case FILTER: + enterOuterAlt(_localctx, 4); + { + setState(1790); + filterStatement(); + } + break; + case LIMIT: + case OFFSET: + case ORDER: + case SKIP_RESERVED_WORD: + enterOuterAlt(_localctx, 5); + { + setState(1791); + orderByAndPageStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MatchStatementContext extends ParserRuleContext { + public SimpleMatchStatementContext simpleMatchStatement() { + return getRuleContext(SimpleMatchStatementContext.class,0); + } + public OptionalMatchStatementContext optionalMatchStatement() { + return getRuleContext(OptionalMatchStatementContext.class,0); + } + public MatchStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_matchStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterMatchStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitMatchStatement(this); + } + } + + public final MatchStatementContext matchStatement() throws RecognitionException { + MatchStatementContext _localctx = new MatchStatementContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_matchStatement); + try { + setState(1796); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MATCH: + enterOuterAlt(_localctx, 1); + { + setState(1794); + simpleMatchStatement(); + } + break; + case OPTIONAL: + enterOuterAlt(_localctx, 2); + { + setState(1795); + optionalMatchStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleMatchStatementContext extends ParserRuleContext { + public TerminalNode MATCH() { return getToken(GQL_20240412Parser.MATCH, 0); } + public GraphPatternBindingTableContext graphPatternBindingTable() { + return getRuleContext(GraphPatternBindingTableContext.class,0); + } + public SimpleMatchStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleMatchStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleMatchStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleMatchStatement(this); + } + } + + public final SimpleMatchStatementContext simpleMatchStatement() throws RecognitionException { + SimpleMatchStatementContext _localctx = new SimpleMatchStatementContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_simpleMatchStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1798); + match(MATCH); + setState(1799); + graphPatternBindingTable(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OptionalMatchStatementContext extends ParserRuleContext { + public TerminalNode OPTIONAL() { return getToken(GQL_20240412Parser.OPTIONAL, 0); } + public OptionalOperandContext optionalOperand() { + return getRuleContext(OptionalOperandContext.class,0); + } + public OptionalMatchStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_optionalMatchStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOptionalMatchStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOptionalMatchStatement(this); + } + } + + public final OptionalMatchStatementContext optionalMatchStatement() throws RecognitionException { + OptionalMatchStatementContext _localctx = new OptionalMatchStatementContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_optionalMatchStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1801); + match(OPTIONAL); + setState(1802); + optionalOperand(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OptionalOperandContext extends ParserRuleContext { + public SimpleMatchStatementContext simpleMatchStatement() { + return getRuleContext(SimpleMatchStatementContext.class,0); + } + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public MatchStatementBlockContext matchStatementBlock() { + return getRuleContext(MatchStatementBlockContext.class,0); + } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public OptionalOperandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_optionalOperand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOptionalOperand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOptionalOperand(this); + } + } + + public final OptionalOperandContext optionalOperand() throws RecognitionException { + OptionalOperandContext _localctx = new OptionalOperandContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_optionalOperand); + try { + setState(1813); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MATCH: + enterOuterAlt(_localctx, 1); + { + setState(1804); + simpleMatchStatement(); + } + break; + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1805); + match(LEFT_BRACE); + setState(1806); + matchStatementBlock(); + setState(1807); + match(RIGHT_BRACE); + } + break; + case LEFT_PAREN: + enterOuterAlt(_localctx, 3); + { + setState(1809); + match(LEFT_PAREN); + setState(1810); + matchStatementBlock(); + setState(1811); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MatchStatementBlockContext extends ParserRuleContext { + public List matchStatement() { + return getRuleContexts(MatchStatementContext.class); + } + public MatchStatementContext matchStatement(int i) { + return getRuleContext(MatchStatementContext.class,i); + } + public MatchStatementBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_matchStatementBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterMatchStatementBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitMatchStatementBlock(this); + } + } + + public final MatchStatementBlockContext matchStatementBlock() throws RecognitionException { + MatchStatementBlockContext _localctx = new MatchStatementBlockContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_matchStatementBlock); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1816); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1815); + matchStatement(); + } + } + setState(1818); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==MATCH || _la==OPTIONAL ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CallQueryStatementContext extends ParserRuleContext { + public CallProcedureStatementContext callProcedureStatement() { + return getRuleContext(CallProcedureStatementContext.class,0); + } + public CallQueryStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callQueryStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCallQueryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCallQueryStatement(this); + } + } + + public final CallQueryStatementContext callQueryStatement() throws RecognitionException { + CallQueryStatementContext _localctx = new CallQueryStatementContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_callQueryStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1820); + callProcedureStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FilterStatementContext extends ParserRuleContext { + public TerminalNode FILTER() { return getToken(GQL_20240412Parser.FILTER, 0); } + public WhereClauseContext whereClause() { + return getRuleContext(WhereClauseContext.class,0); + } + public SearchConditionContext searchCondition() { + return getRuleContext(SearchConditionContext.class,0); + } + public FilterStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_filterStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFilterStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFilterStatement(this); + } + } + + public final FilterStatementContext filterStatement() throws RecognitionException { + FilterStatementContext _localctx = new FilterStatementContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_filterStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1822); + match(FILTER); + setState(1825); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHERE: + { + setState(1823); + whereClause(); + } + break; + case BOOLEAN_LITERAL: + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case BYTE_STRING_LITERAL: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + case ABS: + case ACOS: + case ALL_DIFFERENT: + case ARRAY: + case ASIN: + case ATAN: + case AVG: + case BTRIM: + case BYTE_LENGTH: + case CARDINALITY: + case CASE: + case CAST: + case CEIL: + case CEILING: + case CHAR_LENGTH: + case CHARACTER_LENGTH: + case COALESCE: + case COLLECT_LIST: + case COS: + case COSH: + case COT: + case COUNT: + case CURRENT_DATE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case DATE: + case DATETIME: + case DEGREES: + case DURATION: + case DURATION_BETWEEN: + case ELEMENT_ID: + case EXISTS: + case EXP: + case FLOOR: + case GROUP: + case LEFT: + case LET: + case LIST: + case LN: + case LOCAL_DATETIME: + case LOCAL_TIME: + case LOCAL_TIMESTAMP: + case LOG: + case LOG10: + case LOWER: + case LTRIM: + case MAX: + case MIN: + case MOD: + case NORMALIZE: + case NOT: + case NULL: + case NULLIF: + case OCTET_LENGTH: + case PATH: + case PATH_LENGTH: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case POWER: + case PROPERTY_EXISTS: + case RADIANS: + case RECORD: + case RIGHT: + case RTRIM: + case SAME: + case SESSION_USER: + case SIN: + case SINH: + case SIZE: + case SQRT: + case STDDEV_POP: + case STDDEV_SAMP: + case SUM: + case TAN: + case TANH: + case TIME: + case TIMESTAMP: + case TRIM: + case UPPER: + case VALUE: + case ZONED_DATETIME: + case ZONED_TIME: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + case GENERAL_PARAMETER_REFERENCE: + case LEFT_BRACE: + case LEFT_BRACKET: + case LEFT_PAREN: + case MINUS_SIGN: + case PLUS_SIGN: + { + setState(1824); + searchCondition(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LetStatementContext extends ParserRuleContext { + public TerminalNode LET() { return getToken(GQL_20240412Parser.LET, 0); } + public LetVariableDefinitionListContext letVariableDefinitionList() { + return getRuleContext(LetVariableDefinitionListContext.class,0); + } + public LetStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_letStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLetStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLetStatement(this); + } + } + + public final LetStatementContext letStatement() throws RecognitionException { + LetStatementContext _localctx = new LetStatementContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_letStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1827); + match(LET); + setState(1828); + letVariableDefinitionList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LetVariableDefinitionListContext extends ParserRuleContext { + public List letVariableDefinition() { + return getRuleContexts(LetVariableDefinitionContext.class); + } + public LetVariableDefinitionContext letVariableDefinition(int i) { + return getRuleContext(LetVariableDefinitionContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public LetVariableDefinitionListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_letVariableDefinitionList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLetVariableDefinitionList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLetVariableDefinitionList(this); + } + } + + public final LetVariableDefinitionListContext letVariableDefinitionList() throws RecognitionException { + LetVariableDefinitionListContext _localctx = new LetVariableDefinitionListContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_letVariableDefinitionList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1830); + letVariableDefinition(); + setState(1835); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1831); + match(COMMA); + setState(1832); + letVariableDefinition(); + } + } + setState(1837); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LetVariableDefinitionContext extends ParserRuleContext { + public ValueVariableDefinitionContext valueVariableDefinition() { + return getRuleContext(ValueVariableDefinitionContext.class,0); + } + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public LetVariableDefinitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_letVariableDefinition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLetVariableDefinition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLetVariableDefinition(this); + } + } + + public final LetVariableDefinitionContext letVariableDefinition() throws RecognitionException { + LetVariableDefinitionContext _localctx = new LetVariableDefinitionContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_letVariableDefinition); + try { + setState(1843); + _errHandler.sync(this); + switch (_input.LA(1)) { + case VALUE: + enterOuterAlt(_localctx, 1); + { + setState(1838); + valueVariableDefinition(); + } + break; + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(1839); + bindingVariable(); + setState(1840); + match(EQUALS_OPERATOR); + setState(1841); + valueExpression(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ForStatementContext extends ParserRuleContext { + public TerminalNode FOR() { return getToken(GQL_20240412Parser.FOR, 0); } + public ForItemContext forItem() { + return getRuleContext(ForItemContext.class,0); + } + public ForOrdinalityOrOffsetContext forOrdinalityOrOffset() { + return getRuleContext(ForOrdinalityOrOffsetContext.class,0); + } + public ForStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitForStatement(this); + } + } + + public final ForStatementContext forStatement() throws RecognitionException { + ForStatementContext _localctx = new ForStatementContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_forStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1845); + match(FOR); + setState(1846); + forItem(); + setState(1848); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WITH) { + { + setState(1847); + forOrdinalityOrOffset(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ForItemContext extends ParserRuleContext { + public ForItemAliasContext forItemAlias() { + return getRuleContext(ForItemAliasContext.class,0); + } + public ForItemSourceContext forItemSource() { + return getRuleContext(ForItemSourceContext.class,0); + } + public ForItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterForItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitForItem(this); + } + } + + public final ForItemContext forItem() throws RecognitionException { + ForItemContext _localctx = new ForItemContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_forItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(1850); + forItemAlias(); + setState(1851); + forItemSource(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ForItemAliasContext extends ParserRuleContext { + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public TerminalNode IN() { return getToken(GQL_20240412Parser.IN, 0); } + public ForItemAliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forItemAlias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterForItemAlias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitForItemAlias(this); + } + } + + public final ForItemAliasContext forItemAlias() throws RecognitionException { + ForItemAliasContext _localctx = new ForItemAliasContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_forItemAlias); + try { + enterOuterAlt(_localctx, 1); + { + setState(1853); + bindingVariable(); + setState(1854); + match(IN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ForItemSourceContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ForItemSourceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forItemSource; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterForItemSource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitForItemSource(this); + } + } + + public final ForItemSourceContext forItemSource() throws RecognitionException { + ForItemSourceContext _localctx = new ForItemSourceContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_forItemSource); + try { + enterOuterAlt(_localctx, 1); + { + setState(1856); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ForOrdinalityOrOffsetContext extends ParserRuleContext { + public TerminalNode WITH() { return getToken(GQL_20240412Parser.WITH, 0); } + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public TerminalNode ORDINALITY() { return getToken(GQL_20240412Parser.ORDINALITY, 0); } + public TerminalNode OFFSET() { return getToken(GQL_20240412Parser.OFFSET, 0); } + public ForOrdinalityOrOffsetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forOrdinalityOrOffset; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterForOrdinalityOrOffset(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitForOrdinalityOrOffset(this); + } + } + + public final ForOrdinalityOrOffsetContext forOrdinalityOrOffset() throws RecognitionException { + ForOrdinalityOrOffsetContext _localctx = new ForOrdinalityOrOffsetContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_forOrdinalityOrOffset); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1858); + match(WITH); + setState(1859); + _la = _input.LA(1); + if ( !(_la==OFFSET || _la==ORDINALITY) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1860); + bindingVariable(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OrderByAndPageStatementContext extends ParserRuleContext { + public OrderByClauseContext orderByClause() { + return getRuleContext(OrderByClauseContext.class,0); + } + public OffsetClauseContext offsetClause() { + return getRuleContext(OffsetClauseContext.class,0); + } + public LimitClauseContext limitClause() { + return getRuleContext(LimitClauseContext.class,0); + } + public OrderByAndPageStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_orderByAndPageStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOrderByAndPageStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOrderByAndPageStatement(this); + } + } + + public final OrderByAndPageStatementContext orderByAndPageStatement() throws RecognitionException { + OrderByAndPageStatementContext _localctx = new OrderByAndPageStatementContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_orderByAndPageStatement); + try { + setState(1874); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ORDER: + enterOuterAlt(_localctx, 1); + { + setState(1862); + orderByClause(); + setState(1864); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,111,_ctx) ) { + case 1: + { + setState(1863); + offsetClause(); + } + break; + } + setState(1867); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,112,_ctx) ) { + case 1: + { + setState(1866); + limitClause(); + } + break; + } + } + break; + case OFFSET: + case SKIP_RESERVED_WORD: + enterOuterAlt(_localctx, 2); + { + setState(1869); + offsetClause(); + setState(1871); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,113,_ctx) ) { + case 1: + { + setState(1870); + limitClause(); + } + break; + } + } + break; + case LIMIT: + enterOuterAlt(_localctx, 3); + { + setState(1873); + limitClause(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimitiveResultStatementContext extends ParserRuleContext { + public ReturnStatementContext returnStatement() { + return getRuleContext(ReturnStatementContext.class,0); + } + public OrderByAndPageStatementContext orderByAndPageStatement() { + return getRuleContext(OrderByAndPageStatementContext.class,0); + } + public TerminalNode FINISH() { return getToken(GQL_20240412Parser.FINISH, 0); } + public PrimitiveResultStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primitiveResultStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPrimitiveResultStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPrimitiveResultStatement(this); + } + } + + public final PrimitiveResultStatementContext primitiveResultStatement() throws RecognitionException { + PrimitiveResultStatementContext _localctx = new PrimitiveResultStatementContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_primitiveResultStatement); + try { + setState(1881); + _errHandler.sync(this); + switch (_input.LA(1)) { + case RETURN: + enterOuterAlt(_localctx, 1); + { + setState(1876); + returnStatement(); + setState(1878); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,115,_ctx) ) { + case 1: + { + setState(1877); + orderByAndPageStatement(); + } + break; + } + } + break; + case FINISH: + enterOuterAlt(_localctx, 2); + { + setState(1880); + match(FINISH); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReturnStatementContext extends ParserRuleContext { + public TerminalNode RETURN() { return getToken(GQL_20240412Parser.RETURN, 0); } + public ReturnStatementBodyContext returnStatementBody() { + return getRuleContext(ReturnStatementBodyContext.class,0); + } + public ReturnStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterReturnStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitReturnStatement(this); + } + } + + public final ReturnStatementContext returnStatement() throws RecognitionException { + ReturnStatementContext _localctx = new ReturnStatementContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_returnStatement); + try { + enterOuterAlt(_localctx, 1); + { + setState(1883); + match(RETURN); + setState(1884); + returnStatementBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReturnStatementBodyContext extends ParserRuleContext { + public TerminalNode ASTERISK() { return getToken(GQL_20240412Parser.ASTERISK, 0); } + public ReturnItemListContext returnItemList() { + return getRuleContext(ReturnItemListContext.class,0); + } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public GroupByClauseContext groupByClause() { + return getRuleContext(GroupByClauseContext.class,0); + } + public TerminalNode NO() { return getToken(GQL_20240412Parser.NO, 0); } + public TerminalNode BINDINGS() { return getToken(GQL_20240412Parser.BINDINGS, 0); } + public ReturnStatementBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnStatementBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterReturnStatementBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitReturnStatementBody(this); + } + } + + public final ReturnStatementBodyContext returnStatementBody() throws RecognitionException { + ReturnStatementBodyContext _localctx = new ReturnStatementBodyContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_returnStatementBody); + int _la; + try { + setState(1898); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1887); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(1886); + setQuantifier(); + } + } + + setState(1891); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ASTERISK: + { + setState(1889); + match(ASTERISK); + } + break; + case BOOLEAN_LITERAL: + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case BYTE_STRING_LITERAL: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + case ABS: + case ACOS: + case ALL_DIFFERENT: + case ARRAY: + case ASIN: + case ATAN: + case AVG: + case BTRIM: + case BYTE_LENGTH: + case CARDINALITY: + case CASE: + case CAST: + case CEIL: + case CEILING: + case CHAR_LENGTH: + case CHARACTER_LENGTH: + case COALESCE: + case COLLECT_LIST: + case COS: + case COSH: + case COT: + case COUNT: + case CURRENT_DATE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case DATE: + case DATETIME: + case DEGREES: + case DURATION: + case DURATION_BETWEEN: + case ELEMENT_ID: + case EXISTS: + case EXP: + case FLOOR: + case GROUP: + case LEFT: + case LET: + case LIST: + case LN: + case LOCAL_DATETIME: + case LOCAL_TIME: + case LOCAL_TIMESTAMP: + case LOG: + case LOG10: + case LOWER: + case LTRIM: + case MAX: + case MIN: + case MOD: + case NORMALIZE: + case NOT: + case NULL: + case NULLIF: + case OCTET_LENGTH: + case PATH: + case PATH_LENGTH: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case POWER: + case PROPERTY_EXISTS: + case RADIANS: + case RECORD: + case RIGHT: + case RTRIM: + case SAME: + case SESSION_USER: + case SIN: + case SINH: + case SIZE: + case SQRT: + case STDDEV_POP: + case STDDEV_SAMP: + case SUM: + case TAN: + case TANH: + case TIME: + case TIMESTAMP: + case TRIM: + case UPPER: + case VALUE: + case ZONED_DATETIME: + case ZONED_TIME: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + case GENERAL_PARAMETER_REFERENCE: + case LEFT_BRACE: + case LEFT_BRACKET: + case LEFT_PAREN: + case MINUS_SIGN: + case PLUS_SIGN: + { + setState(1890); + returnItemList(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1894); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,119,_ctx) ) { + case 1: + { + setState(1893); + groupByClause(); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1896); + match(NO); + setState(1897); + match(BINDINGS); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReturnItemListContext extends ParserRuleContext { + public List returnItem() { + return getRuleContexts(ReturnItemContext.class); + } + public ReturnItemContext returnItem(int i) { + return getRuleContext(ReturnItemContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public ReturnItemListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnItemList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterReturnItemList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitReturnItemList(this); + } + } + + public final ReturnItemListContext returnItemList() throws RecognitionException { + ReturnItemListContext _localctx = new ReturnItemListContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_returnItemList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1900); + returnItem(); + setState(1905); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,121,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1901); + match(COMMA); + setState(1902); + returnItem(); + } + } + } + setState(1907); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,121,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReturnItemContext extends ParserRuleContext { + public AggregatingValueExpressionContext aggregatingValueExpression() { + return getRuleContext(AggregatingValueExpressionContext.class,0); + } + public ReturnItemAliasContext returnItemAlias() { + return getRuleContext(ReturnItemAliasContext.class,0); + } + public ReturnItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterReturnItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitReturnItem(this); + } + } + + public final ReturnItemContext returnItem() throws RecognitionException { + ReturnItemContext _localctx = new ReturnItemContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_returnItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(1908); + aggregatingValueExpression(); + setState(1910); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) { + case 1: + { + setState(1909); + returnItemAlias(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReturnItemAliasContext extends ParserRuleContext { + public TerminalNode AS() { return getToken(GQL_20240412Parser.AS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ReturnItemAliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_returnItemAlias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterReturnItemAlias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitReturnItemAlias(this); + } + } + + public final ReturnItemAliasContext returnItemAlias() throws RecognitionException { + ReturnItemAliasContext _localctx = new ReturnItemAliasContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_returnItemAlias); + try { + enterOuterAlt(_localctx, 1); + { + setState(1912); + match(AS); + setState(1913); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SelectStatementContext extends ParserRuleContext { + public TerminalNode SELECT() { return getToken(GQL_20240412Parser.SELECT, 0); } + public TerminalNode ASTERISK() { return getToken(GQL_20240412Parser.ASTERISK, 0); } + public SelectItemListContext selectItemList() { + return getRuleContext(SelectItemListContext.class,0); + } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public SelectStatementBodyContext selectStatementBody() { + return getRuleContext(SelectStatementBodyContext.class,0); + } + public WhereClauseContext whereClause() { + return getRuleContext(WhereClauseContext.class,0); + } + public GroupByClauseContext groupByClause() { + return getRuleContext(GroupByClauseContext.class,0); + } + public HavingClauseContext havingClause() { + return getRuleContext(HavingClauseContext.class,0); + } + public OrderByClauseContext orderByClause() { + return getRuleContext(OrderByClauseContext.class,0); + } + public OffsetClauseContext offsetClause() { + return getRuleContext(OffsetClauseContext.class,0); + } + public LimitClauseContext limitClause() { + return getRuleContext(LimitClauseContext.class,0); + } + public SelectStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSelectStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSelectStatement(this); + } + } + + public final SelectStatementContext selectStatement() throws RecognitionException { + SelectStatementContext _localctx = new SelectStatementContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_selectStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1915); + match(SELECT); + setState(1917); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(1916); + setQuantifier(); + } + } + + setState(1921); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ASTERISK: + { + setState(1919); + match(ASTERISK); + } + break; + case BOOLEAN_LITERAL: + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case BYTE_STRING_LITERAL: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + case ABS: + case ACOS: + case ALL_DIFFERENT: + case ARRAY: + case ASIN: + case ATAN: + case AVG: + case BTRIM: + case BYTE_LENGTH: + case CARDINALITY: + case CASE: + case CAST: + case CEIL: + case CEILING: + case CHAR_LENGTH: + case CHARACTER_LENGTH: + case COALESCE: + case COLLECT_LIST: + case COS: + case COSH: + case COT: + case COUNT: + case CURRENT_DATE: + case CURRENT_TIME: + case CURRENT_TIMESTAMP: + case DATE: + case DATETIME: + case DEGREES: + case DURATION: + case DURATION_BETWEEN: + case ELEMENT_ID: + case EXISTS: + case EXP: + case FLOOR: + case GROUP: + case LEFT: + case LET: + case LIST: + case LN: + case LOCAL_DATETIME: + case LOCAL_TIME: + case LOCAL_TIMESTAMP: + case LOG: + case LOG10: + case LOWER: + case LTRIM: + case MAX: + case MIN: + case MOD: + case NORMALIZE: + case NOT: + case NULL: + case NULLIF: + case OCTET_LENGTH: + case PATH: + case PATH_LENGTH: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case POWER: + case PROPERTY_EXISTS: + case RADIANS: + case RECORD: + case RIGHT: + case RTRIM: + case SAME: + case SESSION_USER: + case SIN: + case SINH: + case SIZE: + case SQRT: + case STDDEV_POP: + case STDDEV_SAMP: + case SUM: + case TAN: + case TANH: + case TIME: + case TIMESTAMP: + case TRIM: + case UPPER: + case VALUE: + case ZONED_DATETIME: + case ZONED_TIME: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + case GENERAL_PARAMETER_REFERENCE: + case LEFT_BRACE: + case LEFT_BRACKET: + case LEFT_PAREN: + case MINUS_SIGN: + case PLUS_SIGN: + { + setState(1920); + selectItemList(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1942); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,131,_ctx) ) { + case 1: + { + setState(1923); + selectStatementBody(); + setState(1925); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,125,_ctx) ) { + case 1: + { + setState(1924); + whereClause(); + } + break; + } + setState(1928); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,126,_ctx) ) { + case 1: + { + setState(1927); + groupByClause(); + } + break; + } + setState(1931); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,127,_ctx) ) { + case 1: + { + setState(1930); + havingClause(); + } + break; + } + setState(1934); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,128,_ctx) ) { + case 1: + { + setState(1933); + orderByClause(); + } + break; + } + setState(1937); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,129,_ctx) ) { + case 1: + { + setState(1936); + offsetClause(); + } + break; + } + setState(1940); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,130,_ctx) ) { + case 1: + { + setState(1939); + limitClause(); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SelectItemListContext extends ParserRuleContext { + public List selectItem() { + return getRuleContexts(SelectItemContext.class); + } + public SelectItemContext selectItem(int i) { + return getRuleContext(SelectItemContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public SelectItemListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectItemList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSelectItemList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSelectItemList(this); + } + } + + public final SelectItemListContext selectItemList() throws RecognitionException { + SelectItemListContext _localctx = new SelectItemListContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_selectItemList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1944); + selectItem(); + setState(1949); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,132,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1945); + match(COMMA); + setState(1946); + selectItem(); + } + } + } + setState(1951); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,132,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SelectItemContext extends ParserRuleContext { + public AggregatingValueExpressionContext aggregatingValueExpression() { + return getRuleContext(AggregatingValueExpressionContext.class,0); + } + public SelectItemAliasContext selectItemAlias() { + return getRuleContext(SelectItemAliasContext.class,0); + } + public SelectItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSelectItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSelectItem(this); + } + } + + public final SelectItemContext selectItem() throws RecognitionException { + SelectItemContext _localctx = new SelectItemContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_selectItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(1952); + aggregatingValueExpression(); + setState(1954); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,133,_ctx) ) { + case 1: + { + setState(1953); + selectItemAlias(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SelectItemAliasContext extends ParserRuleContext { + public TerminalNode AS() { return getToken(GQL_20240412Parser.AS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public SelectItemAliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectItemAlias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSelectItemAlias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSelectItemAlias(this); + } + } + + public final SelectItemAliasContext selectItemAlias() throws RecognitionException { + SelectItemAliasContext _localctx = new SelectItemAliasContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_selectItemAlias); + try { + enterOuterAlt(_localctx, 1); + { + setState(1956); + match(AS); + setState(1957); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class HavingClauseContext extends ParserRuleContext { + public TerminalNode HAVING() { return getToken(GQL_20240412Parser.HAVING, 0); } + public SearchConditionContext searchCondition() { + return getRuleContext(SearchConditionContext.class,0); + } + public HavingClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_havingClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterHavingClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitHavingClause(this); + } + } + + public final HavingClauseContext havingClause() throws RecognitionException { + HavingClauseContext _localctx = new HavingClauseContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_havingClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1959); + match(HAVING); + setState(1960); + searchCondition(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SelectStatementBodyContext extends ParserRuleContext { + public TerminalNode FROM() { return getToken(GQL_20240412Parser.FROM, 0); } + public SelectGraphMatchListContext selectGraphMatchList() { + return getRuleContext(SelectGraphMatchListContext.class,0); + } + public SelectQuerySpecificationContext selectQuerySpecification() { + return getRuleContext(SelectQuerySpecificationContext.class,0); + } + public SelectStatementBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectStatementBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSelectStatementBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSelectStatementBody(this); + } + } + + public final SelectStatementBodyContext selectStatementBody() throws RecognitionException { + SelectStatementBodyContext _localctx = new SelectStatementBodyContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_selectStatementBody); + try { + enterOuterAlt(_localctx, 1); + { + setState(1962); + match(FROM); + setState(1965); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,134,_ctx) ) { + case 1: + { + setState(1963); + selectGraphMatchList(); + } + break; + case 2: + { + setState(1964); + selectQuerySpecification(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SelectGraphMatchListContext extends ParserRuleContext { + public List selectGraphMatch() { + return getRuleContexts(SelectGraphMatchContext.class); + } + public SelectGraphMatchContext selectGraphMatch(int i) { + return getRuleContext(SelectGraphMatchContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public SelectGraphMatchListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectGraphMatchList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSelectGraphMatchList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSelectGraphMatchList(this); + } + } + + public final SelectGraphMatchListContext selectGraphMatchList() throws RecognitionException { + SelectGraphMatchListContext _localctx = new SelectGraphMatchListContext(_ctx, getState()); + enterRule(_localctx, 266, RULE_selectGraphMatchList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1967); + selectGraphMatch(); + setState(1972); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,135,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1968); + match(COMMA); + setState(1969); + selectGraphMatch(); + } + } + } + setState(1974); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,135,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SelectGraphMatchContext extends ParserRuleContext { + public GraphExpressionContext graphExpression() { + return getRuleContext(GraphExpressionContext.class,0); + } + public MatchStatementContext matchStatement() { + return getRuleContext(MatchStatementContext.class,0); + } + public SelectGraphMatchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectGraphMatch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSelectGraphMatch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSelectGraphMatch(this); + } + } + + public final SelectGraphMatchContext selectGraphMatch() throws RecognitionException { + SelectGraphMatchContext _localctx = new SelectGraphMatchContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_selectGraphMatch); + try { + enterOuterAlt(_localctx, 1); + { + setState(1975); + graphExpression(); + setState(1976); + matchStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SelectQuerySpecificationContext extends ParserRuleContext { + public NestedQuerySpecificationContext nestedQuerySpecification() { + return getRuleContext(NestedQuerySpecificationContext.class,0); + } + public GraphExpressionContext graphExpression() { + return getRuleContext(GraphExpressionContext.class,0); + } + public SelectQuerySpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_selectQuerySpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSelectQuerySpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSelectQuerySpecification(this); + } + } + + public final SelectQuerySpecificationContext selectQuerySpecification() throws RecognitionException { + SelectQuerySpecificationContext _localctx = new SelectQuerySpecificationContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_selectQuerySpecification); + try { + setState(1982); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,136,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1978); + nestedQuerySpecification(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1979); + graphExpression(); + setState(1980); + nestedQuerySpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CallProcedureStatementContext extends ParserRuleContext { + public TerminalNode CALL() { return getToken(GQL_20240412Parser.CALL, 0); } + public ProcedureCallContext procedureCall() { + return getRuleContext(ProcedureCallContext.class,0); + } + public TerminalNode OPTIONAL() { return getToken(GQL_20240412Parser.OPTIONAL, 0); } + public CallProcedureStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_callProcedureStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCallProcedureStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCallProcedureStatement(this); + } + } + + public final CallProcedureStatementContext callProcedureStatement() throws RecognitionException { + CallProcedureStatementContext _localctx = new CallProcedureStatementContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_callProcedureStatement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1985); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPTIONAL) { + { + setState(1984); + match(OPTIONAL); + } + } + + setState(1987); + match(CALL); + setState(1988); + procedureCall(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProcedureCallContext extends ParserRuleContext { + public InlineProcedureCallContext inlineProcedureCall() { + return getRuleContext(InlineProcedureCallContext.class,0); + } + public NamedProcedureCallContext namedProcedureCall() { + return getRuleContext(NamedProcedureCallContext.class,0); + } + public ProcedureCallContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_procedureCall; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProcedureCall(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProcedureCall(this); + } + } + + public final ProcedureCallContext procedureCall() throws RecognitionException { + ProcedureCallContext _localctx = new ProcedureCallContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_procedureCall); + try { + setState(1992); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LEFT_BRACE: + case LEFT_PAREN: + enterOuterAlt(_localctx, 1); + { + setState(1990); + inlineProcedureCall(); + } + break; + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case ACCENT_QUOTED_CHARACTER_SEQUENCE: + case CURRENT_SCHEMA: + case HOME_SCHEMA: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + case SUBSTITUTED_PARAMETER_REFERENCE: + case DOUBLE_PERIOD: + case PERIOD: + case SOLIDUS: + enterOuterAlt(_localctx, 2); + { + setState(1991); + namedProcedureCall(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InlineProcedureCallContext extends ParserRuleContext { + public NestedProcedureSpecificationContext nestedProcedureSpecification() { + return getRuleContext(NestedProcedureSpecificationContext.class,0); + } + public VariableScopeClauseContext variableScopeClause() { + return getRuleContext(VariableScopeClauseContext.class,0); + } + public InlineProcedureCallContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_inlineProcedureCall; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInlineProcedureCall(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInlineProcedureCall(this); + } + } + + public final InlineProcedureCallContext inlineProcedureCall() throws RecognitionException { + InlineProcedureCallContext _localctx = new InlineProcedureCallContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_inlineProcedureCall); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1995); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LEFT_PAREN) { + { + setState(1994); + variableScopeClause(); + } + } + + setState(1997); + nestedProcedureSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableScopeClauseContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public BindingVariableReferenceListContext bindingVariableReferenceList() { + return getRuleContext(BindingVariableReferenceListContext.class,0); + } + public VariableScopeClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableScopeClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterVariableScopeClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitVariableScopeClause(this); + } + } + + public final VariableScopeClauseContext variableScopeClause() throws RecognitionException { + VariableScopeClauseContext _localctx = new VariableScopeClauseContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_variableScopeClause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1999); + match(LEFT_PAREN); + setState(2001); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0) { + { + setState(2000); + bindingVariableReferenceList(); + } + } + + setState(2003); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingVariableReferenceListContext extends ParserRuleContext { + public List bindingVariableReference() { + return getRuleContexts(BindingVariableReferenceContext.class); + } + public BindingVariableReferenceContext bindingVariableReference(int i) { + return getRuleContext(BindingVariableReferenceContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public BindingVariableReferenceListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingVariableReferenceList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingVariableReferenceList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingVariableReferenceList(this); + } + } + + public final BindingVariableReferenceListContext bindingVariableReferenceList() throws RecognitionException { + BindingVariableReferenceListContext _localctx = new BindingVariableReferenceListContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_bindingVariableReferenceList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2005); + bindingVariableReference(); + setState(2010); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2006); + match(COMMA); + setState(2007); + bindingVariableReference(); + } + } + setState(2012); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NamedProcedureCallContext extends ParserRuleContext { + public ProcedureReferenceContext procedureReference() { + return getRuleContext(ProcedureReferenceContext.class,0); + } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public ProcedureArgumentListContext procedureArgumentList() { + return getRuleContext(ProcedureArgumentListContext.class,0); + } + public YieldClauseContext yieldClause() { + return getRuleContext(YieldClauseContext.class,0); + } + public NamedProcedureCallContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namedProcedureCall; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNamedProcedureCall(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNamedProcedureCall(this); + } + } + + public final NamedProcedureCallContext namedProcedureCall() throws RecognitionException { + NamedProcedureCallContext _localctx = new NamedProcedureCallContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_namedProcedureCall); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2013); + procedureReference(); + setState(2014); + match(LEFT_PAREN); + setState(2016); + _errHandler.sync(this); + _la = _input.LA(1); + if (((_la) & ~0x3f) == 0 && ((1L << _la) & 8762849302180528028L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 309341980913L) != 0 || (((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & -8011702113698201677L) != 0 || (((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & 26393111092643L) != 0 || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 1688849860263935L) != 0 || (((_la - 369)) & ~0x3f) == 0 && ((1L << (_la - 369)) & 151L) != 0) { + { + setState(2015); + procedureArgumentList(); + } + } + + setState(2018); + match(RIGHT_PAREN); + setState(2020); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==YIELD) { + { + setState(2019); + yieldClause(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProcedureArgumentListContext extends ParserRuleContext { + public List procedureArgument() { + return getRuleContexts(ProcedureArgumentContext.class); + } + public ProcedureArgumentContext procedureArgument(int i) { + return getRuleContext(ProcedureArgumentContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public ProcedureArgumentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_procedureArgumentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProcedureArgumentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProcedureArgumentList(this); + } + } + + public final ProcedureArgumentListContext procedureArgumentList() throws RecognitionException { + ProcedureArgumentListContext _localctx = new ProcedureArgumentListContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_procedureArgumentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2022); + procedureArgument(); + setState(2027); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2023); + match(COMMA); + setState(2024); + procedureArgument(); + } + } + setState(2029); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProcedureArgumentContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ProcedureArgumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_procedureArgument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProcedureArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProcedureArgument(this); + } + } + + public final ProcedureArgumentContext procedureArgument() throws RecognitionException { + ProcedureArgumentContext _localctx = new ProcedureArgumentContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_procedureArgument); + try { + enterOuterAlt(_localctx, 1); + { + setState(2030); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AtSchemaClauseContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(GQL_20240412Parser.AT, 0); } + public SchemaReferenceContext schemaReference() { + return getRuleContext(SchemaReferenceContext.class,0); + } + public AtSchemaClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_atSchemaClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAtSchemaClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAtSchemaClause(this); + } + } + + public final AtSchemaClauseContext atSchemaClause() throws RecognitionException { + AtSchemaClauseContext _localctx = new AtSchemaClauseContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_atSchemaClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2032); + match(AT); + setState(2033); + schemaReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UseGraphClauseContext extends ParserRuleContext { + public TerminalNode USE() { return getToken(GQL_20240412Parser.USE, 0); } + public GraphExpressionContext graphExpression() { + return getRuleContext(GraphExpressionContext.class,0); + } + public UseGraphClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_useGraphClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterUseGraphClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitUseGraphClause(this); + } + } + + public final UseGraphClauseContext useGraphClause() throws RecognitionException { + UseGraphClauseContext _localctx = new UseGraphClauseContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_useGraphClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2035); + match(USE); + setState(2036); + graphExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphPatternBindingTableContext extends ParserRuleContext { + public GraphPatternContext graphPattern() { + return getRuleContext(GraphPatternContext.class,0); + } + public GraphPatternYieldClauseContext graphPatternYieldClause() { + return getRuleContext(GraphPatternYieldClauseContext.class,0); + } + public GraphPatternBindingTableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphPatternBindingTable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphPatternBindingTable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphPatternBindingTable(this); + } + } + + public final GraphPatternBindingTableContext graphPatternBindingTable() throws RecognitionException { + GraphPatternBindingTableContext _localctx = new GraphPatternBindingTableContext(_ctx, getState()); + enterRule(_localctx, 292, RULE_graphPatternBindingTable); + try { + enterOuterAlt(_localctx, 1); + { + setState(2038); + graphPattern(); + setState(2040); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,145,_ctx) ) { + case 1: + { + setState(2039); + graphPatternYieldClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphPatternYieldClauseContext extends ParserRuleContext { + public TerminalNode YIELD() { return getToken(GQL_20240412Parser.YIELD, 0); } + public GraphPatternYieldItemListContext graphPatternYieldItemList() { + return getRuleContext(GraphPatternYieldItemListContext.class,0); + } + public GraphPatternYieldClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphPatternYieldClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphPatternYieldClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphPatternYieldClause(this); + } + } + + public final GraphPatternYieldClauseContext graphPatternYieldClause() throws RecognitionException { + GraphPatternYieldClauseContext _localctx = new GraphPatternYieldClauseContext(_ctx, getState()); + enterRule(_localctx, 294, RULE_graphPatternYieldClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2042); + match(YIELD); + setState(2043); + graphPatternYieldItemList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphPatternYieldItemListContext extends ParserRuleContext { + public List graphPatternYieldItem() { + return getRuleContexts(GraphPatternYieldItemContext.class); + } + public GraphPatternYieldItemContext graphPatternYieldItem(int i) { + return getRuleContext(GraphPatternYieldItemContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public TerminalNode NO() { return getToken(GQL_20240412Parser.NO, 0); } + public TerminalNode BINDINGS() { return getToken(GQL_20240412Parser.BINDINGS, 0); } + public GraphPatternYieldItemListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphPatternYieldItemList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphPatternYieldItemList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphPatternYieldItemList(this); + } + } + + public final GraphPatternYieldItemListContext graphPatternYieldItemList() throws RecognitionException { + GraphPatternYieldItemListContext _localctx = new GraphPatternYieldItemListContext(_ctx, getState()); + enterRule(_localctx, 296, RULE_graphPatternYieldItemList); + try { + int _alt; + setState(2055); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,147,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2045); + graphPatternYieldItem(); + setState(2050); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,146,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2046); + match(COMMA); + setState(2047); + graphPatternYieldItem(); + } + } + } + setState(2052); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,146,_ctx); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2053); + match(NO); + setState(2054); + match(BINDINGS); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphPatternYieldItemContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public GraphPatternYieldItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphPatternYieldItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphPatternYieldItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphPatternYieldItem(this); + } + } + + public final GraphPatternYieldItemContext graphPatternYieldItem() throws RecognitionException { + GraphPatternYieldItemContext _localctx = new GraphPatternYieldItemContext(_ctx, getState()); + enterRule(_localctx, 298, RULE_graphPatternYieldItem); + try { + enterOuterAlt(_localctx, 1); + { + setState(2057); + bindingVariableReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphPatternContext extends ParserRuleContext { + public PathPatternListContext pathPatternList() { + return getRuleContext(PathPatternListContext.class,0); + } + public MatchModeContext matchMode() { + return getRuleContext(MatchModeContext.class,0); + } + public KeepClauseContext keepClause() { + return getRuleContext(KeepClauseContext.class,0); + } + public GraphPatternWhereClauseContext graphPatternWhereClause() { + return getRuleContext(GraphPatternWhereClauseContext.class,0); + } + public GraphPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphPattern(this); + } + } + + public final GraphPatternContext graphPattern() throws RecognitionException { + GraphPatternContext _localctx = new GraphPatternContext(_ctx, getState()); + enterRule(_localctx, 300, RULE_graphPattern); + try { + enterOuterAlt(_localctx, 1); + { + setState(2060); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,148,_ctx) ) { + case 1: + { + setState(2059); + matchMode(); + } + break; + } + setState(2062); + pathPatternList(); + setState(2064); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) { + case 1: + { + setState(2063); + keepClause(); + } + break; + } + setState(2067); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) { + case 1: + { + setState(2066); + graphPatternWhereClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MatchModeContext extends ParserRuleContext { + public RepeatableElementsMatchModeContext repeatableElementsMatchMode() { + return getRuleContext(RepeatableElementsMatchModeContext.class,0); + } + public DifferentEdgesMatchModeContext differentEdgesMatchMode() { + return getRuleContext(DifferentEdgesMatchModeContext.class,0); + } + public MatchModeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_matchMode; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterMatchMode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitMatchMode(this); + } + } + + public final MatchModeContext matchMode() throws RecognitionException { + MatchModeContext _localctx = new MatchModeContext(_ctx, getState()); + enterRule(_localctx, 302, RULE_matchMode); + try { + setState(2071); + _errHandler.sync(this); + switch (_input.LA(1)) { + case REPEATABLE: + enterOuterAlt(_localctx, 1); + { + setState(2069); + repeatableElementsMatchMode(); + } + break; + case DIFFERENT: + enterOuterAlt(_localctx, 2); + { + setState(2070); + differentEdgesMatchMode(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RepeatableElementsMatchModeContext extends ParserRuleContext { + public TerminalNode REPEATABLE() { return getToken(GQL_20240412Parser.REPEATABLE, 0); } + public ElementBindingsOrElementsContext elementBindingsOrElements() { + return getRuleContext(ElementBindingsOrElementsContext.class,0); + } + public RepeatableElementsMatchModeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_repeatableElementsMatchMode; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRepeatableElementsMatchMode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRepeatableElementsMatchMode(this); + } + } + + public final RepeatableElementsMatchModeContext repeatableElementsMatchMode() throws RecognitionException { + RepeatableElementsMatchModeContext _localctx = new RepeatableElementsMatchModeContext(_ctx, getState()); + enterRule(_localctx, 304, RULE_repeatableElementsMatchMode); + try { + enterOuterAlt(_localctx, 1); + { + setState(2073); + match(REPEATABLE); + setState(2074); + elementBindingsOrElements(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DifferentEdgesMatchModeContext extends ParserRuleContext { + public TerminalNode DIFFERENT() { return getToken(GQL_20240412Parser.DIFFERENT, 0); } + public EdgeBindingsOrEdgesContext edgeBindingsOrEdges() { + return getRuleContext(EdgeBindingsOrEdgesContext.class,0); + } + public DifferentEdgesMatchModeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_differentEdgesMatchMode; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDifferentEdgesMatchMode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDifferentEdgesMatchMode(this); + } + } + + public final DifferentEdgesMatchModeContext differentEdgesMatchMode() throws RecognitionException { + DifferentEdgesMatchModeContext _localctx = new DifferentEdgesMatchModeContext(_ctx, getState()); + enterRule(_localctx, 306, RULE_differentEdgesMatchMode); + try { + enterOuterAlt(_localctx, 1); + { + setState(2076); + match(DIFFERENT); + setState(2077); + edgeBindingsOrEdges(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementBindingsOrElementsContext extends ParserRuleContext { + public TerminalNode ELEMENT() { return getToken(GQL_20240412Parser.ELEMENT, 0); } + public TerminalNode BINDINGS() { return getToken(GQL_20240412Parser.BINDINGS, 0); } + public TerminalNode ELEMENTS() { return getToken(GQL_20240412Parser.ELEMENTS, 0); } + public ElementBindingsOrElementsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementBindingsOrElements; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementBindingsOrElements(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementBindingsOrElements(this); + } + } + + public final ElementBindingsOrElementsContext elementBindingsOrElements() throws RecognitionException { + ElementBindingsOrElementsContext _localctx = new ElementBindingsOrElementsContext(_ctx, getState()); + enterRule(_localctx, 308, RULE_elementBindingsOrElements); + try { + setState(2084); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ELEMENT: + enterOuterAlt(_localctx, 1); + { + setState(2079); + match(ELEMENT); + setState(2081); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,152,_ctx) ) { + case 1: + { + setState(2080); + match(BINDINGS); + } + break; + } + } + break; + case ELEMENTS: + enterOuterAlt(_localctx, 2); + { + setState(2083); + match(ELEMENTS); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeBindingsOrEdgesContext extends ParserRuleContext { + public EdgeSynonymContext edgeSynonym() { + return getRuleContext(EdgeSynonymContext.class,0); + } + public TerminalNode BINDINGS() { return getToken(GQL_20240412Parser.BINDINGS, 0); } + public EdgesSynonymContext edgesSynonym() { + return getRuleContext(EdgesSynonymContext.class,0); + } + public EdgeBindingsOrEdgesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeBindingsOrEdges; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeBindingsOrEdges(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeBindingsOrEdges(this); + } + } + + public final EdgeBindingsOrEdgesContext edgeBindingsOrEdges() throws RecognitionException { + EdgeBindingsOrEdgesContext _localctx = new EdgeBindingsOrEdgesContext(_ctx, getState()); + enterRule(_localctx, 310, RULE_edgeBindingsOrEdges); + try { + setState(2091); + _errHandler.sync(this); + switch (_input.LA(1)) { + case EDGE: + case RELATIONSHIP: + enterOuterAlt(_localctx, 1); + { + setState(2086); + edgeSynonym(); + setState(2088); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,154,_ctx) ) { + case 1: + { + setState(2087); + match(BINDINGS); + } + break; + } + } + break; + case EDGES: + case RELATIONSHIPS: + enterOuterAlt(_localctx, 2); + { + setState(2090); + edgesSynonym(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathPatternListContext extends ParserRuleContext { + public List pathPattern() { + return getRuleContexts(PathPatternContext.class); + } + public PathPatternContext pathPattern(int i) { + return getRuleContext(PathPatternContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public PathPatternListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathPatternList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathPatternList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathPatternList(this); + } + } + + public final PathPatternListContext pathPatternList() throws RecognitionException { + PathPatternListContext _localctx = new PathPatternListContext(_ctx, getState()); + enterRule(_localctx, 312, RULE_pathPatternList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2093); + pathPattern(); + setState(2098); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,156,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2094); + match(COMMA); + setState(2095); + pathPattern(); + } + } + } + setState(2100); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,156,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathPatternContext extends ParserRuleContext { + public PathPatternExpressionContext pathPatternExpression() { + return getRuleContext(PathPatternExpressionContext.class,0); + } + public PathVariableDeclarationContext pathVariableDeclaration() { + return getRuleContext(PathVariableDeclarationContext.class,0); + } + public PathPatternPrefixContext pathPatternPrefix() { + return getRuleContext(PathPatternPrefixContext.class,0); + } + public PathPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathPattern(this); + } + } + + public final PathPatternContext pathPattern() throws RecognitionException { + PathPatternContext _localctx = new PathPatternContext(_ctx, getState()); + enterRule(_localctx, 314, RULE_pathPattern); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2102); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,157,_ctx) ) { + case 1: + { + setState(2101); + pathVariableDeclaration(); + } + break; + } + setState(2105); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==ANY || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 18167711662081L) != 0) { + { + setState(2104); + pathPatternPrefix(); + } + } + + setState(2107); + pathPatternExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathVariableDeclarationContext extends ParserRuleContext { + public PathVariableContext pathVariable() { + return getRuleContext(PathVariableContext.class,0); + } + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public PathVariableDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathVariableDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathVariableDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathVariableDeclaration(this); + } + } + + public final PathVariableDeclarationContext pathVariableDeclaration() throws RecognitionException { + PathVariableDeclarationContext _localctx = new PathVariableDeclarationContext(_ctx, getState()); + enterRule(_localctx, 316, RULE_pathVariableDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(2109); + pathVariable(); + setState(2110); + match(EQUALS_OPERATOR); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class KeepClauseContext extends ParserRuleContext { + public TerminalNode KEEP() { return getToken(GQL_20240412Parser.KEEP, 0); } + public PathPatternPrefixContext pathPatternPrefix() { + return getRuleContext(PathPatternPrefixContext.class,0); + } + public KeepClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_keepClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterKeepClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitKeepClause(this); + } + } + + public final KeepClauseContext keepClause() throws RecognitionException { + KeepClauseContext _localctx = new KeepClauseContext(_ctx, getState()); + enterRule(_localctx, 318, RULE_keepClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2112); + match(KEEP); + setState(2113); + pathPatternPrefix(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphPatternWhereClauseContext extends ParserRuleContext { + public TerminalNode WHERE() { return getToken(GQL_20240412Parser.WHERE, 0); } + public SearchConditionContext searchCondition() { + return getRuleContext(SearchConditionContext.class,0); + } + public GraphPatternWhereClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphPatternWhereClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphPatternWhereClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphPatternWhereClause(this); + } + } + + public final GraphPatternWhereClauseContext graphPatternWhereClause() throws RecognitionException { + GraphPatternWhereClauseContext _localctx = new GraphPatternWhereClauseContext(_ctx, getState()); + enterRule(_localctx, 320, RULE_graphPatternWhereClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2115); + match(WHERE); + setState(2116); + searchCondition(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertGraphPatternContext extends ParserRuleContext { + public InsertPathPatternListContext insertPathPatternList() { + return getRuleContext(InsertPathPatternListContext.class,0); + } + public InsertGraphPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertGraphPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertGraphPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertGraphPattern(this); + } + } + + public final InsertGraphPatternContext insertGraphPattern() throws RecognitionException { + InsertGraphPatternContext _localctx = new InsertGraphPatternContext(_ctx, getState()); + enterRule(_localctx, 322, RULE_insertGraphPattern); + try { + enterOuterAlt(_localctx, 1); + { + setState(2118); + insertPathPatternList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertPathPatternListContext extends ParserRuleContext { + public List insertPathPattern() { + return getRuleContexts(InsertPathPatternContext.class); + } + public InsertPathPatternContext insertPathPattern(int i) { + return getRuleContext(InsertPathPatternContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public InsertPathPatternListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertPathPatternList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertPathPatternList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertPathPatternList(this); + } + } + + public final InsertPathPatternListContext insertPathPatternList() throws RecognitionException { + InsertPathPatternListContext _localctx = new InsertPathPatternListContext(_ctx, getState()); + enterRule(_localctx, 324, RULE_insertPathPatternList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2120); + insertPathPattern(); + setState(2125); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2121); + match(COMMA); + setState(2122); + insertPathPattern(); + } + } + setState(2127); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertPathPatternContext extends ParserRuleContext { + public List insertNodePattern() { + return getRuleContexts(InsertNodePatternContext.class); + } + public InsertNodePatternContext insertNodePattern(int i) { + return getRuleContext(InsertNodePatternContext.class,i); + } + public List insertEdgePattern() { + return getRuleContexts(InsertEdgePatternContext.class); + } + public InsertEdgePatternContext insertEdgePattern(int i) { + return getRuleContext(InsertEdgePatternContext.class,i); + } + public InsertPathPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertPathPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertPathPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertPathPattern(this); + } + } + + public final InsertPathPatternContext insertPathPattern() throws RecognitionException { + InsertPathPatternContext _localctx = new InsertPathPatternContext(_ctx, getState()); + enterRule(_localctx, 326, RULE_insertPathPattern); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2128); + insertNodePattern(); + setState(2134); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la - 338)) & ~0x3f) == 0 && ((1L << (_la - 338)) & 131137L) != 0) { + { + { + setState(2129); + insertEdgePattern(); + setState(2130); + insertNodePattern(); + } + } + setState(2136); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertNodePatternContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public InsertElementPatternFillerContext insertElementPatternFiller() { + return getRuleContext(InsertElementPatternFillerContext.class,0); + } + public InsertNodePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertNodePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertNodePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertNodePattern(this); + } + } + + public final InsertNodePatternContext insertNodePattern() throws RecognitionException { + InsertNodePatternContext _localctx = new InsertNodePatternContext(_ctx, getState()); + enterRule(_localctx, 328, RULE_insertNodePattern); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2137); + match(LEFT_PAREN); + setState(2139); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0 || _la==COLON || _la==LEFT_BRACE) { + { + setState(2138); + insertElementPatternFiller(); + } + } + + setState(2141); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertEdgePatternContext extends ParserRuleContext { + public InsertEdgePointingLeftContext insertEdgePointingLeft() { + return getRuleContext(InsertEdgePointingLeftContext.class,0); + } + public InsertEdgePointingRightContext insertEdgePointingRight() { + return getRuleContext(InsertEdgePointingRightContext.class,0); + } + public InsertEdgeUndirectedContext insertEdgeUndirected() { + return getRuleContext(InsertEdgeUndirectedContext.class,0); + } + public InsertEdgePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertEdgePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertEdgePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertEdgePattern(this); + } + } + + public final InsertEdgePatternContext insertEdgePattern() throws RecognitionException { + InsertEdgePatternContext _localctx = new InsertEdgePatternContext(_ctx, getState()); + enterRule(_localctx, 330, RULE_insertEdgePattern); + try { + setState(2146); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LEFT_ARROW_BRACKET: + enterOuterAlt(_localctx, 1); + { + setState(2143); + insertEdgePointingLeft(); + } + break; + case MINUS_LEFT_BRACKET: + enterOuterAlt(_localctx, 2); + { + setState(2144); + insertEdgePointingRight(); + } + break; + case TILDE_LEFT_BRACKET: + enterOuterAlt(_localctx, 3); + { + setState(2145); + insertEdgeUndirected(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertEdgePointingLeftContext extends ParserRuleContext { + public TerminalNode LEFT_ARROW_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ARROW_BRACKET, 0); } + public TerminalNode RIGHT_BRACKET_MINUS() { return getToken(GQL_20240412Parser.RIGHT_BRACKET_MINUS, 0); } + public InsertElementPatternFillerContext insertElementPatternFiller() { + return getRuleContext(InsertElementPatternFillerContext.class,0); + } + public InsertEdgePointingLeftContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertEdgePointingLeft; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertEdgePointingLeft(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertEdgePointingLeft(this); + } + } + + public final InsertEdgePointingLeftContext insertEdgePointingLeft() throws RecognitionException { + InsertEdgePointingLeftContext _localctx = new InsertEdgePointingLeftContext(_ctx, getState()); + enterRule(_localctx, 332, RULE_insertEdgePointingLeft); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2148); + match(LEFT_ARROW_BRACKET); + setState(2150); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0 || _la==COLON || _la==LEFT_BRACE) { + { + setState(2149); + insertElementPatternFiller(); + } + } + + setState(2152); + match(RIGHT_BRACKET_MINUS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertEdgePointingRightContext extends ParserRuleContext { + public TerminalNode MINUS_LEFT_BRACKET() { return getToken(GQL_20240412Parser.MINUS_LEFT_BRACKET, 0); } + public TerminalNode BRACKET_RIGHT_ARROW() { return getToken(GQL_20240412Parser.BRACKET_RIGHT_ARROW, 0); } + public InsertElementPatternFillerContext insertElementPatternFiller() { + return getRuleContext(InsertElementPatternFillerContext.class,0); + } + public InsertEdgePointingRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertEdgePointingRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertEdgePointingRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertEdgePointingRight(this); + } + } + + public final InsertEdgePointingRightContext insertEdgePointingRight() throws RecognitionException { + InsertEdgePointingRightContext _localctx = new InsertEdgePointingRightContext(_ctx, getState()); + enterRule(_localctx, 334, RULE_insertEdgePointingRight); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2154); + match(MINUS_LEFT_BRACKET); + setState(2156); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0 || _la==COLON || _la==LEFT_BRACE) { + { + setState(2155); + insertElementPatternFiller(); + } + } + + setState(2158); + match(BRACKET_RIGHT_ARROW); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertEdgeUndirectedContext extends ParserRuleContext { + public TerminalNode TILDE_LEFT_BRACKET() { return getToken(GQL_20240412Parser.TILDE_LEFT_BRACKET, 0); } + public TerminalNode RIGHT_BRACKET_TILDE() { return getToken(GQL_20240412Parser.RIGHT_BRACKET_TILDE, 0); } + public InsertElementPatternFillerContext insertElementPatternFiller() { + return getRuleContext(InsertElementPatternFillerContext.class,0); + } + public InsertEdgeUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertEdgeUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertEdgeUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertEdgeUndirected(this); + } + } + + public final InsertEdgeUndirectedContext insertEdgeUndirected() throws RecognitionException { + InsertEdgeUndirectedContext _localctx = new InsertEdgeUndirectedContext(_ctx, getState()); + enterRule(_localctx, 336, RULE_insertEdgeUndirected); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2160); + match(TILDE_LEFT_BRACKET); + setState(2162); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0 || _la==COLON || _la==LEFT_BRACE) { + { + setState(2161); + insertElementPatternFiller(); + } + } + + setState(2164); + match(RIGHT_BRACKET_TILDE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InsertElementPatternFillerContext extends ParserRuleContext { + public ElementVariableDeclarationContext elementVariableDeclaration() { + return getRuleContext(ElementVariableDeclarationContext.class,0); + } + public LabelAndPropertySetSpecificationContext labelAndPropertySetSpecification() { + return getRuleContext(LabelAndPropertySetSpecificationContext.class,0); + } + public InsertElementPatternFillerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_insertElementPatternFiller; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterInsertElementPatternFiller(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitInsertElementPatternFiller(this); + } + } + + public final InsertElementPatternFillerContext insertElementPatternFiller() throws RecognitionException { + InsertElementPatternFillerContext _localctx = new InsertElementPatternFillerContext(_ctx, getState()); + enterRule(_localctx, 338, RULE_insertElementPatternFiller); + int _la; + try { + setState(2174); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,168,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2166); + elementVariableDeclaration(); + setState(2168); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || _la==COLON || _la==LEFT_BRACE) { + { + setState(2167); + labelAndPropertySetSpecification(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2171); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0) { + { + setState(2170); + elementVariableDeclaration(); + } + } + + setState(2173); + labelAndPropertySetSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabelAndPropertySetSpecificationContext extends ParserRuleContext { + public IsOrColonContext isOrColon() { + return getRuleContext(IsOrColonContext.class,0); + } + public LabelSetSpecificationContext labelSetSpecification() { + return getRuleContext(LabelSetSpecificationContext.class,0); + } + public ElementPropertySpecificationContext elementPropertySpecification() { + return getRuleContext(ElementPropertySpecificationContext.class,0); + } + public LabelAndPropertySetSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labelAndPropertySetSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelAndPropertySetSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelAndPropertySetSpecification(this); + } + } + + public final LabelAndPropertySetSpecificationContext labelAndPropertySetSpecification() throws RecognitionException { + LabelAndPropertySetSpecificationContext _localctx = new LabelAndPropertySetSpecificationContext(_ctx, getState()); + enterRule(_localctx, 340, RULE_labelAndPropertySetSpecification); + int _la; + try { + setState(2187); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2176); + isOrColon(); + setState(2177); + labelSetSpecification(); + setState(2179); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LEFT_BRACE) { + { + setState(2178); + elementPropertySpecification(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2184); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || _la==COLON) { + { + setState(2181); + isOrColon(); + setState(2182); + labelSetSpecification(); + } + } + + setState(2186); + elementPropertySpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathPatternPrefixContext extends ParserRuleContext { + public PathModePrefixContext pathModePrefix() { + return getRuleContext(PathModePrefixContext.class,0); + } + public PathSearchPrefixContext pathSearchPrefix() { + return getRuleContext(PathSearchPrefixContext.class,0); + } + public PathPatternPrefixContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathPatternPrefix; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathPatternPrefix(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathPatternPrefix(this); + } + } + + public final PathPatternPrefixContext pathPatternPrefix() throws RecognitionException { + PathPatternPrefixContext _localctx = new PathPatternPrefixContext(_ctx, getState()); + enterRule(_localctx, 342, RULE_pathPatternPrefix); + try { + setState(2191); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ACYCLIC: + case SIMPLE: + case TRAIL: + case WALK: + enterOuterAlt(_localctx, 1); + { + setState(2189); + pathModePrefix(); + } + break; + case ALL: + case ANY: + case SHORTEST: + enterOuterAlt(_localctx, 2); + { + setState(2190); + pathSearchPrefix(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathModePrefixContext extends ParserRuleContext { + public PathModeContext pathMode() { + return getRuleContext(PathModeContext.class,0); + } + public PathOrPathsContext pathOrPaths() { + return getRuleContext(PathOrPathsContext.class,0); + } + public PathModePrefixContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathModePrefix; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathModePrefix(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathModePrefix(this); + } + } + + public final PathModePrefixContext pathModePrefix() throws RecognitionException { + PathModePrefixContext _localctx = new PathModePrefixContext(_ctx, getState()); + enterRule(_localctx, 344, RULE_pathModePrefix); + try { + enterOuterAlt(_localctx, 1); + { + setState(2193); + pathMode(); + setState(2195); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,173,_ctx) ) { + case 1: + { + setState(2194); + pathOrPaths(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathModeContext extends ParserRuleContext { + public TerminalNode WALK() { return getToken(GQL_20240412Parser.WALK, 0); } + public TerminalNode TRAIL() { return getToken(GQL_20240412Parser.TRAIL, 0); } + public TerminalNode SIMPLE() { return getToken(GQL_20240412Parser.SIMPLE, 0); } + public TerminalNode ACYCLIC() { return getToken(GQL_20240412Parser.ACYCLIC, 0); } + public PathModeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathMode; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathMode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathMode(this); + } + } + + public final PathModeContext pathMode() throws RecognitionException { + PathModeContext _localctx = new PathModeContext(_ctx, getState()); + enterRule(_localctx, 346, RULE_pathMode); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2197); + _la = _input.LA(1); + if ( !((((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 18159121727489L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathSearchPrefixContext extends ParserRuleContext { + public AllPathSearchContext allPathSearch() { + return getRuleContext(AllPathSearchContext.class,0); + } + public AnyPathSearchContext anyPathSearch() { + return getRuleContext(AnyPathSearchContext.class,0); + } + public ShortestPathSearchContext shortestPathSearch() { + return getRuleContext(ShortestPathSearchContext.class,0); + } + public PathSearchPrefixContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathSearchPrefix; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathSearchPrefix(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathSearchPrefix(this); + } + } + + public final PathSearchPrefixContext pathSearchPrefix() throws RecognitionException { + PathSearchPrefixContext _localctx = new PathSearchPrefixContext(_ctx, getState()); + enterRule(_localctx, 348, RULE_pathSearchPrefix); + try { + setState(2202); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,174,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2199); + allPathSearch(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2200); + anyPathSearch(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2201); + shortestPathSearch(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AllPathSearchContext extends ParserRuleContext { + public TerminalNode ALL() { return getToken(GQL_20240412Parser.ALL, 0); } + public PathModeContext pathMode() { + return getRuleContext(PathModeContext.class,0); + } + public PathOrPathsContext pathOrPaths() { + return getRuleContext(PathOrPathsContext.class,0); + } + public AllPathSearchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_allPathSearch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAllPathSearch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAllPathSearch(this); + } + } + + public final AllPathSearchContext allPathSearch() throws RecognitionException { + AllPathSearchContext _localctx = new AllPathSearchContext(_ctx, getState()); + enterRule(_localctx, 350, RULE_allPathSearch); + try { + enterOuterAlt(_localctx, 1); + { + setState(2204); + match(ALL); + setState(2206); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,175,_ctx) ) { + case 1: + { + setState(2205); + pathMode(); + } + break; + } + setState(2209); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,176,_ctx) ) { + case 1: + { + setState(2208); + pathOrPaths(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathOrPathsContext extends ParserRuleContext { + public TerminalNode PATH() { return getToken(GQL_20240412Parser.PATH, 0); } + public TerminalNode PATHS() { return getToken(GQL_20240412Parser.PATHS, 0); } + public PathOrPathsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathOrPaths; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathOrPaths(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathOrPaths(this); + } + } + + public final PathOrPathsContext pathOrPaths() throws RecognitionException { + PathOrPathsContext _localctx = new PathOrPathsContext(_ctx, getState()); + enterRule(_localctx, 352, RULE_pathOrPaths); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2211); + _la = _input.LA(1); + if ( !(_la==PATH || _la==PATHS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnyPathSearchContext extends ParserRuleContext { + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public NumberOfPathsContext numberOfPaths() { + return getRuleContext(NumberOfPathsContext.class,0); + } + public PathModeContext pathMode() { + return getRuleContext(PathModeContext.class,0); + } + public PathOrPathsContext pathOrPaths() { + return getRuleContext(PathOrPathsContext.class,0); + } + public AnyPathSearchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_anyPathSearch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAnyPathSearch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAnyPathSearch(this); + } + } + + public final AnyPathSearchContext anyPathSearch() throws RecognitionException { + AnyPathSearchContext _localctx = new AnyPathSearchContext(_ctx, getState()); + enterRule(_localctx, 354, RULE_anyPathSearch); + try { + enterOuterAlt(_localctx, 1); + { + setState(2213); + match(ANY); + setState(2215); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) { + case 1: + { + setState(2214); + numberOfPaths(); + } + break; + } + setState(2218); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) { + case 1: + { + setState(2217); + pathMode(); + } + break; + } + setState(2221); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,179,_ctx) ) { + case 1: + { + setState(2220); + pathOrPaths(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumberOfPathsContext extends ParserRuleContext { + public NonNegativeIntegerSpecificationContext nonNegativeIntegerSpecification() { + return getRuleContext(NonNegativeIntegerSpecificationContext.class,0); + } + public NumberOfPathsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numberOfPaths; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumberOfPaths(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumberOfPaths(this); + } + } + + public final NumberOfPathsContext numberOfPaths() throws RecognitionException { + NumberOfPathsContext _localctx = new NumberOfPathsContext(_ctx, getState()); + enterRule(_localctx, 356, RULE_numberOfPaths); + try { + enterOuterAlt(_localctx, 1); + { + setState(2223); + nonNegativeIntegerSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ShortestPathSearchContext extends ParserRuleContext { + public AllShortestPathSearchContext allShortestPathSearch() { + return getRuleContext(AllShortestPathSearchContext.class,0); + } + public AnyShortestPathSearchContext anyShortestPathSearch() { + return getRuleContext(AnyShortestPathSearchContext.class,0); + } + public CountedShortestPathSearchContext countedShortestPathSearch() { + return getRuleContext(CountedShortestPathSearchContext.class,0); + } + public CountedShortestGroupSearchContext countedShortestGroupSearch() { + return getRuleContext(CountedShortestGroupSearchContext.class,0); + } + public ShortestPathSearchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shortestPathSearch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterShortestPathSearch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitShortestPathSearch(this); + } + } + + public final ShortestPathSearchContext shortestPathSearch() throws RecognitionException { + ShortestPathSearchContext _localctx = new ShortestPathSearchContext(_ctx, getState()); + enterRule(_localctx, 358, RULE_shortestPathSearch); + try { + setState(2229); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,180,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2225); + allShortestPathSearch(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2226); + anyShortestPathSearch(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2227); + countedShortestPathSearch(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2228); + countedShortestGroupSearch(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AllShortestPathSearchContext extends ParserRuleContext { + public TerminalNode ALL() { return getToken(GQL_20240412Parser.ALL, 0); } + public TerminalNode SHORTEST() { return getToken(GQL_20240412Parser.SHORTEST, 0); } + public PathModeContext pathMode() { + return getRuleContext(PathModeContext.class,0); + } + public PathOrPathsContext pathOrPaths() { + return getRuleContext(PathOrPathsContext.class,0); + } + public AllShortestPathSearchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_allShortestPathSearch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAllShortestPathSearch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAllShortestPathSearch(this); + } + } + + public final AllShortestPathSearchContext allShortestPathSearch() throws RecognitionException { + AllShortestPathSearchContext _localctx = new AllShortestPathSearchContext(_ctx, getState()); + enterRule(_localctx, 360, RULE_allShortestPathSearch); + try { + enterOuterAlt(_localctx, 1); + { + setState(2231); + match(ALL); + setState(2232); + match(SHORTEST); + setState(2234); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,181,_ctx) ) { + case 1: + { + setState(2233); + pathMode(); + } + break; + } + setState(2237); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,182,_ctx) ) { + case 1: + { + setState(2236); + pathOrPaths(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnyShortestPathSearchContext extends ParserRuleContext { + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public TerminalNode SHORTEST() { return getToken(GQL_20240412Parser.SHORTEST, 0); } + public PathModeContext pathMode() { + return getRuleContext(PathModeContext.class,0); + } + public PathOrPathsContext pathOrPaths() { + return getRuleContext(PathOrPathsContext.class,0); + } + public AnyShortestPathSearchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_anyShortestPathSearch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAnyShortestPathSearch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAnyShortestPathSearch(this); + } + } + + public final AnyShortestPathSearchContext anyShortestPathSearch() throws RecognitionException { + AnyShortestPathSearchContext _localctx = new AnyShortestPathSearchContext(_ctx, getState()); + enterRule(_localctx, 362, RULE_anyShortestPathSearch); + try { + enterOuterAlt(_localctx, 1); + { + setState(2239); + match(ANY); + setState(2240); + match(SHORTEST); + setState(2242); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,183,_ctx) ) { + case 1: + { + setState(2241); + pathMode(); + } + break; + } + setState(2245); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,184,_ctx) ) { + case 1: + { + setState(2244); + pathOrPaths(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CountedShortestPathSearchContext extends ParserRuleContext { + public TerminalNode SHORTEST() { return getToken(GQL_20240412Parser.SHORTEST, 0); } + public NumberOfPathsContext numberOfPaths() { + return getRuleContext(NumberOfPathsContext.class,0); + } + public PathModeContext pathMode() { + return getRuleContext(PathModeContext.class,0); + } + public PathOrPathsContext pathOrPaths() { + return getRuleContext(PathOrPathsContext.class,0); + } + public CountedShortestPathSearchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_countedShortestPathSearch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCountedShortestPathSearch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCountedShortestPathSearch(this); + } + } + + public final CountedShortestPathSearchContext countedShortestPathSearch() throws RecognitionException { + CountedShortestPathSearchContext _localctx = new CountedShortestPathSearchContext(_ctx, getState()); + enterRule(_localctx, 364, RULE_countedShortestPathSearch); + try { + enterOuterAlt(_localctx, 1); + { + setState(2247); + match(SHORTEST); + setState(2248); + numberOfPaths(); + setState(2250); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,185,_ctx) ) { + case 1: + { + setState(2249); + pathMode(); + } + break; + } + setState(2253); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { + case 1: + { + setState(2252); + pathOrPaths(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CountedShortestGroupSearchContext extends ParserRuleContext { + public TerminalNode SHORTEST() { return getToken(GQL_20240412Parser.SHORTEST, 0); } + public TerminalNode GROUP() { return getToken(GQL_20240412Parser.GROUP, 0); } + public TerminalNode GROUPS() { return getToken(GQL_20240412Parser.GROUPS, 0); } + public NumberOfGroupsContext numberOfGroups() { + return getRuleContext(NumberOfGroupsContext.class,0); + } + public PathModeContext pathMode() { + return getRuleContext(PathModeContext.class,0); + } + public PathOrPathsContext pathOrPaths() { + return getRuleContext(PathOrPathsContext.class,0); + } + public CountedShortestGroupSearchContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_countedShortestGroupSearch; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCountedShortestGroupSearch(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCountedShortestGroupSearch(this); + } + } + + public final CountedShortestGroupSearchContext countedShortestGroupSearch() throws RecognitionException { + CountedShortestGroupSearchContext _localctx = new CountedShortestGroupSearchContext(_ctx, getState()); + enterRule(_localctx, 366, RULE_countedShortestGroupSearch); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2255); + match(SHORTEST); + setState(2257); + _errHandler.sync(this); + _la = _input.LA(1); + if (((_la) & ~0x3f) == 0 && ((1L << _la) & 983040L) != 0 || _la==GENERAL_PARAMETER_REFERENCE) { + { + setState(2256); + numberOfGroups(); + } + } + + setState(2260); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 18159121727489L) != 0) { + { + setState(2259); + pathMode(); + } + } + + setState(2263); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PATH || _la==PATHS) { + { + setState(2262); + pathOrPaths(); + } + } + + setState(2265); + _la = _input.LA(1); + if ( !(_la==GROUP || _la==GROUPS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumberOfGroupsContext extends ParserRuleContext { + public NonNegativeIntegerSpecificationContext nonNegativeIntegerSpecification() { + return getRuleContext(NonNegativeIntegerSpecificationContext.class,0); + } + public NumberOfGroupsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numberOfGroups; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumberOfGroups(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumberOfGroups(this); + } + } + + public final NumberOfGroupsContext numberOfGroups() throws RecognitionException { + NumberOfGroupsContext _localctx = new NumberOfGroupsContext(_ctx, getState()); + enterRule(_localctx, 368, RULE_numberOfGroups); + try { + enterOuterAlt(_localctx, 1); + { + setState(2267); + nonNegativeIntegerSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathPatternExpressionContext extends ParserRuleContext { + public PathPatternExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathPatternExpression; } + + public PathPatternExpressionContext() { } + public void copyFrom(PathPatternExpressionContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PpePatternUnionContext extends PathPatternExpressionContext { + public List pathTerm() { + return getRuleContexts(PathTermContext.class); + } + public PathTermContext pathTerm(int i) { + return getRuleContext(PathTermContext.class,i); + } + public List VERTICAL_BAR() { return getTokens(GQL_20240412Parser.VERTICAL_BAR); } + public TerminalNode VERTICAL_BAR(int i) { + return getToken(GQL_20240412Parser.VERTICAL_BAR, i); + } + public PpePatternUnionContext(PathPatternExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPpePatternUnion(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPpePatternUnion(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PpePathTermContext extends PathPatternExpressionContext { + public PathTermContext pathTerm() { + return getRuleContext(PathTermContext.class,0); + } + public PpePathTermContext(PathPatternExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPpePathTerm(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPpePathTerm(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PpeMultisetAlternationContext extends PathPatternExpressionContext { + public List pathTerm() { + return getRuleContexts(PathTermContext.class); + } + public PathTermContext pathTerm(int i) { + return getRuleContext(PathTermContext.class,i); + } + public List MULTISET_ALTERNATION_OPERATOR() { return getTokens(GQL_20240412Parser.MULTISET_ALTERNATION_OPERATOR); } + public TerminalNode MULTISET_ALTERNATION_OPERATOR(int i) { + return getToken(GQL_20240412Parser.MULTISET_ALTERNATION_OPERATOR, i); + } + public PpeMultisetAlternationContext(PathPatternExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPpeMultisetAlternation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPpeMultisetAlternation(this); + } + } + + public final PathPatternExpressionContext pathPatternExpression() throws RecognitionException { + PathPatternExpressionContext _localctx = new PathPatternExpressionContext(_ctx, getState()); + enterRule(_localctx, 370, RULE_pathPatternExpression); + try { + int _alt; + setState(2284); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) { + case 1: + _localctx = new PpePathTermContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(2269); + pathTerm(); + } + break; + case 2: + _localctx = new PpeMultisetAlternationContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(2270); + pathTerm(); + setState(2273); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(2271); + match(MULTISET_ALTERNATION_OPERATOR); + setState(2272); + pathTerm(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(2275); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,190,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + break; + case 3: + _localctx = new PpePatternUnionContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(2277); + pathTerm(); + setState(2280); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(2278); + match(VERTICAL_BAR); + setState(2279); + pathTerm(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(2282); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,191,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathTermContext extends ParserRuleContext { + public List pathFactor() { + return getRuleContexts(PathFactorContext.class); + } + public PathFactorContext pathFactor(int i) { + return getRuleContext(PathFactorContext.class,i); + } + public PathTermContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathTerm; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathTerm(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathTerm(this); + } + } + + public final PathTermContext pathTerm() throws RecognitionException { + PathTermContext _localctx = new PathTermContext(_ctx, getState()); + enterRule(_localctx, 372, RULE_pathTerm); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2287); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(2286); + pathFactor(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(2289); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,193,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathFactorContext extends ParserRuleContext { + public PathFactorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathFactor; } + + public PathFactorContext() { } + public void copyFrom(PathFactorContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PfQuantifiedPathPrimaryContext extends PathFactorContext { + public PathPrimaryContext pathPrimary() { + return getRuleContext(PathPrimaryContext.class,0); + } + public GraphPatternQuantifierContext graphPatternQuantifier() { + return getRuleContext(GraphPatternQuantifierContext.class,0); + } + public PfQuantifiedPathPrimaryContext(PathFactorContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPfQuantifiedPathPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPfQuantifiedPathPrimary(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PfQuestionedPathPrimaryContext extends PathFactorContext { + public PathPrimaryContext pathPrimary() { + return getRuleContext(PathPrimaryContext.class,0); + } + public TerminalNode QUESTION_MARK() { return getToken(GQL_20240412Parser.QUESTION_MARK, 0); } + public PfQuestionedPathPrimaryContext(PathFactorContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPfQuestionedPathPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPfQuestionedPathPrimary(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PfPathPrimaryContext extends PathFactorContext { + public PathPrimaryContext pathPrimary() { + return getRuleContext(PathPrimaryContext.class,0); + } + public PfPathPrimaryContext(PathFactorContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPfPathPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPfPathPrimary(this); + } + } + + public final PathFactorContext pathFactor() throws RecognitionException { + PathFactorContext _localctx = new PathFactorContext(_ctx, getState()); + enterRule(_localctx, 374, RULE_pathFactor); + try { + setState(2298); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,194,_ctx) ) { + case 1: + _localctx = new PfPathPrimaryContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(2291); + pathPrimary(); + } + break; + case 2: + _localctx = new PfQuantifiedPathPrimaryContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(2292); + pathPrimary(); + setState(2293); + graphPatternQuantifier(); + } + break; + case 3: + _localctx = new PfQuestionedPathPrimaryContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(2295); + pathPrimary(); + setState(2296); + match(QUESTION_MARK); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathPrimaryContext extends ParserRuleContext { + public PathPrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathPrimary; } + + public PathPrimaryContext() { } + public void copyFrom(PathPrimaryContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PpParenthesizedPathPatternExpressionContext extends PathPrimaryContext { + public ParenthesizedPathPatternExpressionContext parenthesizedPathPatternExpression() { + return getRuleContext(ParenthesizedPathPatternExpressionContext.class,0); + } + public PpParenthesizedPathPatternExpressionContext(PathPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPpParenthesizedPathPatternExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPpParenthesizedPathPatternExpression(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PpElementPatternContext extends PathPrimaryContext { + public ElementPatternContext elementPattern() { + return getRuleContext(ElementPatternContext.class,0); + } + public PpElementPatternContext(PathPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPpElementPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPpElementPattern(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PpSimplifiedPathPatternExpressionContext extends PathPrimaryContext { + public SimplifiedPathPatternExpressionContext simplifiedPathPatternExpression() { + return getRuleContext(SimplifiedPathPatternExpressionContext.class,0); + } + public PpSimplifiedPathPatternExpressionContext(PathPrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPpSimplifiedPathPatternExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPpSimplifiedPathPatternExpression(this); + } + } + + public final PathPrimaryContext pathPrimary() throws RecognitionException { + PathPrimaryContext _localctx = new PathPrimaryContext(_ctx, getState()); + enterRule(_localctx, 376, RULE_pathPrimary); + try { + setState(2303); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) { + case 1: + _localctx = new PpElementPatternContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(2300); + elementPattern(); + } + break; + case 2: + _localctx = new PpParenthesizedPathPatternExpressionContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(2301); + parenthesizedPathPatternExpression(); + } + break; + case 3: + _localctx = new PpSimplifiedPathPatternExpressionContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(2302); + simplifiedPathPatternExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementPatternContext extends ParserRuleContext { + public NodePatternContext nodePattern() { + return getRuleContext(NodePatternContext.class,0); + } + public EdgePatternContext edgePattern() { + return getRuleContext(EdgePatternContext.class,0); + } + public ElementPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementPattern(this); + } + } + + public final ElementPatternContext elementPattern() throws RecognitionException { + ElementPatternContext _localctx = new ElementPatternContext(_ctx, getState()); + enterRule(_localctx, 378, RULE_elementPattern); + try { + setState(2307); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LEFT_PAREN: + enterOuterAlt(_localctx, 1); + { + setState(2305); + nodePattern(); + } + break; + case LEFT_ARROW: + case LEFT_ARROW_TILDE: + case LEFT_ARROW_BRACKET: + case LEFT_ARROW_TILDE_BRACKET: + case LEFT_MINUS_RIGHT: + case MINUS_LEFT_BRACKET: + case RIGHT_ARROW: + case TILDE_LEFT_BRACKET: + case TILDE_RIGHT_ARROW: + case MINUS_SIGN: + case TILDE: + enterOuterAlt(_localctx, 2); + { + setState(2306); + edgePattern(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodePatternContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ElementPatternFillerContext elementPatternFiller() { + return getRuleContext(ElementPatternFillerContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public NodePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodePattern(this); + } + } + + public final NodePatternContext nodePattern() throws RecognitionException { + NodePatternContext _localctx = new NodePatternContext(_ctx, getState()); + enterRule(_localctx, 380, RULE_nodePattern); + try { + enterOuterAlt(_localctx, 1); + { + setState(2309); + match(LEFT_PAREN); + setState(2310); + elementPatternFiller(); + setState(2311); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementPatternFillerContext extends ParserRuleContext { + public ElementVariableDeclarationContext elementVariableDeclaration() { + return getRuleContext(ElementVariableDeclarationContext.class,0); + } + public IsLabelExpressionContext isLabelExpression() { + return getRuleContext(IsLabelExpressionContext.class,0); + } + public ElementPatternPredicateContext elementPatternPredicate() { + return getRuleContext(ElementPatternPredicateContext.class,0); + } + public ElementPatternFillerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementPatternFiller; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementPatternFiller(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementPatternFiller(this); + } + } + + public final ElementPatternFillerContext elementPatternFiller() throws RecognitionException { + ElementPatternFillerContext _localctx = new ElementPatternFillerContext(_ctx, getState()); + enterRule(_localctx, 382, RULE_elementPatternFiller); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2314); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0) { + { + setState(2313); + elementVariableDeclaration(); + } + } + + setState(2317); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || _la==COLON) { + { + setState(2316); + isLabelExpression(); + } + } + + setState(2320); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE || _la==LEFT_BRACE) { + { + setState(2319); + elementPatternPredicate(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementVariableDeclarationContext extends ParserRuleContext { + public ElementVariableContext elementVariable() { + return getRuleContext(ElementVariableContext.class,0); + } + public TerminalNode TEMP() { return getToken(GQL_20240412Parser.TEMP, 0); } + public ElementVariableDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementVariableDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementVariableDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementVariableDeclaration(this); + } + } + + public final ElementVariableDeclarationContext elementVariableDeclaration() throws RecognitionException { + ElementVariableDeclarationContext _localctx = new ElementVariableDeclarationContext(_ctx, getState()); + enterRule(_localctx, 384, RULE_elementVariableDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(2323); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { + case 1: + { + setState(2322); + match(TEMP); + } + break; + } + setState(2325); + elementVariable(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IsLabelExpressionContext extends ParserRuleContext { + public IsOrColonContext isOrColon() { + return getRuleContext(IsOrColonContext.class,0); + } + public LabelExpressionContext labelExpression() { + return getRuleContext(LabelExpressionContext.class,0); + } + public IsLabelExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_isLabelExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterIsLabelExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitIsLabelExpression(this); + } + } + + public final IsLabelExpressionContext isLabelExpression() throws RecognitionException { + IsLabelExpressionContext _localctx = new IsLabelExpressionContext(_ctx, getState()); + enterRule(_localctx, 386, RULE_isLabelExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(2327); + isOrColon(); + setState(2328); + labelExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IsOrColonContext extends ParserRuleContext { + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TerminalNode COLON() { return getToken(GQL_20240412Parser.COLON, 0); } + public IsOrColonContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_isOrColon; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterIsOrColon(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitIsOrColon(this); + } + } + + public final IsOrColonContext isOrColon() throws RecognitionException { + IsOrColonContext _localctx = new IsOrColonContext(_ctx, getState()); + enterRule(_localctx, 388, RULE_isOrColon); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2330); + _la = _input.LA(1); + if ( !(_la==IS || _la==COLON) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementPatternPredicateContext extends ParserRuleContext { + public ElementPatternWhereClauseContext elementPatternWhereClause() { + return getRuleContext(ElementPatternWhereClauseContext.class,0); + } + public ElementPropertySpecificationContext elementPropertySpecification() { + return getRuleContext(ElementPropertySpecificationContext.class,0); + } + public ElementPatternPredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementPatternPredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementPatternPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementPatternPredicate(this); + } + } + + public final ElementPatternPredicateContext elementPatternPredicate() throws RecognitionException { + ElementPatternPredicateContext _localctx = new ElementPatternPredicateContext(_ctx, getState()); + enterRule(_localctx, 390, RULE_elementPatternPredicate); + try { + setState(2334); + _errHandler.sync(this); + switch (_input.LA(1)) { + case WHERE: + enterOuterAlt(_localctx, 1); + { + setState(2332); + elementPatternWhereClause(); + } + break; + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(2333); + elementPropertySpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementPatternWhereClauseContext extends ParserRuleContext { + public TerminalNode WHERE() { return getToken(GQL_20240412Parser.WHERE, 0); } + public SearchConditionContext searchCondition() { + return getRuleContext(SearchConditionContext.class,0); + } + public ElementPatternWhereClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementPatternWhereClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementPatternWhereClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementPatternWhereClause(this); + } + } + + public final ElementPatternWhereClauseContext elementPatternWhereClause() throws RecognitionException { + ElementPatternWhereClauseContext _localctx = new ElementPatternWhereClauseContext(_ctx, getState()); + enterRule(_localctx, 392, RULE_elementPatternWhereClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2336); + match(WHERE); + setState(2337); + searchCondition(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementPropertySpecificationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public PropertyKeyValuePairListContext propertyKeyValuePairList() { + return getRuleContext(PropertyKeyValuePairListContext.class,0); + } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public ElementPropertySpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementPropertySpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementPropertySpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementPropertySpecification(this); + } + } + + public final ElementPropertySpecificationContext elementPropertySpecification() throws RecognitionException { + ElementPropertySpecificationContext _localctx = new ElementPropertySpecificationContext(_ctx, getState()); + enterRule(_localctx, 394, RULE_elementPropertySpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(2339); + match(LEFT_BRACE); + setState(2340); + propertyKeyValuePairList(); + setState(2341); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyKeyValuePairListContext extends ParserRuleContext { + public List propertyKeyValuePair() { + return getRuleContexts(PropertyKeyValuePairContext.class); + } + public PropertyKeyValuePairContext propertyKeyValuePair(int i) { + return getRuleContext(PropertyKeyValuePairContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public PropertyKeyValuePairListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyKeyValuePairList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPropertyKeyValuePairList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPropertyKeyValuePairList(this); + } + } + + public final PropertyKeyValuePairListContext propertyKeyValuePairList() throws RecognitionException { + PropertyKeyValuePairListContext _localctx = new PropertyKeyValuePairListContext(_ctx, getState()); + enterRule(_localctx, 396, RULE_propertyKeyValuePairList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2343); + propertyKeyValuePair(); + setState(2348); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2344); + match(COMMA); + setState(2345); + propertyKeyValuePair(); + } + } + setState(2350); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyKeyValuePairContext extends ParserRuleContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public TerminalNode COLON() { return getToken(GQL_20240412Parser.COLON, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public PropertyKeyValuePairContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyKeyValuePair; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPropertyKeyValuePair(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPropertyKeyValuePair(this); + } + } + + public final PropertyKeyValuePairContext propertyKeyValuePair() throws RecognitionException { + PropertyKeyValuePairContext _localctx = new PropertyKeyValuePairContext(_ctx, getState()); + enterRule(_localctx, 398, RULE_propertyKeyValuePair); + try { + enterOuterAlt(_localctx, 1); + { + setState(2351); + propertyName(); + setState(2352); + match(COLON); + setState(2353); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgePatternContext extends ParserRuleContext { + public FullEdgePatternContext fullEdgePattern() { + return getRuleContext(FullEdgePatternContext.class,0); + } + public AbbreviatedEdgePatternContext abbreviatedEdgePattern() { + return getRuleContext(AbbreviatedEdgePatternContext.class,0); + } + public EdgePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgePattern(this); + } + } + + public final EdgePatternContext edgePattern() throws RecognitionException { + EdgePatternContext _localctx = new EdgePatternContext(_ctx, getState()); + enterRule(_localctx, 400, RULE_edgePattern); + try { + setState(2357); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LEFT_ARROW_BRACKET: + case LEFT_ARROW_TILDE_BRACKET: + case MINUS_LEFT_BRACKET: + case TILDE_LEFT_BRACKET: + enterOuterAlt(_localctx, 1); + { + setState(2355); + fullEdgePattern(); + } + break; + case LEFT_ARROW: + case LEFT_ARROW_TILDE: + case LEFT_MINUS_RIGHT: + case RIGHT_ARROW: + case TILDE_RIGHT_ARROW: + case MINUS_SIGN: + case TILDE: + enterOuterAlt(_localctx, 2); + { + setState(2356); + abbreviatedEdgePattern(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FullEdgePatternContext extends ParserRuleContext { + public FullEdgePointingLeftContext fullEdgePointingLeft() { + return getRuleContext(FullEdgePointingLeftContext.class,0); + } + public FullEdgeUndirectedContext fullEdgeUndirected() { + return getRuleContext(FullEdgeUndirectedContext.class,0); + } + public FullEdgePointingRightContext fullEdgePointingRight() { + return getRuleContext(FullEdgePointingRightContext.class,0); + } + public FullEdgeLeftOrUndirectedContext fullEdgeLeftOrUndirected() { + return getRuleContext(FullEdgeLeftOrUndirectedContext.class,0); + } + public FullEdgeUndirectedOrRightContext fullEdgeUndirectedOrRight() { + return getRuleContext(FullEdgeUndirectedOrRightContext.class,0); + } + public FullEdgeLeftOrRightContext fullEdgeLeftOrRight() { + return getRuleContext(FullEdgeLeftOrRightContext.class,0); + } + public FullEdgeAnyDirectionContext fullEdgeAnyDirection() { + return getRuleContext(FullEdgeAnyDirectionContext.class,0); + } + public FullEdgePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fullEdgePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFullEdgePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFullEdgePattern(this); + } + } + + public final FullEdgePatternContext fullEdgePattern() throws RecognitionException { + FullEdgePatternContext _localctx = new FullEdgePatternContext(_ctx, getState()); + enterRule(_localctx, 402, RULE_fullEdgePattern); + try { + setState(2366); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,204,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2359); + fullEdgePointingLeft(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2360); + fullEdgeUndirected(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2361); + fullEdgePointingRight(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2362); + fullEdgeLeftOrUndirected(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2363); + fullEdgeUndirectedOrRight(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2364); + fullEdgeLeftOrRight(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2365); + fullEdgeAnyDirection(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FullEdgePointingLeftContext extends ParserRuleContext { + public TerminalNode LEFT_ARROW_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ARROW_BRACKET, 0); } + public ElementPatternFillerContext elementPatternFiller() { + return getRuleContext(ElementPatternFillerContext.class,0); + } + public TerminalNode RIGHT_BRACKET_MINUS() { return getToken(GQL_20240412Parser.RIGHT_BRACKET_MINUS, 0); } + public FullEdgePointingLeftContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fullEdgePointingLeft; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFullEdgePointingLeft(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFullEdgePointingLeft(this); + } + } + + public final FullEdgePointingLeftContext fullEdgePointingLeft() throws RecognitionException { + FullEdgePointingLeftContext _localctx = new FullEdgePointingLeftContext(_ctx, getState()); + enterRule(_localctx, 404, RULE_fullEdgePointingLeft); + try { + enterOuterAlt(_localctx, 1); + { + setState(2368); + match(LEFT_ARROW_BRACKET); + setState(2369); + elementPatternFiller(); + setState(2370); + match(RIGHT_BRACKET_MINUS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FullEdgeUndirectedContext extends ParserRuleContext { + public TerminalNode TILDE_LEFT_BRACKET() { return getToken(GQL_20240412Parser.TILDE_LEFT_BRACKET, 0); } + public ElementPatternFillerContext elementPatternFiller() { + return getRuleContext(ElementPatternFillerContext.class,0); + } + public TerminalNode RIGHT_BRACKET_TILDE() { return getToken(GQL_20240412Parser.RIGHT_BRACKET_TILDE, 0); } + public FullEdgeUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fullEdgeUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFullEdgeUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFullEdgeUndirected(this); + } + } + + public final FullEdgeUndirectedContext fullEdgeUndirected() throws RecognitionException { + FullEdgeUndirectedContext _localctx = new FullEdgeUndirectedContext(_ctx, getState()); + enterRule(_localctx, 406, RULE_fullEdgeUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(2372); + match(TILDE_LEFT_BRACKET); + setState(2373); + elementPatternFiller(); + setState(2374); + match(RIGHT_BRACKET_TILDE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FullEdgePointingRightContext extends ParserRuleContext { + public TerminalNode MINUS_LEFT_BRACKET() { return getToken(GQL_20240412Parser.MINUS_LEFT_BRACKET, 0); } + public ElementPatternFillerContext elementPatternFiller() { + return getRuleContext(ElementPatternFillerContext.class,0); + } + public TerminalNode BRACKET_RIGHT_ARROW() { return getToken(GQL_20240412Parser.BRACKET_RIGHT_ARROW, 0); } + public FullEdgePointingRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fullEdgePointingRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFullEdgePointingRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFullEdgePointingRight(this); + } + } + + public final FullEdgePointingRightContext fullEdgePointingRight() throws RecognitionException { + FullEdgePointingRightContext _localctx = new FullEdgePointingRightContext(_ctx, getState()); + enterRule(_localctx, 408, RULE_fullEdgePointingRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2376); + match(MINUS_LEFT_BRACKET); + setState(2377); + elementPatternFiller(); + setState(2378); + match(BRACKET_RIGHT_ARROW); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FullEdgeLeftOrUndirectedContext extends ParserRuleContext { + public TerminalNode LEFT_ARROW_TILDE_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ARROW_TILDE_BRACKET, 0); } + public ElementPatternFillerContext elementPatternFiller() { + return getRuleContext(ElementPatternFillerContext.class,0); + } + public TerminalNode RIGHT_BRACKET_TILDE() { return getToken(GQL_20240412Parser.RIGHT_BRACKET_TILDE, 0); } + public FullEdgeLeftOrUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fullEdgeLeftOrUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFullEdgeLeftOrUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFullEdgeLeftOrUndirected(this); + } + } + + public final FullEdgeLeftOrUndirectedContext fullEdgeLeftOrUndirected() throws RecognitionException { + FullEdgeLeftOrUndirectedContext _localctx = new FullEdgeLeftOrUndirectedContext(_ctx, getState()); + enterRule(_localctx, 410, RULE_fullEdgeLeftOrUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(2380); + match(LEFT_ARROW_TILDE_BRACKET); + setState(2381); + elementPatternFiller(); + setState(2382); + match(RIGHT_BRACKET_TILDE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FullEdgeUndirectedOrRightContext extends ParserRuleContext { + public TerminalNode TILDE_LEFT_BRACKET() { return getToken(GQL_20240412Parser.TILDE_LEFT_BRACKET, 0); } + public ElementPatternFillerContext elementPatternFiller() { + return getRuleContext(ElementPatternFillerContext.class,0); + } + public TerminalNode BRACKET_TILDE_RIGHT_ARROW() { return getToken(GQL_20240412Parser.BRACKET_TILDE_RIGHT_ARROW, 0); } + public FullEdgeUndirectedOrRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fullEdgeUndirectedOrRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFullEdgeUndirectedOrRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFullEdgeUndirectedOrRight(this); + } + } + + public final FullEdgeUndirectedOrRightContext fullEdgeUndirectedOrRight() throws RecognitionException { + FullEdgeUndirectedOrRightContext _localctx = new FullEdgeUndirectedOrRightContext(_ctx, getState()); + enterRule(_localctx, 412, RULE_fullEdgeUndirectedOrRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2384); + match(TILDE_LEFT_BRACKET); + setState(2385); + elementPatternFiller(); + setState(2386); + match(BRACKET_TILDE_RIGHT_ARROW); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FullEdgeLeftOrRightContext extends ParserRuleContext { + public TerminalNode LEFT_ARROW_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ARROW_BRACKET, 0); } + public ElementPatternFillerContext elementPatternFiller() { + return getRuleContext(ElementPatternFillerContext.class,0); + } + public TerminalNode BRACKET_RIGHT_ARROW() { return getToken(GQL_20240412Parser.BRACKET_RIGHT_ARROW, 0); } + public FullEdgeLeftOrRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fullEdgeLeftOrRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFullEdgeLeftOrRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFullEdgeLeftOrRight(this); + } + } + + public final FullEdgeLeftOrRightContext fullEdgeLeftOrRight() throws RecognitionException { + FullEdgeLeftOrRightContext _localctx = new FullEdgeLeftOrRightContext(_ctx, getState()); + enterRule(_localctx, 414, RULE_fullEdgeLeftOrRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2388); + match(LEFT_ARROW_BRACKET); + setState(2389); + elementPatternFiller(); + setState(2390); + match(BRACKET_RIGHT_ARROW); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FullEdgeAnyDirectionContext extends ParserRuleContext { + public TerminalNode MINUS_LEFT_BRACKET() { return getToken(GQL_20240412Parser.MINUS_LEFT_BRACKET, 0); } + public ElementPatternFillerContext elementPatternFiller() { + return getRuleContext(ElementPatternFillerContext.class,0); + } + public TerminalNode RIGHT_BRACKET_MINUS() { return getToken(GQL_20240412Parser.RIGHT_BRACKET_MINUS, 0); } + public FullEdgeAnyDirectionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fullEdgeAnyDirection; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFullEdgeAnyDirection(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFullEdgeAnyDirection(this); + } + } + + public final FullEdgeAnyDirectionContext fullEdgeAnyDirection() throws RecognitionException { + FullEdgeAnyDirectionContext _localctx = new FullEdgeAnyDirectionContext(_ctx, getState()); + enterRule(_localctx, 416, RULE_fullEdgeAnyDirection); + try { + enterOuterAlt(_localctx, 1); + { + setState(2392); + match(MINUS_LEFT_BRACKET); + setState(2393); + elementPatternFiller(); + setState(2394); + match(RIGHT_BRACKET_MINUS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AbbreviatedEdgePatternContext extends ParserRuleContext { + public TerminalNode LEFT_ARROW() { return getToken(GQL_20240412Parser.LEFT_ARROW, 0); } + public TerminalNode TILDE() { return getToken(GQL_20240412Parser.TILDE, 0); } + public TerminalNode RIGHT_ARROW() { return getToken(GQL_20240412Parser.RIGHT_ARROW, 0); } + public TerminalNode LEFT_ARROW_TILDE() { return getToken(GQL_20240412Parser.LEFT_ARROW_TILDE, 0); } + public TerminalNode TILDE_RIGHT_ARROW() { return getToken(GQL_20240412Parser.TILDE_RIGHT_ARROW, 0); } + public TerminalNode LEFT_MINUS_RIGHT() { return getToken(GQL_20240412Parser.LEFT_MINUS_RIGHT, 0); } + public TerminalNode MINUS_SIGN() { return getToken(GQL_20240412Parser.MINUS_SIGN, 0); } + public AbbreviatedEdgePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_abbreviatedEdgePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAbbreviatedEdgePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAbbreviatedEdgePattern(this); + } + } + + public final AbbreviatedEdgePatternContext abbreviatedEdgePattern() throws RecognitionException { + AbbreviatedEdgePatternContext _localctx = new AbbreviatedEdgePatternContext(_ctx, getState()); + enterRule(_localctx, 418, RULE_abbreviatedEdgePattern); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2396); + _la = _input.LA(1); + if ( !((((_la - 336)) & ~0x3f) == 0 && ((1L << (_la - 336)) & 281612416714771L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ParenthesizedPathPatternExpressionContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public PathPatternExpressionContext pathPatternExpression() { + return getRuleContext(PathPatternExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public SubpathVariableDeclarationContext subpathVariableDeclaration() { + return getRuleContext(SubpathVariableDeclarationContext.class,0); + } + public PathModePrefixContext pathModePrefix() { + return getRuleContext(PathModePrefixContext.class,0); + } + public ParenthesizedPathPatternWhereClauseContext parenthesizedPathPatternWhereClause() { + return getRuleContext(ParenthesizedPathPatternWhereClauseContext.class,0); + } + public ParenthesizedPathPatternExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parenthesizedPathPatternExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterParenthesizedPathPatternExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitParenthesizedPathPatternExpression(this); + } + } + + public final ParenthesizedPathPatternExpressionContext parenthesizedPathPatternExpression() throws RecognitionException { + ParenthesizedPathPatternExpressionContext _localctx = new ParenthesizedPathPatternExpressionContext(_ctx, getState()); + enterRule(_localctx, 420, RULE_parenthesizedPathPatternExpression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2398); + match(LEFT_PAREN); + setState(2400); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) { + case 1: + { + setState(2399); + subpathVariableDeclaration(); + } + break; + } + setState(2403); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 18159121727489L) != 0) { + { + setState(2402); + pathModePrefix(); + } + } + + setState(2405); + pathPatternExpression(); + setState(2407); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(2406); + parenthesizedPathPatternWhereClause(); + } + } + + setState(2409); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SubpathVariableDeclarationContext extends ParserRuleContext { + public SubpathVariableContext subpathVariable() { + return getRuleContext(SubpathVariableContext.class,0); + } + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public SubpathVariableDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_subpathVariableDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSubpathVariableDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSubpathVariableDeclaration(this); + } + } + + public final SubpathVariableDeclarationContext subpathVariableDeclaration() throws RecognitionException { + SubpathVariableDeclarationContext _localctx = new SubpathVariableDeclarationContext(_ctx, getState()); + enterRule(_localctx, 422, RULE_subpathVariableDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(2411); + subpathVariable(); + setState(2412); + match(EQUALS_OPERATOR); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ParenthesizedPathPatternWhereClauseContext extends ParserRuleContext { + public TerminalNode WHERE() { return getToken(GQL_20240412Parser.WHERE, 0); } + public SearchConditionContext searchCondition() { + return getRuleContext(SearchConditionContext.class,0); + } + public ParenthesizedPathPatternWhereClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parenthesizedPathPatternWhereClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterParenthesizedPathPatternWhereClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitParenthesizedPathPatternWhereClause(this); + } + } + + public final ParenthesizedPathPatternWhereClauseContext parenthesizedPathPatternWhereClause() throws RecognitionException { + ParenthesizedPathPatternWhereClauseContext _localctx = new ParenthesizedPathPatternWhereClauseContext(_ctx, getState()); + enterRule(_localctx, 424, RULE_parenthesizedPathPatternWhereClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2414); + match(WHERE); + setState(2415); + searchCondition(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabelExpressionContext extends ParserRuleContext { + public LabelExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labelExpression; } + + public LabelExpressionContext() { } + public void copyFrom(LabelExpressionContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabelExpressionNegationContext extends LabelExpressionContext { + public TerminalNode EXCLAMATION_MARK() { return getToken(GQL_20240412Parser.EXCLAMATION_MARK, 0); } + public LabelExpressionContext labelExpression() { + return getRuleContext(LabelExpressionContext.class,0); + } + public LabelExpressionNegationContext(LabelExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelExpressionNegation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelExpressionNegation(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabelExpressionDisjunctionContext extends LabelExpressionContext { + public List labelExpression() { + return getRuleContexts(LabelExpressionContext.class); + } + public LabelExpressionContext labelExpression(int i) { + return getRuleContext(LabelExpressionContext.class,i); + } + public TerminalNode VERTICAL_BAR() { return getToken(GQL_20240412Parser.VERTICAL_BAR, 0); } + public LabelExpressionDisjunctionContext(LabelExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelExpressionDisjunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelExpressionDisjunction(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabelExpressionParenthesizedContext extends LabelExpressionContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public LabelExpressionContext labelExpression() { + return getRuleContext(LabelExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public LabelExpressionParenthesizedContext(LabelExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelExpressionParenthesized(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelExpressionParenthesized(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabelExpressionWildcardContext extends LabelExpressionContext { + public TerminalNode PERCENT() { return getToken(GQL_20240412Parser.PERCENT, 0); } + public LabelExpressionWildcardContext(LabelExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelExpressionWildcard(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelExpressionWildcard(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabelExpressionConjunctionContext extends LabelExpressionContext { + public List labelExpression() { + return getRuleContexts(LabelExpressionContext.class); + } + public LabelExpressionContext labelExpression(int i) { + return getRuleContext(LabelExpressionContext.class,i); + } + public TerminalNode AMPERSAND() { return getToken(GQL_20240412Parser.AMPERSAND, 0); } + public LabelExpressionConjunctionContext(LabelExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelExpressionConjunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelExpressionConjunction(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabelExpressionNameContext extends LabelExpressionContext { + public LabelNameContext labelName() { + return getRuleContext(LabelNameContext.class,0); + } + public LabelExpressionNameContext(LabelExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelExpressionName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelExpressionName(this); + } + } + + public final LabelExpressionContext labelExpression() throws RecognitionException { + return labelExpression(0); + } + + private LabelExpressionContext labelExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + LabelExpressionContext _localctx = new LabelExpressionContext(_ctx, _parentState); + LabelExpressionContext _prevctx = _localctx; + int _startState = 426; + enterRecursionRule(_localctx, 426, RULE_labelExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2426); + _errHandler.sync(this); + switch (_input.LA(1)) { + case EXCLAMATION_MARK: + { + _localctx = new LabelExpressionNegationContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(2418); + match(EXCLAMATION_MARK); + setState(2419); + labelExpression(6); + } + break; + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case ACCENT_QUOTED_CHARACTER_SEQUENCE: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + { + _localctx = new LabelExpressionNameContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(2420); + labelName(); + } + break; + case PERCENT: + { + _localctx = new LabelExpressionWildcardContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(2421); + match(PERCENT); + } + break; + case LEFT_PAREN: + { + _localctx = new LabelExpressionParenthesizedContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(2422); + match(LEFT_PAREN); + setState(2423); + labelExpression(0); + setState(2424); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(2436); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,210,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(2434); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,209,_ctx) ) { + case 1: + { + _localctx = new LabelExpressionConjunctionContext(new LabelExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_labelExpression); + setState(2428); + if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); + setState(2429); + match(AMPERSAND); + setState(2430); + labelExpression(6); + } + break; + case 2: + { + _localctx = new LabelExpressionDisjunctionContext(new LabelExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_labelExpression); + setState(2431); + if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + setState(2432); + match(VERTICAL_BAR); + setState(2433); + labelExpression(5); + } + break; + } + } + } + setState(2438); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,210,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathVariableReferenceContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public PathVariableReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathVariableReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathVariableReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathVariableReference(this); + } + } + + public final PathVariableReferenceContext pathVariableReference() throws RecognitionException { + PathVariableReferenceContext _localctx = new PathVariableReferenceContext(_ctx, getState()); + enterRule(_localctx, 428, RULE_pathVariableReference); + try { + enterOuterAlt(_localctx, 1); + { + setState(2439); + bindingVariableReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementVariableReferenceContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public ElementVariableReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementVariableReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementVariableReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementVariableReference(this); + } + } + + public final ElementVariableReferenceContext elementVariableReference() throws RecognitionException { + ElementVariableReferenceContext _localctx = new ElementVariableReferenceContext(_ctx, getState()); + enterRule(_localctx, 430, RULE_elementVariableReference); + try { + enterOuterAlt(_localctx, 1); + { + setState(2441); + bindingVariableReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphPatternQuantifierContext extends ParserRuleContext { + public TerminalNode ASTERISK() { return getToken(GQL_20240412Parser.ASTERISK, 0); } + public TerminalNode PLUS_SIGN() { return getToken(GQL_20240412Parser.PLUS_SIGN, 0); } + public FixedQuantifierContext fixedQuantifier() { + return getRuleContext(FixedQuantifierContext.class,0); + } + public GeneralQuantifierContext generalQuantifier() { + return getRuleContext(GeneralQuantifierContext.class,0); + } + public GraphPatternQuantifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphPatternQuantifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphPatternQuantifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphPatternQuantifier(this); + } + } + + public final GraphPatternQuantifierContext graphPatternQuantifier() throws RecognitionException { + GraphPatternQuantifierContext _localctx = new GraphPatternQuantifierContext(_ctx, getState()); + enterRule(_localctx, 432, RULE_graphPatternQuantifier); + try { + setState(2447); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,211,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2443); + match(ASTERISK); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2444); + match(PLUS_SIGN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2445); + fixedQuantifier(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2446); + generalQuantifier(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FixedQuantifierContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public UnsignedIntegerContext unsignedInteger() { + return getRuleContext(UnsignedIntegerContext.class,0); + } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public FixedQuantifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fixedQuantifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFixedQuantifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFixedQuantifier(this); + } + } + + public final FixedQuantifierContext fixedQuantifier() throws RecognitionException { + FixedQuantifierContext _localctx = new FixedQuantifierContext(_ctx, getState()); + enterRule(_localctx, 434, RULE_fixedQuantifier); + try { + enterOuterAlt(_localctx, 1); + { + setState(2449); + match(LEFT_BRACE); + setState(2450); + unsignedInteger(); + setState(2451); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneralQuantifierContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public LowerBoundContext lowerBound() { + return getRuleContext(LowerBoundContext.class,0); + } + public UpperBoundContext upperBound() { + return getRuleContext(UpperBoundContext.class,0); + } + public GeneralQuantifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generalQuantifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGeneralQuantifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGeneralQuantifier(this); + } + } + + public final GeneralQuantifierContext generalQuantifier() throws RecognitionException { + GeneralQuantifierContext _localctx = new GeneralQuantifierContext(_ctx, getState()); + enterRule(_localctx, 436, RULE_generalQuantifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2453); + match(LEFT_BRACE); + setState(2455); + _errHandler.sync(this); + _la = _input.LA(1); + if (((_la) & ~0x3f) == 0 && ((1L << _la) & 983040L) != 0) { + { + setState(2454); + lowerBound(); + } + } + + setState(2457); + match(COMMA); + setState(2459); + _errHandler.sync(this); + _la = _input.LA(1); + if (((_la) & ~0x3f) == 0 && ((1L << _la) & 983040L) != 0) { + { + setState(2458); + upperBound(); + } + } + + setState(2461); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LowerBoundContext extends ParserRuleContext { + public UnsignedIntegerContext unsignedInteger() { + return getRuleContext(UnsignedIntegerContext.class,0); + } + public LowerBoundContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lowerBound; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLowerBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLowerBound(this); + } + } + + public final LowerBoundContext lowerBound() throws RecognitionException { + LowerBoundContext _localctx = new LowerBoundContext(_ctx, getState()); + enterRule(_localctx, 438, RULE_lowerBound); + try { + enterOuterAlt(_localctx, 1); + { + setState(2463); + unsignedInteger(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UpperBoundContext extends ParserRuleContext { + public UnsignedIntegerContext unsignedInteger() { + return getRuleContext(UnsignedIntegerContext.class,0); + } + public UpperBoundContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_upperBound; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterUpperBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitUpperBound(this); + } + } + + public final UpperBoundContext upperBound() throws RecognitionException { + UpperBoundContext _localctx = new UpperBoundContext(_ctx, getState()); + enterRule(_localctx, 440, RULE_upperBound); + try { + enterOuterAlt(_localctx, 1); + { + setState(2465); + unsignedInteger(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedPathPatternExpressionContext extends ParserRuleContext { + public SimplifiedDefaultingLeftContext simplifiedDefaultingLeft() { + return getRuleContext(SimplifiedDefaultingLeftContext.class,0); + } + public SimplifiedDefaultingUndirectedContext simplifiedDefaultingUndirected() { + return getRuleContext(SimplifiedDefaultingUndirectedContext.class,0); + } + public SimplifiedDefaultingRightContext simplifiedDefaultingRight() { + return getRuleContext(SimplifiedDefaultingRightContext.class,0); + } + public SimplifiedDefaultingLeftOrUndirectedContext simplifiedDefaultingLeftOrUndirected() { + return getRuleContext(SimplifiedDefaultingLeftOrUndirectedContext.class,0); + } + public SimplifiedDefaultingUndirectedOrRightContext simplifiedDefaultingUndirectedOrRight() { + return getRuleContext(SimplifiedDefaultingUndirectedOrRightContext.class,0); + } + public SimplifiedDefaultingLeftOrRightContext simplifiedDefaultingLeftOrRight() { + return getRuleContext(SimplifiedDefaultingLeftOrRightContext.class,0); + } + public SimplifiedDefaultingAnyDirectionContext simplifiedDefaultingAnyDirection() { + return getRuleContext(SimplifiedDefaultingAnyDirectionContext.class,0); + } + public SimplifiedPathPatternExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedPathPatternExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedPathPatternExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedPathPatternExpression(this); + } + } + + public final SimplifiedPathPatternExpressionContext simplifiedPathPatternExpression() throws RecognitionException { + SimplifiedPathPatternExpressionContext _localctx = new SimplifiedPathPatternExpressionContext(_ctx, getState()); + enterRule(_localctx, 442, RULE_simplifiedPathPatternExpression); + try { + setState(2474); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,214,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2467); + simplifiedDefaultingLeft(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2468); + simplifiedDefaultingUndirected(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2469); + simplifiedDefaultingRight(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2470); + simplifiedDefaultingLeftOrUndirected(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2471); + simplifiedDefaultingUndirectedOrRight(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2472); + simplifiedDefaultingLeftOrRight(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2473); + simplifiedDefaultingAnyDirection(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedDefaultingLeftContext extends ParserRuleContext { + public TerminalNode LEFT_MINUS_SLASH() { return getToken(GQL_20240412Parser.LEFT_MINUS_SLASH, 0); } + public SimplifiedContentsContext simplifiedContents() { + return getRuleContext(SimplifiedContentsContext.class,0); + } + public TerminalNode SLASH_MINUS() { return getToken(GQL_20240412Parser.SLASH_MINUS, 0); } + public SimplifiedDefaultingLeftContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedDefaultingLeft; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedDefaultingLeft(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedDefaultingLeft(this); + } + } + + public final SimplifiedDefaultingLeftContext simplifiedDefaultingLeft() throws RecognitionException { + SimplifiedDefaultingLeftContext _localctx = new SimplifiedDefaultingLeftContext(_ctx, getState()); + enterRule(_localctx, 444, RULE_simplifiedDefaultingLeft); + try { + enterOuterAlt(_localctx, 1); + { + setState(2476); + match(LEFT_MINUS_SLASH); + setState(2477); + simplifiedContents(); + setState(2478); + match(SLASH_MINUS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedDefaultingUndirectedContext extends ParserRuleContext { + public TerminalNode TILDE_SLASH() { return getToken(GQL_20240412Parser.TILDE_SLASH, 0); } + public SimplifiedContentsContext simplifiedContents() { + return getRuleContext(SimplifiedContentsContext.class,0); + } + public TerminalNode SLASH_TILDE() { return getToken(GQL_20240412Parser.SLASH_TILDE, 0); } + public SimplifiedDefaultingUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedDefaultingUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedDefaultingUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedDefaultingUndirected(this); + } + } + + public final SimplifiedDefaultingUndirectedContext simplifiedDefaultingUndirected() throws RecognitionException { + SimplifiedDefaultingUndirectedContext _localctx = new SimplifiedDefaultingUndirectedContext(_ctx, getState()); + enterRule(_localctx, 446, RULE_simplifiedDefaultingUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(2480); + match(TILDE_SLASH); + setState(2481); + simplifiedContents(); + setState(2482); + match(SLASH_TILDE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedDefaultingRightContext extends ParserRuleContext { + public TerminalNode MINUS_SLASH() { return getToken(GQL_20240412Parser.MINUS_SLASH, 0); } + public SimplifiedContentsContext simplifiedContents() { + return getRuleContext(SimplifiedContentsContext.class,0); + } + public TerminalNode SLASH_MINUS_RIGHT() { return getToken(GQL_20240412Parser.SLASH_MINUS_RIGHT, 0); } + public SimplifiedDefaultingRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedDefaultingRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedDefaultingRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedDefaultingRight(this); + } + } + + public final SimplifiedDefaultingRightContext simplifiedDefaultingRight() throws RecognitionException { + SimplifiedDefaultingRightContext _localctx = new SimplifiedDefaultingRightContext(_ctx, getState()); + enterRule(_localctx, 448, RULE_simplifiedDefaultingRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2484); + match(MINUS_SLASH); + setState(2485); + simplifiedContents(); + setState(2486); + match(SLASH_MINUS_RIGHT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedDefaultingLeftOrUndirectedContext extends ParserRuleContext { + public TerminalNode LEFT_TILDE_SLASH() { return getToken(GQL_20240412Parser.LEFT_TILDE_SLASH, 0); } + public SimplifiedContentsContext simplifiedContents() { + return getRuleContext(SimplifiedContentsContext.class,0); + } + public TerminalNode SLASH_TILDE() { return getToken(GQL_20240412Parser.SLASH_TILDE, 0); } + public SimplifiedDefaultingLeftOrUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedDefaultingLeftOrUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedDefaultingLeftOrUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedDefaultingLeftOrUndirected(this); + } + } + + public final SimplifiedDefaultingLeftOrUndirectedContext simplifiedDefaultingLeftOrUndirected() throws RecognitionException { + SimplifiedDefaultingLeftOrUndirectedContext _localctx = new SimplifiedDefaultingLeftOrUndirectedContext(_ctx, getState()); + enterRule(_localctx, 450, RULE_simplifiedDefaultingLeftOrUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(2488); + match(LEFT_TILDE_SLASH); + setState(2489); + simplifiedContents(); + setState(2490); + match(SLASH_TILDE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedDefaultingUndirectedOrRightContext extends ParserRuleContext { + public TerminalNode TILDE_SLASH() { return getToken(GQL_20240412Parser.TILDE_SLASH, 0); } + public SimplifiedContentsContext simplifiedContents() { + return getRuleContext(SimplifiedContentsContext.class,0); + } + public TerminalNode SLASH_TILDE_RIGHT() { return getToken(GQL_20240412Parser.SLASH_TILDE_RIGHT, 0); } + public SimplifiedDefaultingUndirectedOrRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedDefaultingUndirectedOrRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedDefaultingUndirectedOrRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedDefaultingUndirectedOrRight(this); + } + } + + public final SimplifiedDefaultingUndirectedOrRightContext simplifiedDefaultingUndirectedOrRight() throws RecognitionException { + SimplifiedDefaultingUndirectedOrRightContext _localctx = new SimplifiedDefaultingUndirectedOrRightContext(_ctx, getState()); + enterRule(_localctx, 452, RULE_simplifiedDefaultingUndirectedOrRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2492); + match(TILDE_SLASH); + setState(2493); + simplifiedContents(); + setState(2494); + match(SLASH_TILDE_RIGHT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedDefaultingLeftOrRightContext extends ParserRuleContext { + public TerminalNode LEFT_MINUS_SLASH() { return getToken(GQL_20240412Parser.LEFT_MINUS_SLASH, 0); } + public SimplifiedContentsContext simplifiedContents() { + return getRuleContext(SimplifiedContentsContext.class,0); + } + public TerminalNode SLASH_MINUS_RIGHT() { return getToken(GQL_20240412Parser.SLASH_MINUS_RIGHT, 0); } + public SimplifiedDefaultingLeftOrRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedDefaultingLeftOrRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedDefaultingLeftOrRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedDefaultingLeftOrRight(this); + } + } + + public final SimplifiedDefaultingLeftOrRightContext simplifiedDefaultingLeftOrRight() throws RecognitionException { + SimplifiedDefaultingLeftOrRightContext _localctx = new SimplifiedDefaultingLeftOrRightContext(_ctx, getState()); + enterRule(_localctx, 454, RULE_simplifiedDefaultingLeftOrRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2496); + match(LEFT_MINUS_SLASH); + setState(2497); + simplifiedContents(); + setState(2498); + match(SLASH_MINUS_RIGHT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedDefaultingAnyDirectionContext extends ParserRuleContext { + public TerminalNode MINUS_SLASH() { return getToken(GQL_20240412Parser.MINUS_SLASH, 0); } + public SimplifiedContentsContext simplifiedContents() { + return getRuleContext(SimplifiedContentsContext.class,0); + } + public TerminalNode SLASH_MINUS() { return getToken(GQL_20240412Parser.SLASH_MINUS, 0); } + public SimplifiedDefaultingAnyDirectionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedDefaultingAnyDirection; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedDefaultingAnyDirection(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedDefaultingAnyDirection(this); + } + } + + public final SimplifiedDefaultingAnyDirectionContext simplifiedDefaultingAnyDirection() throws RecognitionException { + SimplifiedDefaultingAnyDirectionContext _localctx = new SimplifiedDefaultingAnyDirectionContext(_ctx, getState()); + enterRule(_localctx, 456, RULE_simplifiedDefaultingAnyDirection); + try { + enterOuterAlt(_localctx, 1); + { + setState(2500); + match(MINUS_SLASH); + setState(2501); + simplifiedContents(); + setState(2502); + match(SLASH_MINUS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedContentsContext extends ParserRuleContext { + public SimplifiedTermContext simplifiedTerm() { + return getRuleContext(SimplifiedTermContext.class,0); + } + public SimplifiedPathUnionContext simplifiedPathUnion() { + return getRuleContext(SimplifiedPathUnionContext.class,0); + } + public SimplifiedMultisetAlternationContext simplifiedMultisetAlternation() { + return getRuleContext(SimplifiedMultisetAlternationContext.class,0); + } + public SimplifiedContentsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedContents; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedContents(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedContents(this); + } + } + + public final SimplifiedContentsContext simplifiedContents() throws RecognitionException { + SimplifiedContentsContext _localctx = new SimplifiedContentsContext(_ctx, getState()); + enterRule(_localctx, 458, RULE_simplifiedContents); + try { + setState(2507); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,215,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2504); + simplifiedTerm(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2505); + simplifiedPathUnion(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2506); + simplifiedMultisetAlternation(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedPathUnionContext extends ParserRuleContext { + public List simplifiedTerm() { + return getRuleContexts(SimplifiedTermContext.class); + } + public SimplifiedTermContext simplifiedTerm(int i) { + return getRuleContext(SimplifiedTermContext.class,i); + } + public List VERTICAL_BAR() { return getTokens(GQL_20240412Parser.VERTICAL_BAR); } + public TerminalNode VERTICAL_BAR(int i) { + return getToken(GQL_20240412Parser.VERTICAL_BAR, i); + } + public SimplifiedPathUnionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedPathUnion; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedPathUnion(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedPathUnion(this); + } + } + + public final SimplifiedPathUnionContext simplifiedPathUnion() throws RecognitionException { + SimplifiedPathUnionContext _localctx = new SimplifiedPathUnionContext(_ctx, getState()); + enterRule(_localctx, 460, RULE_simplifiedPathUnion); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2509); + simplifiedTerm(0); + setState(2510); + match(VERTICAL_BAR); + setState(2511); + simplifiedTerm(0); + setState(2516); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==VERTICAL_BAR) { + { + { + setState(2512); + match(VERTICAL_BAR); + setState(2513); + simplifiedTerm(0); + } + } + setState(2518); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedMultisetAlternationContext extends ParserRuleContext { + public List simplifiedTerm() { + return getRuleContexts(SimplifiedTermContext.class); + } + public SimplifiedTermContext simplifiedTerm(int i) { + return getRuleContext(SimplifiedTermContext.class,i); + } + public List MULTISET_ALTERNATION_OPERATOR() { return getTokens(GQL_20240412Parser.MULTISET_ALTERNATION_OPERATOR); } + public TerminalNode MULTISET_ALTERNATION_OPERATOR(int i) { + return getToken(GQL_20240412Parser.MULTISET_ALTERNATION_OPERATOR, i); + } + public SimplifiedMultisetAlternationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedMultisetAlternation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedMultisetAlternation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedMultisetAlternation(this); + } + } + + public final SimplifiedMultisetAlternationContext simplifiedMultisetAlternation() throws RecognitionException { + SimplifiedMultisetAlternationContext _localctx = new SimplifiedMultisetAlternationContext(_ctx, getState()); + enterRule(_localctx, 462, RULE_simplifiedMultisetAlternation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2519); + simplifiedTerm(0); + setState(2520); + match(MULTISET_ALTERNATION_OPERATOR); + setState(2521); + simplifiedTerm(0); + setState(2526); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==MULTISET_ALTERNATION_OPERATOR) { + { + { + setState(2522); + match(MULTISET_ALTERNATION_OPERATOR); + setState(2523); + simplifiedTerm(0); + } + } + setState(2528); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedTermContext extends ParserRuleContext { + public SimplifiedTermContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedTerm; } + + public SimplifiedTermContext() { } + public void copyFrom(SimplifiedTermContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedFactorLowLabelContext extends SimplifiedTermContext { + public SimplifiedFactorLowContext simplifiedFactorLow() { + return getRuleContext(SimplifiedFactorLowContext.class,0); + } + public SimplifiedFactorLowLabelContext(SimplifiedTermContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedFactorLowLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedFactorLowLabel(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedConcatenationLabelContext extends SimplifiedTermContext { + public SimplifiedTermContext simplifiedTerm() { + return getRuleContext(SimplifiedTermContext.class,0); + } + public SimplifiedFactorLowContext simplifiedFactorLow() { + return getRuleContext(SimplifiedFactorLowContext.class,0); + } + public SimplifiedConcatenationLabelContext(SimplifiedTermContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedConcatenationLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedConcatenationLabel(this); + } + } + + public final SimplifiedTermContext simplifiedTerm() throws RecognitionException { + return simplifiedTerm(0); + } + + private SimplifiedTermContext simplifiedTerm(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + SimplifiedTermContext _localctx = new SimplifiedTermContext(_ctx, _parentState); + SimplifiedTermContext _prevctx = _localctx; + int _startState = 464; + enterRecursionRule(_localctx, 464, RULE_simplifiedTerm, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + _localctx = new SimplifiedFactorLowLabelContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(2530); + simplifiedFactorLow(0); + } + _ctx.stop = _input.LT(-1); + setState(2536); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,218,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new SimplifiedConcatenationLabelContext(new SimplifiedTermContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_simplifiedTerm); + setState(2532); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2533); + simplifiedFactorLow(0); + } + } + } + setState(2538); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,218,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedFactorLowContext extends ParserRuleContext { + public SimplifiedFactorLowContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedFactorLow; } + + public SimplifiedFactorLowContext() { } + public void copyFrom(SimplifiedFactorLowContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedConjunctionLabelContext extends SimplifiedFactorLowContext { + public SimplifiedFactorLowContext simplifiedFactorLow() { + return getRuleContext(SimplifiedFactorLowContext.class,0); + } + public TerminalNode AMPERSAND() { return getToken(GQL_20240412Parser.AMPERSAND, 0); } + public SimplifiedFactorHighContext simplifiedFactorHigh() { + return getRuleContext(SimplifiedFactorHighContext.class,0); + } + public SimplifiedConjunctionLabelContext(SimplifiedFactorLowContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedConjunctionLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedConjunctionLabel(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedFactorHighLabelContext extends SimplifiedFactorLowContext { + public SimplifiedFactorHighContext simplifiedFactorHigh() { + return getRuleContext(SimplifiedFactorHighContext.class,0); + } + public SimplifiedFactorHighLabelContext(SimplifiedFactorLowContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedFactorHighLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedFactorHighLabel(this); + } + } + + public final SimplifiedFactorLowContext simplifiedFactorLow() throws RecognitionException { + return simplifiedFactorLow(0); + } + + private SimplifiedFactorLowContext simplifiedFactorLow(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + SimplifiedFactorLowContext _localctx = new SimplifiedFactorLowContext(_ctx, _parentState); + SimplifiedFactorLowContext _prevctx = _localctx; + int _startState = 466; + enterRecursionRule(_localctx, 466, RULE_simplifiedFactorLow, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + _localctx = new SimplifiedFactorHighLabelContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(2540); + simplifiedFactorHigh(); + } + _ctx.stop = _input.LT(-1); + setState(2547); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,219,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new SimplifiedConjunctionLabelContext(new SimplifiedFactorLowContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_simplifiedFactorLow); + setState(2542); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(2543); + match(AMPERSAND); + setState(2544); + simplifiedFactorHigh(); + } + } + } + setState(2549); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,219,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedFactorHighContext extends ParserRuleContext { + public SimplifiedTertiaryContext simplifiedTertiary() { + return getRuleContext(SimplifiedTertiaryContext.class,0); + } + public SimplifiedQuantifiedContext simplifiedQuantified() { + return getRuleContext(SimplifiedQuantifiedContext.class,0); + } + public SimplifiedQuestionedContext simplifiedQuestioned() { + return getRuleContext(SimplifiedQuestionedContext.class,0); + } + public SimplifiedFactorHighContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedFactorHigh; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedFactorHigh(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedFactorHigh(this); + } + } + + public final SimplifiedFactorHighContext simplifiedFactorHigh() throws RecognitionException { + SimplifiedFactorHighContext _localctx = new SimplifiedFactorHighContext(_ctx, getState()); + enterRule(_localctx, 468, RULE_simplifiedFactorHigh); + try { + setState(2553); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,220,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2550); + simplifiedTertiary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2551); + simplifiedQuantified(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2552); + simplifiedQuestioned(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedQuantifiedContext extends ParserRuleContext { + public SimplifiedTertiaryContext simplifiedTertiary() { + return getRuleContext(SimplifiedTertiaryContext.class,0); + } + public GraphPatternQuantifierContext graphPatternQuantifier() { + return getRuleContext(GraphPatternQuantifierContext.class,0); + } + public SimplifiedQuantifiedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedQuantified; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedQuantified(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedQuantified(this); + } + } + + public final SimplifiedQuantifiedContext simplifiedQuantified() throws RecognitionException { + SimplifiedQuantifiedContext _localctx = new SimplifiedQuantifiedContext(_ctx, getState()); + enterRule(_localctx, 470, RULE_simplifiedQuantified); + try { + enterOuterAlt(_localctx, 1); + { + setState(2555); + simplifiedTertiary(); + setState(2556); + graphPatternQuantifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedQuestionedContext extends ParserRuleContext { + public SimplifiedTertiaryContext simplifiedTertiary() { + return getRuleContext(SimplifiedTertiaryContext.class,0); + } + public TerminalNode QUESTION_MARK() { return getToken(GQL_20240412Parser.QUESTION_MARK, 0); } + public SimplifiedQuestionedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedQuestioned; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedQuestioned(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedQuestioned(this); + } + } + + public final SimplifiedQuestionedContext simplifiedQuestioned() throws RecognitionException { + SimplifiedQuestionedContext _localctx = new SimplifiedQuestionedContext(_ctx, getState()); + enterRule(_localctx, 472, RULE_simplifiedQuestioned); + try { + enterOuterAlt(_localctx, 1); + { + setState(2558); + simplifiedTertiary(); + setState(2559); + match(QUESTION_MARK); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedTertiaryContext extends ParserRuleContext { + public SimplifiedDirectionOverrideContext simplifiedDirectionOverride() { + return getRuleContext(SimplifiedDirectionOverrideContext.class,0); + } + public SimplifiedSecondaryContext simplifiedSecondary() { + return getRuleContext(SimplifiedSecondaryContext.class,0); + } + public SimplifiedTertiaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedTertiary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedTertiary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedTertiary(this); + } + } + + public final SimplifiedTertiaryContext simplifiedTertiary() throws RecognitionException { + SimplifiedTertiaryContext _localctx = new SimplifiedTertiaryContext(_ctx, getState()); + enterRule(_localctx, 474, RULE_simplifiedTertiary); + try { + setState(2563); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,221,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2561); + simplifiedDirectionOverride(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2562); + simplifiedSecondary(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedDirectionOverrideContext extends ParserRuleContext { + public SimplifiedOverrideLeftContext simplifiedOverrideLeft() { + return getRuleContext(SimplifiedOverrideLeftContext.class,0); + } + public SimplifiedOverrideUndirectedContext simplifiedOverrideUndirected() { + return getRuleContext(SimplifiedOverrideUndirectedContext.class,0); + } + public SimplifiedOverrideRightContext simplifiedOverrideRight() { + return getRuleContext(SimplifiedOverrideRightContext.class,0); + } + public SimplifiedOverrideLeftOrUndirectedContext simplifiedOverrideLeftOrUndirected() { + return getRuleContext(SimplifiedOverrideLeftOrUndirectedContext.class,0); + } + public SimplifiedOverrideUndirectedOrRightContext simplifiedOverrideUndirectedOrRight() { + return getRuleContext(SimplifiedOverrideUndirectedOrRightContext.class,0); + } + public SimplifiedOverrideLeftOrRightContext simplifiedOverrideLeftOrRight() { + return getRuleContext(SimplifiedOverrideLeftOrRightContext.class,0); + } + public SimplifiedOverrideAnyDirectionContext simplifiedOverrideAnyDirection() { + return getRuleContext(SimplifiedOverrideAnyDirectionContext.class,0); + } + public SimplifiedDirectionOverrideContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedDirectionOverride; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedDirectionOverride(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedDirectionOverride(this); + } + } + + public final SimplifiedDirectionOverrideContext simplifiedDirectionOverride() throws RecognitionException { + SimplifiedDirectionOverrideContext _localctx = new SimplifiedDirectionOverrideContext(_ctx, getState()); + enterRule(_localctx, 476, RULE_simplifiedDirectionOverride); + try { + setState(2572); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,222,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2565); + simplifiedOverrideLeft(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2566); + simplifiedOverrideUndirected(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2567); + simplifiedOverrideRight(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2568); + simplifiedOverrideLeftOrUndirected(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(2569); + simplifiedOverrideUndirectedOrRight(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(2570); + simplifiedOverrideLeftOrRight(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(2571); + simplifiedOverrideAnyDirection(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedOverrideLeftContext extends ParserRuleContext { + public TerminalNode LEFT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ANGLE_BRACKET, 0); } + public SimplifiedSecondaryContext simplifiedSecondary() { + return getRuleContext(SimplifiedSecondaryContext.class,0); + } + public SimplifiedOverrideLeftContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedOverrideLeft; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedOverrideLeft(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedOverrideLeft(this); + } + } + + public final SimplifiedOverrideLeftContext simplifiedOverrideLeft() throws RecognitionException { + SimplifiedOverrideLeftContext _localctx = new SimplifiedOverrideLeftContext(_ctx, getState()); + enterRule(_localctx, 478, RULE_simplifiedOverrideLeft); + try { + enterOuterAlt(_localctx, 1); + { + setState(2574); + match(LEFT_ANGLE_BRACKET); + setState(2575); + simplifiedSecondary(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedOverrideUndirectedContext extends ParserRuleContext { + public TerminalNode TILDE() { return getToken(GQL_20240412Parser.TILDE, 0); } + public SimplifiedSecondaryContext simplifiedSecondary() { + return getRuleContext(SimplifiedSecondaryContext.class,0); + } + public SimplifiedOverrideUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedOverrideUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedOverrideUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedOverrideUndirected(this); + } + } + + public final SimplifiedOverrideUndirectedContext simplifiedOverrideUndirected() throws RecognitionException { + SimplifiedOverrideUndirectedContext _localctx = new SimplifiedOverrideUndirectedContext(_ctx, getState()); + enterRule(_localctx, 480, RULE_simplifiedOverrideUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(2577); + match(TILDE); + setState(2578); + simplifiedSecondary(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedOverrideRightContext extends ParserRuleContext { + public SimplifiedSecondaryContext simplifiedSecondary() { + return getRuleContext(SimplifiedSecondaryContext.class,0); + } + public TerminalNode RIGHT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_ANGLE_BRACKET, 0); } + public SimplifiedOverrideRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedOverrideRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedOverrideRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedOverrideRight(this); + } + } + + public final SimplifiedOverrideRightContext simplifiedOverrideRight() throws RecognitionException { + SimplifiedOverrideRightContext _localctx = new SimplifiedOverrideRightContext(_ctx, getState()); + enterRule(_localctx, 482, RULE_simplifiedOverrideRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2580); + simplifiedSecondary(); + setState(2581); + match(RIGHT_ANGLE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedOverrideLeftOrUndirectedContext extends ParserRuleContext { + public TerminalNode LEFT_ARROW_TILDE() { return getToken(GQL_20240412Parser.LEFT_ARROW_TILDE, 0); } + public SimplifiedSecondaryContext simplifiedSecondary() { + return getRuleContext(SimplifiedSecondaryContext.class,0); + } + public SimplifiedOverrideLeftOrUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedOverrideLeftOrUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedOverrideLeftOrUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedOverrideLeftOrUndirected(this); + } + } + + public final SimplifiedOverrideLeftOrUndirectedContext simplifiedOverrideLeftOrUndirected() throws RecognitionException { + SimplifiedOverrideLeftOrUndirectedContext _localctx = new SimplifiedOverrideLeftOrUndirectedContext(_ctx, getState()); + enterRule(_localctx, 484, RULE_simplifiedOverrideLeftOrUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(2583); + match(LEFT_ARROW_TILDE); + setState(2584); + simplifiedSecondary(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedOverrideUndirectedOrRightContext extends ParserRuleContext { + public TerminalNode TILDE() { return getToken(GQL_20240412Parser.TILDE, 0); } + public SimplifiedSecondaryContext simplifiedSecondary() { + return getRuleContext(SimplifiedSecondaryContext.class,0); + } + public TerminalNode RIGHT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_ANGLE_BRACKET, 0); } + public SimplifiedOverrideUndirectedOrRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedOverrideUndirectedOrRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedOverrideUndirectedOrRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedOverrideUndirectedOrRight(this); + } + } + + public final SimplifiedOverrideUndirectedOrRightContext simplifiedOverrideUndirectedOrRight() throws RecognitionException { + SimplifiedOverrideUndirectedOrRightContext _localctx = new SimplifiedOverrideUndirectedOrRightContext(_ctx, getState()); + enterRule(_localctx, 486, RULE_simplifiedOverrideUndirectedOrRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2586); + match(TILDE); + setState(2587); + simplifiedSecondary(); + setState(2588); + match(RIGHT_ANGLE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedOverrideLeftOrRightContext extends ParserRuleContext { + public TerminalNode LEFT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ANGLE_BRACKET, 0); } + public SimplifiedSecondaryContext simplifiedSecondary() { + return getRuleContext(SimplifiedSecondaryContext.class,0); + } + public TerminalNode RIGHT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_ANGLE_BRACKET, 0); } + public SimplifiedOverrideLeftOrRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedOverrideLeftOrRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedOverrideLeftOrRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedOverrideLeftOrRight(this); + } + } + + public final SimplifiedOverrideLeftOrRightContext simplifiedOverrideLeftOrRight() throws RecognitionException { + SimplifiedOverrideLeftOrRightContext _localctx = new SimplifiedOverrideLeftOrRightContext(_ctx, getState()); + enterRule(_localctx, 488, RULE_simplifiedOverrideLeftOrRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2590); + match(LEFT_ANGLE_BRACKET); + setState(2591); + simplifiedSecondary(); + setState(2592); + match(RIGHT_ANGLE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedOverrideAnyDirectionContext extends ParserRuleContext { + public TerminalNode MINUS_SIGN() { return getToken(GQL_20240412Parser.MINUS_SIGN, 0); } + public SimplifiedSecondaryContext simplifiedSecondary() { + return getRuleContext(SimplifiedSecondaryContext.class,0); + } + public SimplifiedOverrideAnyDirectionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedOverrideAnyDirection; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedOverrideAnyDirection(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedOverrideAnyDirection(this); + } + } + + public final SimplifiedOverrideAnyDirectionContext simplifiedOverrideAnyDirection() throws RecognitionException { + SimplifiedOverrideAnyDirectionContext _localctx = new SimplifiedOverrideAnyDirectionContext(_ctx, getState()); + enterRule(_localctx, 490, RULE_simplifiedOverrideAnyDirection); + try { + enterOuterAlt(_localctx, 1); + { + setState(2594); + match(MINUS_SIGN); + setState(2595); + simplifiedSecondary(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedSecondaryContext extends ParserRuleContext { + public SimplifiedPrimaryContext simplifiedPrimary() { + return getRuleContext(SimplifiedPrimaryContext.class,0); + } + public SimplifiedNegationContext simplifiedNegation() { + return getRuleContext(SimplifiedNegationContext.class,0); + } + public SimplifiedSecondaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedSecondary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedSecondary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedSecondary(this); + } + } + + public final SimplifiedSecondaryContext simplifiedSecondary() throws RecognitionException { + SimplifiedSecondaryContext _localctx = new SimplifiedSecondaryContext(_ctx, getState()); + enterRule(_localctx, 492, RULE_simplifiedSecondary); + try { + setState(2599); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case ACCENT_QUOTED_CHARACTER_SEQUENCE: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + case LEFT_PAREN: + enterOuterAlt(_localctx, 1); + { + setState(2597); + simplifiedPrimary(); + } + break; + case EXCLAMATION_MARK: + enterOuterAlt(_localctx, 2); + { + setState(2598); + simplifiedNegation(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedNegationContext extends ParserRuleContext { + public TerminalNode EXCLAMATION_MARK() { return getToken(GQL_20240412Parser.EXCLAMATION_MARK, 0); } + public SimplifiedPrimaryContext simplifiedPrimary() { + return getRuleContext(SimplifiedPrimaryContext.class,0); + } + public SimplifiedNegationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedNegation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedNegation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedNegation(this); + } + } + + public final SimplifiedNegationContext simplifiedNegation() throws RecognitionException { + SimplifiedNegationContext _localctx = new SimplifiedNegationContext(_ctx, getState()); + enterRule(_localctx, 494, RULE_simplifiedNegation); + try { + enterOuterAlt(_localctx, 1); + { + setState(2601); + match(EXCLAMATION_MARK); + setState(2602); + simplifiedPrimary(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimplifiedPrimaryContext extends ParserRuleContext { + public LabelNameContext labelName() { + return getRuleContext(LabelNameContext.class,0); + } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public SimplifiedContentsContext simplifiedContents() { + return getRuleContext(SimplifiedContentsContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public SimplifiedPrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simplifiedPrimary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimplifiedPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimplifiedPrimary(this); + } + } + + public final SimplifiedPrimaryContext simplifiedPrimary() throws RecognitionException { + SimplifiedPrimaryContext _localctx = new SimplifiedPrimaryContext(_ctx, getState()); + enterRule(_localctx, 496, RULE_simplifiedPrimary); + try { + setState(2609); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case ACCENT_QUOTED_CHARACTER_SEQUENCE: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(2604); + labelName(); + } + break; + case LEFT_PAREN: + enterOuterAlt(_localctx, 2); + { + setState(2605); + match(LEFT_PAREN); + setState(2606); + simplifiedContents(); + setState(2607); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WhereClauseContext extends ParserRuleContext { + public TerminalNode WHERE() { return getToken(GQL_20240412Parser.WHERE, 0); } + public SearchConditionContext searchCondition() { + return getRuleContext(SearchConditionContext.class,0); + } + public WhereClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_whereClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterWhereClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitWhereClause(this); + } + } + + public final WhereClauseContext whereClause() throws RecognitionException { + WhereClauseContext _localctx = new WhereClauseContext(_ctx, getState()); + enterRule(_localctx, 498, RULE_whereClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2611); + match(WHERE); + setState(2612); + searchCondition(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class YieldClauseContext extends ParserRuleContext { + public TerminalNode YIELD() { return getToken(GQL_20240412Parser.YIELD, 0); } + public YieldItemListContext yieldItemList() { + return getRuleContext(YieldItemListContext.class,0); + } + public YieldClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_yieldClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterYieldClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitYieldClause(this); + } + } + + public final YieldClauseContext yieldClause() throws RecognitionException { + YieldClauseContext _localctx = new YieldClauseContext(_ctx, getState()); + enterRule(_localctx, 500, RULE_yieldClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2614); + match(YIELD); + setState(2615); + yieldItemList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class YieldItemListContext extends ParserRuleContext { + public List yieldItem() { + return getRuleContexts(YieldItemContext.class); + } + public YieldItemContext yieldItem(int i) { + return getRuleContext(YieldItemContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public YieldItemListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_yieldItemList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterYieldItemList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitYieldItemList(this); + } + } + + public final YieldItemListContext yieldItemList() throws RecognitionException { + YieldItemListContext _localctx = new YieldItemListContext(_ctx, getState()); + enterRule(_localctx, 502, RULE_yieldItemList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2617); + yieldItem(); + setState(2622); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2618); + match(COMMA); + setState(2619); + yieldItem(); + } + } + setState(2624); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class YieldItemContext extends ParserRuleContext { + public YieldItemNameContext yieldItemName() { + return getRuleContext(YieldItemNameContext.class,0); + } + public YieldItemAliasContext yieldItemAlias() { + return getRuleContext(YieldItemAliasContext.class,0); + } + public YieldItemContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_yieldItem; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterYieldItem(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitYieldItem(this); + } + } + + public final YieldItemContext yieldItem() throws RecognitionException { + YieldItemContext _localctx = new YieldItemContext(_ctx, getState()); + enterRule(_localctx, 504, RULE_yieldItem); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + { + setState(2625); + yieldItemName(); + setState(2627); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==AS) { + { + setState(2626); + yieldItemAlias(); + } + } + + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class YieldItemNameContext extends ParserRuleContext { + public FieldNameContext fieldName() { + return getRuleContext(FieldNameContext.class,0); + } + public YieldItemNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_yieldItemName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterYieldItemName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitYieldItemName(this); + } + } + + public final YieldItemNameContext yieldItemName() throws RecognitionException { + YieldItemNameContext _localctx = new YieldItemNameContext(_ctx, getState()); + enterRule(_localctx, 506, RULE_yieldItemName); + try { + enterOuterAlt(_localctx, 1); + { + setState(2629); + fieldName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class YieldItemAliasContext extends ParserRuleContext { + public TerminalNode AS() { return getToken(GQL_20240412Parser.AS, 0); } + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public YieldItemAliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_yieldItemAlias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterYieldItemAlias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitYieldItemAlias(this); + } + } + + public final YieldItemAliasContext yieldItemAlias() throws RecognitionException { + YieldItemAliasContext _localctx = new YieldItemAliasContext(_ctx, getState()); + enterRule(_localctx, 508, RULE_yieldItemAlias); + try { + enterOuterAlt(_localctx, 1); + { + setState(2631); + match(AS); + setState(2632); + bindingVariable(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GroupByClauseContext extends ParserRuleContext { + public TerminalNode GROUP() { return getToken(GQL_20240412Parser.GROUP, 0); } + public TerminalNode BY() { return getToken(GQL_20240412Parser.BY, 0); } + public GroupingElementListContext groupingElementList() { + return getRuleContext(GroupingElementListContext.class,0); + } + public GroupByClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_groupByClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGroupByClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGroupByClause(this); + } + } + + public final GroupByClauseContext groupByClause() throws RecognitionException { + GroupByClauseContext _localctx = new GroupByClauseContext(_ctx, getState()); + enterRule(_localctx, 510, RULE_groupByClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2634); + match(GROUP); + setState(2635); + match(BY); + setState(2636); + groupingElementList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GroupingElementListContext extends ParserRuleContext { + public List groupingElement() { + return getRuleContexts(GroupingElementContext.class); + } + public GroupingElementContext groupingElement(int i) { + return getRuleContext(GroupingElementContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public EmptyGroupingSetContext emptyGroupingSet() { + return getRuleContext(EmptyGroupingSetContext.class,0); + } + public GroupingElementListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_groupingElementList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGroupingElementList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGroupingElementList(this); + } + } + + public final GroupingElementListContext groupingElementList() throws RecognitionException { + GroupingElementListContext _localctx = new GroupingElementListContext(_ctx, getState()); + enterRule(_localctx, 512, RULE_groupingElementList); + try { + int _alt; + setState(2647); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(2638); + groupingElement(); + setState(2643); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,227,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2639); + match(COMMA); + setState(2640); + groupingElement(); + } + } + } + setState(2645); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,227,_ctx); + } + } + break; + case LEFT_PAREN: + enterOuterAlt(_localctx, 2); + { + setState(2646); + emptyGroupingSet(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GroupingElementContext extends ParserRuleContext { + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public GroupingElementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_groupingElement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGroupingElement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGroupingElement(this); + } + } + + public final GroupingElementContext groupingElement() throws RecognitionException { + GroupingElementContext _localctx = new GroupingElementContext(_ctx, getState()); + enterRule(_localctx, 514, RULE_groupingElement); + try { + enterOuterAlt(_localctx, 1); + { + setState(2649); + bindingVariableReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EmptyGroupingSetContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public EmptyGroupingSetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_emptyGroupingSet; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEmptyGroupingSet(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEmptyGroupingSet(this); + } + } + + public final EmptyGroupingSetContext emptyGroupingSet() throws RecognitionException { + EmptyGroupingSetContext _localctx = new EmptyGroupingSetContext(_ctx, getState()); + enterRule(_localctx, 516, RULE_emptyGroupingSet); + try { + enterOuterAlt(_localctx, 1); + { + setState(2651); + match(LEFT_PAREN); + setState(2652); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OrderByClauseContext extends ParserRuleContext { + public TerminalNode ORDER() { return getToken(GQL_20240412Parser.ORDER, 0); } + public TerminalNode BY() { return getToken(GQL_20240412Parser.BY, 0); } + public SortSpecificationListContext sortSpecificationList() { + return getRuleContext(SortSpecificationListContext.class,0); + } + public OrderByClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_orderByClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOrderByClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOrderByClause(this); + } + } + + public final OrderByClauseContext orderByClause() throws RecognitionException { + OrderByClauseContext _localctx = new OrderByClauseContext(_ctx, getState()); + enterRule(_localctx, 518, RULE_orderByClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2654); + match(ORDER); + setState(2655); + match(BY); + setState(2656); + sortSpecificationList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SortSpecificationListContext extends ParserRuleContext { + public List sortSpecification() { + return getRuleContexts(SortSpecificationContext.class); + } + public SortSpecificationContext sortSpecification(int i) { + return getRuleContext(SortSpecificationContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public SortSpecificationListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sortSpecificationList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSortSpecificationList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSortSpecificationList(this); + } + } + + public final SortSpecificationListContext sortSpecificationList() throws RecognitionException { + SortSpecificationListContext _localctx = new SortSpecificationListContext(_ctx, getState()); + enterRule(_localctx, 520, RULE_sortSpecificationList); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2658); + sortSpecification(); + setState(2663); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,229,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2659); + match(COMMA); + setState(2660); + sortSpecification(); + } + } + } + setState(2665); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,229,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SortSpecificationContext extends ParserRuleContext { + public SortKeyContext sortKey() { + return getRuleContext(SortKeyContext.class,0); + } + public OrderingSpecificationContext orderingSpecification() { + return getRuleContext(OrderingSpecificationContext.class,0); + } + public NullOrderingContext nullOrdering() { + return getRuleContext(NullOrderingContext.class,0); + } + public SortSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sortSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSortSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSortSpecification(this); + } + } + + public final SortSpecificationContext sortSpecification() throws RecognitionException { + SortSpecificationContext _localctx = new SortSpecificationContext(_ctx, getState()); + enterRule(_localctx, 522, RULE_sortSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(2666); + sortKey(); + setState(2668); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,230,_ctx) ) { + case 1: + { + setState(2667); + orderingSpecification(); + } + break; + } + setState(2671); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) { + case 1: + { + setState(2670); + nullOrdering(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SortKeyContext extends ParserRuleContext { + public AggregatingValueExpressionContext aggregatingValueExpression() { + return getRuleContext(AggregatingValueExpressionContext.class,0); + } + public SortKeyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sortKey; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSortKey(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSortKey(this); + } + } + + public final SortKeyContext sortKey() throws RecognitionException { + SortKeyContext _localctx = new SortKeyContext(_ctx, getState()); + enterRule(_localctx, 524, RULE_sortKey); + try { + enterOuterAlt(_localctx, 1); + { + setState(2673); + aggregatingValueExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OrderingSpecificationContext extends ParserRuleContext { + public TerminalNode ASC() { return getToken(GQL_20240412Parser.ASC, 0); } + public TerminalNode ASCENDING() { return getToken(GQL_20240412Parser.ASCENDING, 0); } + public TerminalNode DESC() { return getToken(GQL_20240412Parser.DESC, 0); } + public TerminalNode DESCENDING() { return getToken(GQL_20240412Parser.DESCENDING, 0); } + public OrderingSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_orderingSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOrderingSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOrderingSpecification(this); + } + } + + public final OrderingSpecificationContext orderingSpecification() throws RecognitionException { + OrderingSpecificationContext _localctx = new OrderingSpecificationContext(_ctx, getState()); + enterRule(_localctx, 526, RULE_orderingSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2675); + _la = _input.LA(1); + if ( !((((_la - 28)) & ~0x3f) == 0 && ((1L << (_la - 28)) & 1688849860263939L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NullOrderingContext extends ParserRuleContext { + public TerminalNode NULLS() { return getToken(GQL_20240412Parser.NULLS, 0); } + public TerminalNode FIRST() { return getToken(GQL_20240412Parser.FIRST, 0); } + public TerminalNode LAST() { return getToken(GQL_20240412Parser.LAST, 0); } + public NullOrderingContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nullOrdering; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNullOrdering(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNullOrdering(this); + } + } + + public final NullOrderingContext nullOrdering() throws RecognitionException { + NullOrderingContext _localctx = new NullOrderingContext(_ctx, getState()); + enterRule(_localctx, 528, RULE_nullOrdering); + try { + setState(2681); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,232,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2677); + match(NULLS); + setState(2678); + match(FIRST); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2679); + match(NULLS); + setState(2680); + match(LAST); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LimitClauseContext extends ParserRuleContext { + public TerminalNode LIMIT() { return getToken(GQL_20240412Parser.LIMIT, 0); } + public NonNegativeIntegerSpecificationContext nonNegativeIntegerSpecification() { + return getRuleContext(NonNegativeIntegerSpecificationContext.class,0); + } + public LimitClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_limitClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLimitClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLimitClause(this); + } + } + + public final LimitClauseContext limitClause() throws RecognitionException { + LimitClauseContext _localctx = new LimitClauseContext(_ctx, getState()); + enterRule(_localctx, 530, RULE_limitClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2683); + match(LIMIT); + setState(2684); + nonNegativeIntegerSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OffsetClauseContext extends ParserRuleContext { + public OffsetSynonymContext offsetSynonym() { + return getRuleContext(OffsetSynonymContext.class,0); + } + public NonNegativeIntegerSpecificationContext nonNegativeIntegerSpecification() { + return getRuleContext(NonNegativeIntegerSpecificationContext.class,0); + } + public OffsetClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_offsetClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOffsetClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOffsetClause(this); + } + } + + public final OffsetClauseContext offsetClause() throws RecognitionException { + OffsetClauseContext _localctx = new OffsetClauseContext(_ctx, getState()); + enterRule(_localctx, 532, RULE_offsetClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(2686); + offsetSynonym(); + setState(2687); + nonNegativeIntegerSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OffsetSynonymContext extends ParserRuleContext { + public TerminalNode OFFSET() { return getToken(GQL_20240412Parser.OFFSET, 0); } + public TerminalNode SKIP_RESERVED_WORD() { return getToken(GQL_20240412Parser.SKIP_RESERVED_WORD, 0); } + public OffsetSynonymContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_offsetSynonym; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOffsetSynonym(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOffsetSynonym(this); + } + } + + public final OffsetSynonymContext offsetSynonym() throws RecognitionException { + OffsetSynonymContext _localctx = new OffsetSynonymContext(_ctx, getState()); + enterRule(_localctx, 534, RULE_offsetSynonym); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2689); + _la = _input.LA(1); + if ( !(_la==OFFSET || _la==SKIP_RESERVED_WORD) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SchemaReferenceContext extends ParserRuleContext { + public AbsoluteCatalogSchemaReferenceContext absoluteCatalogSchemaReference() { + return getRuleContext(AbsoluteCatalogSchemaReferenceContext.class,0); + } + public RelativeCatalogSchemaReferenceContext relativeCatalogSchemaReference() { + return getRuleContext(RelativeCatalogSchemaReferenceContext.class,0); + } + public ReferenceParameterSpecificationContext referenceParameterSpecification() { + return getRuleContext(ReferenceParameterSpecificationContext.class,0); + } + public SchemaReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_schemaReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSchemaReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSchemaReference(this); + } + } + + public final SchemaReferenceContext schemaReference() throws RecognitionException { + SchemaReferenceContext _localctx = new SchemaReferenceContext(_ctx, getState()); + enterRule(_localctx, 536, RULE_schemaReference); + try { + setState(2694); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SOLIDUS: + enterOuterAlt(_localctx, 1); + { + setState(2691); + absoluteCatalogSchemaReference(); + } + break; + case CURRENT_SCHEMA: + case HOME_SCHEMA: + case DOUBLE_PERIOD: + case PERIOD: + enterOuterAlt(_localctx, 2); + { + setState(2692); + relativeCatalogSchemaReference(); + } + break; + case SUBSTITUTED_PARAMETER_REFERENCE: + enterOuterAlt(_localctx, 3); + { + setState(2693); + referenceParameterSpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AbsoluteCatalogSchemaReferenceContext extends ParserRuleContext { + public TerminalNode SOLIDUS() { return getToken(GQL_20240412Parser.SOLIDUS, 0); } + public AbsoluteDirectoryPathContext absoluteDirectoryPath() { + return getRuleContext(AbsoluteDirectoryPathContext.class,0); + } + public SchemaNameContext schemaName() { + return getRuleContext(SchemaNameContext.class,0); + } + public AbsoluteCatalogSchemaReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_absoluteCatalogSchemaReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAbsoluteCatalogSchemaReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAbsoluteCatalogSchemaReference(this); + } + } + + public final AbsoluteCatalogSchemaReferenceContext absoluteCatalogSchemaReference() throws RecognitionException { + AbsoluteCatalogSchemaReferenceContext _localctx = new AbsoluteCatalogSchemaReferenceContext(_ctx, getState()); + enterRule(_localctx, 538, RULE_absoluteCatalogSchemaReference); + try { + setState(2700); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,234,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2696); + match(SOLIDUS); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2697); + absoluteDirectoryPath(); + setState(2698); + schemaName(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatalogSchemaParentAndNameContext extends ParserRuleContext { + public AbsoluteDirectoryPathContext absoluteDirectoryPath() { + return getRuleContext(AbsoluteDirectoryPathContext.class,0); + } + public SchemaNameContext schemaName() { + return getRuleContext(SchemaNameContext.class,0); + } + public CatalogSchemaParentAndNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catalogSchemaParentAndName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCatalogSchemaParentAndName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCatalogSchemaParentAndName(this); + } + } + + public final CatalogSchemaParentAndNameContext catalogSchemaParentAndName() throws RecognitionException { + CatalogSchemaParentAndNameContext _localctx = new CatalogSchemaParentAndNameContext(_ctx, getState()); + enterRule(_localctx, 540, RULE_catalogSchemaParentAndName); + try { + enterOuterAlt(_localctx, 1); + { + setState(2702); + absoluteDirectoryPath(); + setState(2703); + schemaName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RelativeCatalogSchemaReferenceContext extends ParserRuleContext { + public PredefinedSchemaReferenceContext predefinedSchemaReference() { + return getRuleContext(PredefinedSchemaReferenceContext.class,0); + } + public RelativeDirectoryPathContext relativeDirectoryPath() { + return getRuleContext(RelativeDirectoryPathContext.class,0); + } + public SchemaNameContext schemaName() { + return getRuleContext(SchemaNameContext.class,0); + } + public RelativeCatalogSchemaReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_relativeCatalogSchemaReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRelativeCatalogSchemaReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRelativeCatalogSchemaReference(this); + } + } + + public final RelativeCatalogSchemaReferenceContext relativeCatalogSchemaReference() throws RecognitionException { + RelativeCatalogSchemaReferenceContext _localctx = new RelativeCatalogSchemaReferenceContext(_ctx, getState()); + enterRule(_localctx, 542, RULE_relativeCatalogSchemaReference); + try { + setState(2709); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CURRENT_SCHEMA: + case HOME_SCHEMA: + case PERIOD: + enterOuterAlt(_localctx, 1); + { + setState(2705); + predefinedSchemaReference(); + } + break; + case DOUBLE_PERIOD: + enterOuterAlt(_localctx, 2); + { + setState(2706); + relativeDirectoryPath(); + setState(2707); + schemaName(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PredefinedSchemaReferenceContext extends ParserRuleContext { + public TerminalNode HOME_SCHEMA() { return getToken(GQL_20240412Parser.HOME_SCHEMA, 0); } + public TerminalNode CURRENT_SCHEMA() { return getToken(GQL_20240412Parser.CURRENT_SCHEMA, 0); } + public TerminalNode PERIOD() { return getToken(GQL_20240412Parser.PERIOD, 0); } + public PredefinedSchemaReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_predefinedSchemaReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPredefinedSchemaReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPredefinedSchemaReference(this); + } + } + + public final PredefinedSchemaReferenceContext predefinedSchemaReference() throws RecognitionException { + PredefinedSchemaReferenceContext _localctx = new PredefinedSchemaReferenceContext(_ctx, getState()); + enterRule(_localctx, 544, RULE_predefinedSchemaReference); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2711); + _la = _input.LA(1); + if ( !(_la==CURRENT_SCHEMA || _la==HOME_SCHEMA || _la==PERIOD) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AbsoluteDirectoryPathContext extends ParserRuleContext { + public TerminalNode SOLIDUS() { return getToken(GQL_20240412Parser.SOLIDUS, 0); } + public SimpleDirectoryPathContext simpleDirectoryPath() { + return getRuleContext(SimpleDirectoryPathContext.class,0); + } + public AbsoluteDirectoryPathContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_absoluteDirectoryPath; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAbsoluteDirectoryPath(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAbsoluteDirectoryPath(this); + } + } + + public final AbsoluteDirectoryPathContext absoluteDirectoryPath() throws RecognitionException { + AbsoluteDirectoryPathContext _localctx = new AbsoluteDirectoryPathContext(_ctx, getState()); + enterRule(_localctx, 546, RULE_absoluteDirectoryPath); + try { + enterOuterAlt(_localctx, 1); + { + setState(2713); + match(SOLIDUS); + setState(2715); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,236,_ctx) ) { + case 1: + { + setState(2714); + simpleDirectoryPath(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RelativeDirectoryPathContext extends ParserRuleContext { + public List DOUBLE_PERIOD() { return getTokens(GQL_20240412Parser.DOUBLE_PERIOD); } + public TerminalNode DOUBLE_PERIOD(int i) { + return getToken(GQL_20240412Parser.DOUBLE_PERIOD, i); + } + public List SOLIDUS() { return getTokens(GQL_20240412Parser.SOLIDUS); } + public TerminalNode SOLIDUS(int i) { + return getToken(GQL_20240412Parser.SOLIDUS, i); + } + public SimpleDirectoryPathContext simpleDirectoryPath() { + return getRuleContext(SimpleDirectoryPathContext.class,0); + } + public RelativeDirectoryPathContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_relativeDirectoryPath; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRelativeDirectoryPath(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRelativeDirectoryPath(this); + } + } + + public final RelativeDirectoryPathContext relativeDirectoryPath() throws RecognitionException { + RelativeDirectoryPathContext _localctx = new RelativeDirectoryPathContext(_ctx, getState()); + enterRule(_localctx, 548, RULE_relativeDirectoryPath); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2717); + match(DOUBLE_PERIOD); + setState(2722); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,237,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2718); + match(SOLIDUS); + setState(2719); + match(DOUBLE_PERIOD); + } + } + } + setState(2724); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,237,_ctx); + } + setState(2725); + match(SOLIDUS); + setState(2727); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,238,_ctx) ) { + case 1: + { + setState(2726); + simpleDirectoryPath(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleDirectoryPathContext extends ParserRuleContext { + public List directoryName() { + return getRuleContexts(DirectoryNameContext.class); + } + public DirectoryNameContext directoryName(int i) { + return getRuleContext(DirectoryNameContext.class,i); + } + public List SOLIDUS() { return getTokens(GQL_20240412Parser.SOLIDUS); } + public TerminalNode SOLIDUS(int i) { + return getToken(GQL_20240412Parser.SOLIDUS, i); + } + public SimpleDirectoryPathContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleDirectoryPath; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleDirectoryPath(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleDirectoryPath(this); + } + } + + public final SimpleDirectoryPathContext simpleDirectoryPath() throws RecognitionException { + SimpleDirectoryPathContext _localctx = new SimpleDirectoryPathContext(_ctx, getState()); + enterRule(_localctx, 550, RULE_simpleDirectoryPath); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2732); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(2729); + directoryName(); + setState(2730); + match(SOLIDUS); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(2734); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,239,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphReferenceContext extends ParserRuleContext { + public CatalogObjectParentReferenceContext catalogObjectParentReference() { + return getRuleContext(CatalogObjectParentReferenceContext.class,0); + } + public GraphNameContext graphName() { + return getRuleContext(GraphNameContext.class,0); + } + public DelimitedGraphNameContext delimitedGraphName() { + return getRuleContext(DelimitedGraphNameContext.class,0); + } + public HomeGraphContext homeGraph() { + return getRuleContext(HomeGraphContext.class,0); + } + public ReferenceParameterSpecificationContext referenceParameterSpecification() { + return getRuleContext(ReferenceParameterSpecificationContext.class,0); + } + public GraphReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphReference(this); + } + } + + public final GraphReferenceContext graphReference() throws RecognitionException { + GraphReferenceContext _localctx = new GraphReferenceContext(_ctx, getState()); + enterRule(_localctx, 552, RULE_graphReference); + try { + setState(2742); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,240,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2736); + catalogObjectParentReference(); + setState(2737); + graphName(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2739); + delimitedGraphName(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2740); + homeGraph(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(2741); + referenceParameterSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatalogGraphParentAndNameContext extends ParserRuleContext { + public GraphNameContext graphName() { + return getRuleContext(GraphNameContext.class,0); + } + public CatalogObjectParentReferenceContext catalogObjectParentReference() { + return getRuleContext(CatalogObjectParentReferenceContext.class,0); + } + public CatalogGraphParentAndNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catalogGraphParentAndName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCatalogGraphParentAndName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCatalogGraphParentAndName(this); + } + } + + public final CatalogGraphParentAndNameContext catalogGraphParentAndName() throws RecognitionException { + CatalogGraphParentAndNameContext _localctx = new CatalogGraphParentAndNameContext(_ctx, getState()); + enterRule(_localctx, 554, RULE_catalogGraphParentAndName); + try { + enterOuterAlt(_localctx, 1); + { + setState(2745); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,241,_ctx) ) { + case 1: + { + setState(2744); + catalogObjectParentReference(); + } + break; + } + setState(2747); + graphName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class HomeGraphContext extends ParserRuleContext { + public TerminalNode HOME_PROPERTY_GRAPH() { return getToken(GQL_20240412Parser.HOME_PROPERTY_GRAPH, 0); } + public TerminalNode HOME_GRAPH() { return getToken(GQL_20240412Parser.HOME_GRAPH, 0); } + public HomeGraphContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_homeGraph; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterHomeGraph(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitHomeGraph(this); + } + } + + public final HomeGraphContext homeGraph() throws RecognitionException { + HomeGraphContext _localctx = new HomeGraphContext(_ctx, getState()); + enterRule(_localctx, 556, RULE_homeGraph); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2749); + _la = _input.LA(1); + if ( !(_la==HOME_GRAPH || _la==HOME_PROPERTY_GRAPH) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphTypeReferenceContext extends ParserRuleContext { + public CatalogGraphTypeParentAndNameContext catalogGraphTypeParentAndName() { + return getRuleContext(CatalogGraphTypeParentAndNameContext.class,0); + } + public ReferenceParameterSpecificationContext referenceParameterSpecification() { + return getRuleContext(ReferenceParameterSpecificationContext.class,0); + } + public GraphTypeReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphTypeReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphTypeReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphTypeReference(this); + } + } + + public final GraphTypeReferenceContext graphTypeReference() throws RecognitionException { + GraphTypeReferenceContext _localctx = new GraphTypeReferenceContext(_ctx, getState()); + enterRule(_localctx, 558, RULE_graphTypeReference); + try { + setState(2753); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,242,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2751); + catalogGraphTypeParentAndName(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2752); + referenceParameterSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatalogGraphTypeParentAndNameContext extends ParserRuleContext { + public GraphTypeNameContext graphTypeName() { + return getRuleContext(GraphTypeNameContext.class,0); + } + public CatalogObjectParentReferenceContext catalogObjectParentReference() { + return getRuleContext(CatalogObjectParentReferenceContext.class,0); + } + public CatalogGraphTypeParentAndNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catalogGraphTypeParentAndName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCatalogGraphTypeParentAndName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCatalogGraphTypeParentAndName(this); + } + } + + public final CatalogGraphTypeParentAndNameContext catalogGraphTypeParentAndName() throws RecognitionException { + CatalogGraphTypeParentAndNameContext _localctx = new CatalogGraphTypeParentAndNameContext(_ctx, getState()); + enterRule(_localctx, 560, RULE_catalogGraphTypeParentAndName); + try { + enterOuterAlt(_localctx, 1); + { + setState(2756); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { + case 1: + { + setState(2755); + catalogObjectParentReference(); + } + break; + } + setState(2758); + graphTypeName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingTableReferenceContext extends ParserRuleContext { + public CatalogObjectParentReferenceContext catalogObjectParentReference() { + return getRuleContext(CatalogObjectParentReferenceContext.class,0); + } + public BindingTableNameContext bindingTableName() { + return getRuleContext(BindingTableNameContext.class,0); + } + public DelimitedBindingTableNameContext delimitedBindingTableName() { + return getRuleContext(DelimitedBindingTableNameContext.class,0); + } + public ReferenceParameterSpecificationContext referenceParameterSpecification() { + return getRuleContext(ReferenceParameterSpecificationContext.class,0); + } + public BindingTableReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingTableReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingTableReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingTableReference(this); + } + } + + public final BindingTableReferenceContext bindingTableReference() throws RecognitionException { + BindingTableReferenceContext _localctx = new BindingTableReferenceContext(_ctx, getState()); + enterRule(_localctx, 562, RULE_bindingTableReference); + try { + setState(2765); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,244,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2760); + catalogObjectParentReference(); + setState(2761); + bindingTableName(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2763); + delimitedBindingTableName(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2764); + referenceParameterSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProcedureReferenceContext extends ParserRuleContext { + public CatalogProcedureParentAndNameContext catalogProcedureParentAndName() { + return getRuleContext(CatalogProcedureParentAndNameContext.class,0); + } + public ReferenceParameterSpecificationContext referenceParameterSpecification() { + return getRuleContext(ReferenceParameterSpecificationContext.class,0); + } + public ProcedureReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_procedureReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProcedureReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProcedureReference(this); + } + } + + public final ProcedureReferenceContext procedureReference() throws RecognitionException { + ProcedureReferenceContext _localctx = new ProcedureReferenceContext(_ctx, getState()); + enterRule(_localctx, 564, RULE_procedureReference); + try { + setState(2769); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,245,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2767); + catalogProcedureParentAndName(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2768); + referenceParameterSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatalogProcedureParentAndNameContext extends ParserRuleContext { + public ProcedureNameContext procedureName() { + return getRuleContext(ProcedureNameContext.class,0); + } + public CatalogObjectParentReferenceContext catalogObjectParentReference() { + return getRuleContext(CatalogObjectParentReferenceContext.class,0); + } + public CatalogProcedureParentAndNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catalogProcedureParentAndName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCatalogProcedureParentAndName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCatalogProcedureParentAndName(this); + } + } + + public final CatalogProcedureParentAndNameContext catalogProcedureParentAndName() throws RecognitionException { + CatalogProcedureParentAndNameContext _localctx = new CatalogProcedureParentAndNameContext(_ctx, getState()); + enterRule(_localctx, 566, RULE_catalogProcedureParentAndName); + try { + enterOuterAlt(_localctx, 1); + { + setState(2772); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,246,_ctx) ) { + case 1: + { + setState(2771); + catalogObjectParentReference(); + } + break; + } + setState(2774); + procedureName(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatalogObjectParentReferenceContext extends ParserRuleContext { + public SchemaReferenceContext schemaReference() { + return getRuleContext(SchemaReferenceContext.class,0); + } + public TerminalNode SOLIDUS() { return getToken(GQL_20240412Parser.SOLIDUS, 0); } + public List objectName() { + return getRuleContexts(ObjectNameContext.class); + } + public ObjectNameContext objectName(int i) { + return getRuleContext(ObjectNameContext.class,i); + } + public List PERIOD() { return getTokens(GQL_20240412Parser.PERIOD); } + public TerminalNode PERIOD(int i) { + return getToken(GQL_20240412Parser.PERIOD, i); + } + public CatalogObjectParentReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catalogObjectParentReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCatalogObjectParentReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCatalogObjectParentReference(this); + } + } + + public final CatalogObjectParentReferenceContext catalogObjectParentReference() throws RecognitionException { + CatalogObjectParentReferenceContext _localctx = new CatalogObjectParentReferenceContext(_ctx, getState()); + enterRule(_localctx, 568, RULE_catalogObjectParentReference); + int _la; + try { + int _alt; + setState(2795); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CURRENT_SCHEMA: + case HOME_SCHEMA: + case SUBSTITUTED_PARAMETER_REFERENCE: + case DOUBLE_PERIOD: + case PERIOD: + case SOLIDUS: + enterOuterAlt(_localctx, 1); + { + setState(2776); + schemaReference(); + setState(2778); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SOLIDUS) { + { + setState(2777); + match(SOLIDUS); + } + } + + setState(2785); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,248,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2780); + objectName(); + setState(2781); + match(PERIOD); + } + } + } + setState(2787); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,248,_ctx); + } + } + break; + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case ACCENT_QUOTED_CHARACTER_SEQUENCE: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(2791); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(2788); + objectName(); + setState(2789); + match(PERIOD); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(2793); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,249,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReferenceParameterSpecificationContext extends ParserRuleContext { + public TerminalNode SUBSTITUTED_PARAMETER_REFERENCE() { return getToken(GQL_20240412Parser.SUBSTITUTED_PARAMETER_REFERENCE, 0); } + public ReferenceParameterSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_referenceParameterSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterReferenceParameterSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitReferenceParameterSpecification(this); + } + } + + public final ReferenceParameterSpecificationContext referenceParameterSpecification() throws RecognitionException { + ReferenceParameterSpecificationContext _localctx = new ReferenceParameterSpecificationContext(_ctx, getState()); + enterRule(_localctx, 570, RULE_referenceParameterSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(2797); + match(SUBSTITUTED_PARAMETER_REFERENCE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NestedGraphTypeSpecificationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public GraphTypeSpecificationBodyContext graphTypeSpecificationBody() { + return getRuleContext(GraphTypeSpecificationBodyContext.class,0); + } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public NestedGraphTypeSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nestedGraphTypeSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNestedGraphTypeSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNestedGraphTypeSpecification(this); + } + } + + public final NestedGraphTypeSpecificationContext nestedGraphTypeSpecification() throws RecognitionException { + NestedGraphTypeSpecificationContext _localctx = new NestedGraphTypeSpecificationContext(_ctx, getState()); + enterRule(_localctx, 572, RULE_nestedGraphTypeSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(2799); + match(LEFT_BRACE); + setState(2800); + graphTypeSpecificationBody(); + setState(2801); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphTypeSpecificationBodyContext extends ParserRuleContext { + public ElementTypeListContext elementTypeList() { + return getRuleContext(ElementTypeListContext.class,0); + } + public GraphTypeSpecificationBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphTypeSpecificationBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphTypeSpecificationBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphTypeSpecificationBody(this); + } + } + + public final GraphTypeSpecificationBodyContext graphTypeSpecificationBody() throws RecognitionException { + GraphTypeSpecificationBodyContext _localctx = new GraphTypeSpecificationBodyContext(_ctx, getState()); + enterRule(_localctx, 574, RULE_graphTypeSpecificationBody); + try { + enterOuterAlt(_localctx, 1); + { + setState(2803); + elementTypeList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementTypeListContext extends ParserRuleContext { + public List elementTypeSpecification() { + return getRuleContexts(ElementTypeSpecificationContext.class); + } + public ElementTypeSpecificationContext elementTypeSpecification(int i) { + return getRuleContext(ElementTypeSpecificationContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public ElementTypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementTypeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementTypeList(this); + } + } + + public final ElementTypeListContext elementTypeList() throws RecognitionException { + ElementTypeListContext _localctx = new ElementTypeListContext(_ctx, getState()); + enterRule(_localctx, 576, RULE_elementTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2805); + elementTypeSpecification(); + setState(2810); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2806); + match(COMMA); + setState(2807); + elementTypeSpecification(); + } + } + setState(2812); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementTypeSpecificationContext extends ParserRuleContext { + public NodeTypeSpecificationContext nodeTypeSpecification() { + return getRuleContext(NodeTypeSpecificationContext.class,0); + } + public EdgeTypeSpecificationContext edgeTypeSpecification() { + return getRuleContext(EdgeTypeSpecificationContext.class,0); + } + public ElementTypeSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementTypeSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementTypeSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementTypeSpecification(this); + } + } + + public final ElementTypeSpecificationContext elementTypeSpecification() throws RecognitionException { + ElementTypeSpecificationContext _localctx = new ElementTypeSpecificationContext(_ctx, getState()); + enterRule(_localctx, 578, RULE_elementTypeSpecification); + try { + setState(2815); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,252,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2813); + nodeTypeSpecification(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2814); + edgeTypeSpecification(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypeSpecificationContext extends ParserRuleContext { + public NodeTypePatternContext nodeTypePattern() { + return getRuleContext(NodeTypePatternContext.class,0); + } + public NodeTypePhraseContext nodeTypePhrase() { + return getRuleContext(NodeTypePhraseContext.class,0); + } + public NodeTypeSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypeSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypeSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypeSpecification(this); + } + } + + public final NodeTypeSpecificationContext nodeTypeSpecification() throws RecognitionException { + NodeTypeSpecificationContext _localctx = new NodeTypeSpecificationContext(_ctx, getState()); + enterRule(_localctx, 580, RULE_nodeTypeSpecification); + try { + setState(2819); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,253,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2817); + nodeTypePattern(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2818); + nodeTypePhrase(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypePatternContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public NodeSynonymContext nodeSynonym() { + return getRuleContext(NodeSynonymContext.class,0); + } + public NodeTypeNameContext nodeTypeName() { + return getRuleContext(NodeTypeNameContext.class,0); + } + public LocalNodeTypeAliasContext localNodeTypeAlias() { + return getRuleContext(LocalNodeTypeAliasContext.class,0); + } + public NodeTypeFillerContext nodeTypeFiller() { + return getRuleContext(NodeTypeFillerContext.class,0); + } + public TerminalNode TYPE() { return getToken(GQL_20240412Parser.TYPE, 0); } + public NodeTypePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypePattern(this); + } + } + + public final NodeTypePatternContext nodeTypePattern() throws RecognitionException { + NodeTypePatternContext _localctx = new NodeTypePatternContext(_ctx, getState()); + enterRule(_localctx, 582, RULE_nodeTypePattern); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2827); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NODE || _la==VERTEX) { + { + setState(2821); + nodeSynonym(); + setState(2823); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,254,_ctx) ) { + case 1: + { + setState(2822); + match(TYPE); + } + break; + } + setState(2825); + nodeTypeName(); + } + } + + setState(2829); + match(LEFT_PAREN); + setState(2831); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,256,_ctx) ) { + case 1: + { + setState(2830); + localNodeTypeAlias(); + } + break; + } + setState(2834); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLIES || _la==IS || _la==LABEL || _la==LABELS || _la==COLON || _la==LEFT_BRACE) { + { + setState(2833); + nodeTypeFiller(); + } + } + + setState(2836); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypePhraseContext extends ParserRuleContext { + public NodeSynonymContext nodeSynonym() { + return getRuleContext(NodeSynonymContext.class,0); + } + public NodeTypePhraseFillerContext nodeTypePhraseFiller() { + return getRuleContext(NodeTypePhraseFillerContext.class,0); + } + public TerminalNode TYPE() { return getToken(GQL_20240412Parser.TYPE, 0); } + public TerminalNode AS() { return getToken(GQL_20240412Parser.AS, 0); } + public LocalNodeTypeAliasContext localNodeTypeAlias() { + return getRuleContext(LocalNodeTypeAliasContext.class,0); + } + public NodeTypePhraseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypePhrase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypePhrase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypePhrase(this); + } + } + + public final NodeTypePhraseContext nodeTypePhrase() throws RecognitionException { + NodeTypePhraseContext _localctx = new NodeTypePhraseContext(_ctx, getState()); + enterRule(_localctx, 584, RULE_nodeTypePhrase); + try { + enterOuterAlt(_localctx, 1); + { + setState(2838); + nodeSynonym(); + setState(2840); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,258,_ctx) ) { + case 1: + { + setState(2839); + match(TYPE); + } + break; + } + setState(2842); + nodeTypePhraseFiller(); + setState(2845); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,259,_ctx) ) { + case 1: + { + setState(2843); + match(AS); + setState(2844); + localNodeTypeAlias(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypePhraseFillerContext extends ParserRuleContext { + public NodeTypeNameContext nodeTypeName() { + return getRuleContext(NodeTypeNameContext.class,0); + } + public NodeTypeFillerContext nodeTypeFiller() { + return getRuleContext(NodeTypeFillerContext.class,0); + } + public NodeTypePhraseFillerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypePhraseFiller; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypePhraseFiller(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypePhraseFiller(this); + } + } + + public final NodeTypePhraseFillerContext nodeTypePhraseFiller() throws RecognitionException { + NodeTypePhraseFillerContext _localctx = new NodeTypePhraseFillerContext(_ctx, getState()); + enterRule(_localctx, 586, RULE_nodeTypePhraseFiller); + try { + setState(2852); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,261,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2847); + nodeTypeName(); + setState(2849); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,260,_ctx) ) { + case 1: + { + setState(2848); + nodeTypeFiller(); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2851); + nodeTypeFiller(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypeFillerContext extends ParserRuleContext { + public NodeTypeKeyLabelSetContext nodeTypeKeyLabelSet() { + return getRuleContext(NodeTypeKeyLabelSetContext.class,0); + } + public NodeTypeImpliedContentContext nodeTypeImpliedContent() { + return getRuleContext(NodeTypeImpliedContentContext.class,0); + } + public NodeTypeFillerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypeFiller; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypeFiller(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypeFiller(this); + } + } + + public final NodeTypeFillerContext nodeTypeFiller() throws RecognitionException { + NodeTypeFillerContext _localctx = new NodeTypeFillerContext(_ctx, getState()); + enterRule(_localctx, 588, RULE_nodeTypeFiller); + try { + setState(2859); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,263,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2854); + nodeTypeKeyLabelSet(); + setState(2856); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,262,_ctx) ) { + case 1: + { + setState(2855); + nodeTypeImpliedContent(); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2858); + nodeTypeImpliedContent(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocalNodeTypeAliasContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public LocalNodeTypeAliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_localNodeTypeAlias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLocalNodeTypeAlias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLocalNodeTypeAlias(this); + } + } + + public final LocalNodeTypeAliasContext localNodeTypeAlias() throws RecognitionException { + LocalNodeTypeAliasContext _localctx = new LocalNodeTypeAliasContext(_ctx, getState()); + enterRule(_localctx, 590, RULE_localNodeTypeAlias); + try { + enterOuterAlt(_localctx, 1); + { + setState(2861); + regularIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypeImpliedContentContext extends ParserRuleContext { + public NodeTypeLabelSetContext nodeTypeLabelSet() { + return getRuleContext(NodeTypeLabelSetContext.class,0); + } + public NodeTypePropertyTypesContext nodeTypePropertyTypes() { + return getRuleContext(NodeTypePropertyTypesContext.class,0); + } + public NodeTypeImpliedContentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypeImpliedContent; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypeImpliedContent(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypeImpliedContent(this); + } + } + + public final NodeTypeImpliedContentContext nodeTypeImpliedContent() throws RecognitionException { + NodeTypeImpliedContentContext _localctx = new NodeTypeImpliedContentContext(_ctx, getState()); + enterRule(_localctx, 592, RULE_nodeTypeImpliedContent); + try { + setState(2868); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,264,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2863); + nodeTypeLabelSet(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2864); + nodeTypePropertyTypes(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2865); + nodeTypeLabelSet(); + setState(2866); + nodeTypePropertyTypes(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypeKeyLabelSetContext extends ParserRuleContext { + public TerminalNode IMPLIES() { return getToken(GQL_20240412Parser.IMPLIES, 0); } + public LabelSetPhraseContext labelSetPhrase() { + return getRuleContext(LabelSetPhraseContext.class,0); + } + public NodeTypeKeyLabelSetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypeKeyLabelSet; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypeKeyLabelSet(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypeKeyLabelSet(this); + } + } + + public final NodeTypeKeyLabelSetContext nodeTypeKeyLabelSet() throws RecognitionException { + NodeTypeKeyLabelSetContext _localctx = new NodeTypeKeyLabelSetContext(_ctx, getState()); + enterRule(_localctx, 594, RULE_nodeTypeKeyLabelSet); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2871); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || _la==LABEL || _la==LABELS || _la==COLON) { + { + setState(2870); + labelSetPhrase(); + } + } + + setState(2873); + match(IMPLIES); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypeLabelSetContext extends ParserRuleContext { + public LabelSetPhraseContext labelSetPhrase() { + return getRuleContext(LabelSetPhraseContext.class,0); + } + public NodeTypeLabelSetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypeLabelSet; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypeLabelSet(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypeLabelSet(this); + } + } + + public final NodeTypeLabelSetContext nodeTypeLabelSet() throws RecognitionException { + NodeTypeLabelSetContext _localctx = new NodeTypeLabelSetContext(_ctx, getState()); + enterRule(_localctx, 596, RULE_nodeTypeLabelSet); + try { + enterOuterAlt(_localctx, 1); + { + setState(2875); + labelSetPhrase(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypePropertyTypesContext extends ParserRuleContext { + public PropertyTypesSpecificationContext propertyTypesSpecification() { + return getRuleContext(PropertyTypesSpecificationContext.class,0); + } + public NodeTypePropertyTypesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypePropertyTypes; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypePropertyTypes(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypePropertyTypes(this); + } + } + + public final NodeTypePropertyTypesContext nodeTypePropertyTypes() throws RecognitionException { + NodeTypePropertyTypesContext _localctx = new NodeTypePropertyTypesContext(_ctx, getState()); + enterRule(_localctx, 598, RULE_nodeTypePropertyTypes); + try { + enterOuterAlt(_localctx, 1); + { + setState(2877); + propertyTypesSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypeSpecificationContext extends ParserRuleContext { + public EdgeTypePatternContext edgeTypePattern() { + return getRuleContext(EdgeTypePatternContext.class,0); + } + public EdgeTypePhraseContext edgeTypePhrase() { + return getRuleContext(EdgeTypePhraseContext.class,0); + } + public EdgeTypeSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypeSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypeSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypeSpecification(this); + } + } + + public final EdgeTypeSpecificationContext edgeTypeSpecification() throws RecognitionException { + EdgeTypeSpecificationContext _localctx = new EdgeTypeSpecificationContext(_ctx, getState()); + enterRule(_localctx, 600, RULE_edgeTypeSpecification); + try { + setState(2881); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,266,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2879); + edgeTypePattern(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2880); + edgeTypePhrase(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypePatternContext extends ParserRuleContext { + public EdgeTypePatternDirectedContext edgeTypePatternDirected() { + return getRuleContext(EdgeTypePatternDirectedContext.class,0); + } + public EdgeTypePatternUndirectedContext edgeTypePatternUndirected() { + return getRuleContext(EdgeTypePatternUndirectedContext.class,0); + } + public EdgeSynonymContext edgeSynonym() { + return getRuleContext(EdgeSynonymContext.class,0); + } + public EdgeTypeNameContext edgeTypeName() { + return getRuleContext(EdgeTypeNameContext.class,0); + } + public EdgeKindContext edgeKind() { + return getRuleContext(EdgeKindContext.class,0); + } + public TerminalNode TYPE() { return getToken(GQL_20240412Parser.TYPE, 0); } + public EdgeTypePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypePattern(this); + } + } + + public final EdgeTypePatternContext edgeTypePattern() throws RecognitionException { + EdgeTypePatternContext _localctx = new EdgeTypePatternContext(_ctx, getState()); + enterRule(_localctx, 602, RULE_edgeTypePattern); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2892); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la - 283)) & ~0x3f) == 0 && ((1L << (_la - 283)) & 68736253955L) != 0) { + { + setState(2884); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DIRECTED || _la==UNDIRECTED) { + { + setState(2883); + edgeKind(); + } + } + + setState(2886); + edgeSynonym(); + setState(2888); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,268,_ctx) ) { + case 1: + { + setState(2887); + match(TYPE); + } + break; + } + setState(2890); + edgeTypeName(); + } + } + + setState(2896); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,270,_ctx) ) { + case 1: + { + setState(2894); + edgeTypePatternDirected(); + } + break; + case 2: + { + setState(2895); + edgeTypePatternUndirected(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypePhraseContext extends ParserRuleContext { + public EdgeKindContext edgeKind() { + return getRuleContext(EdgeKindContext.class,0); + } + public EdgeSynonymContext edgeSynonym() { + return getRuleContext(EdgeSynonymContext.class,0); + } + public EdgeTypePhraseFillerContext edgeTypePhraseFiller() { + return getRuleContext(EdgeTypePhraseFillerContext.class,0); + } + public EndpointPairPhraseContext endpointPairPhrase() { + return getRuleContext(EndpointPairPhraseContext.class,0); + } + public TerminalNode TYPE() { return getToken(GQL_20240412Parser.TYPE, 0); } + public EdgeTypePhraseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypePhrase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypePhrase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypePhrase(this); + } + } + + public final EdgeTypePhraseContext edgeTypePhrase() throws RecognitionException { + EdgeTypePhraseContext _localctx = new EdgeTypePhraseContext(_ctx, getState()); + enterRule(_localctx, 604, RULE_edgeTypePhrase); + try { + enterOuterAlt(_localctx, 1); + { + setState(2898); + edgeKind(); + setState(2899); + edgeSynonym(); + setState(2901); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,271,_ctx) ) { + case 1: + { + setState(2900); + match(TYPE); + } + break; + } + setState(2903); + edgeTypePhraseFiller(); + setState(2904); + endpointPairPhrase(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypePhraseFillerContext extends ParserRuleContext { + public EdgeTypeNameContext edgeTypeName() { + return getRuleContext(EdgeTypeNameContext.class,0); + } + public EdgeTypeFillerContext edgeTypeFiller() { + return getRuleContext(EdgeTypeFillerContext.class,0); + } + public EdgeTypePhraseFillerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypePhraseFiller; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypePhraseFiller(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypePhraseFiller(this); + } + } + + public final EdgeTypePhraseFillerContext edgeTypePhraseFiller() throws RecognitionException { + EdgeTypePhraseFillerContext _localctx = new EdgeTypePhraseFillerContext(_ctx, getState()); + enterRule(_localctx, 606, RULE_edgeTypePhraseFiller); + int _la; + try { + setState(2911); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,273,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2906); + edgeTypeName(); + setState(2908); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLIES || _la==IS || _la==LABEL || _la==LABELS || _la==COLON || _la==LEFT_BRACE) { + { + setState(2907); + edgeTypeFiller(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2910); + edgeTypeFiller(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypeFillerContext extends ParserRuleContext { + public EdgeTypeKeyLabelSetContext edgeTypeKeyLabelSet() { + return getRuleContext(EdgeTypeKeyLabelSetContext.class,0); + } + public EdgeTypeImpliedContentContext edgeTypeImpliedContent() { + return getRuleContext(EdgeTypeImpliedContentContext.class,0); + } + public EdgeTypeFillerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypeFiller; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypeFiller(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypeFiller(this); + } + } + + public final EdgeTypeFillerContext edgeTypeFiller() throws RecognitionException { + EdgeTypeFillerContext _localctx = new EdgeTypeFillerContext(_ctx, getState()); + enterRule(_localctx, 608, RULE_edgeTypeFiller); + int _la; + try { + setState(2918); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,275,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2913); + edgeTypeKeyLabelSet(); + setState(2915); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || _la==LABEL || _la==LABELS || _la==COLON || _la==LEFT_BRACE) { + { + setState(2914); + edgeTypeImpliedContent(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2917); + edgeTypeImpliedContent(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypeImpliedContentContext extends ParserRuleContext { + public EdgeTypeLabelSetContext edgeTypeLabelSet() { + return getRuleContext(EdgeTypeLabelSetContext.class,0); + } + public EdgeTypePropertyTypesContext edgeTypePropertyTypes() { + return getRuleContext(EdgeTypePropertyTypesContext.class,0); + } + public EdgeTypeImpliedContentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypeImpliedContent; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypeImpliedContent(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypeImpliedContent(this); + } + } + + public final EdgeTypeImpliedContentContext edgeTypeImpliedContent() throws RecognitionException { + EdgeTypeImpliedContentContext _localctx = new EdgeTypeImpliedContentContext(_ctx, getState()); + enterRule(_localctx, 610, RULE_edgeTypeImpliedContent); + try { + setState(2925); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,276,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2920); + edgeTypeLabelSet(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2921); + edgeTypePropertyTypes(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(2922); + edgeTypeLabelSet(); + setState(2923); + edgeTypePropertyTypes(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypeKeyLabelSetContext extends ParserRuleContext { + public TerminalNode IMPLIES() { return getToken(GQL_20240412Parser.IMPLIES, 0); } + public LabelSetPhraseContext labelSetPhrase() { + return getRuleContext(LabelSetPhraseContext.class,0); + } + public EdgeTypeKeyLabelSetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypeKeyLabelSet; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypeKeyLabelSet(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypeKeyLabelSet(this); + } + } + + public final EdgeTypeKeyLabelSetContext edgeTypeKeyLabelSet() throws RecognitionException { + EdgeTypeKeyLabelSetContext _localctx = new EdgeTypeKeyLabelSetContext(_ctx, getState()); + enterRule(_localctx, 612, RULE_edgeTypeKeyLabelSet); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2928); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IS || _la==LABEL || _la==LABELS || _la==COLON) { + { + setState(2927); + labelSetPhrase(); + } + } + + setState(2930); + match(IMPLIES); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypeLabelSetContext extends ParserRuleContext { + public LabelSetPhraseContext labelSetPhrase() { + return getRuleContext(LabelSetPhraseContext.class,0); + } + public EdgeTypeLabelSetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypeLabelSet; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypeLabelSet(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypeLabelSet(this); + } + } + + public final EdgeTypeLabelSetContext edgeTypeLabelSet() throws RecognitionException { + EdgeTypeLabelSetContext _localctx = new EdgeTypeLabelSetContext(_ctx, getState()); + enterRule(_localctx, 614, RULE_edgeTypeLabelSet); + try { + enterOuterAlt(_localctx, 1); + { + setState(2932); + labelSetPhrase(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypePropertyTypesContext extends ParserRuleContext { + public PropertyTypesSpecificationContext propertyTypesSpecification() { + return getRuleContext(PropertyTypesSpecificationContext.class,0); + } + public EdgeTypePropertyTypesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypePropertyTypes; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypePropertyTypes(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypePropertyTypes(this); + } + } + + public final EdgeTypePropertyTypesContext edgeTypePropertyTypes() throws RecognitionException { + EdgeTypePropertyTypesContext _localctx = new EdgeTypePropertyTypesContext(_ctx, getState()); + enterRule(_localctx, 616, RULE_edgeTypePropertyTypes); + try { + enterOuterAlt(_localctx, 1); + { + setState(2934); + propertyTypesSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypePatternDirectedContext extends ParserRuleContext { + public EdgeTypePatternPointingRightContext edgeTypePatternPointingRight() { + return getRuleContext(EdgeTypePatternPointingRightContext.class,0); + } + public EdgeTypePatternPointingLeftContext edgeTypePatternPointingLeft() { + return getRuleContext(EdgeTypePatternPointingLeftContext.class,0); + } + public EdgeTypePatternDirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypePatternDirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypePatternDirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypePatternDirected(this); + } + } + + public final EdgeTypePatternDirectedContext edgeTypePatternDirected() throws RecognitionException { + EdgeTypePatternDirectedContext _localctx = new EdgeTypePatternDirectedContext(_ctx, getState()); + enterRule(_localctx, 618, RULE_edgeTypePatternDirected); + try { + setState(2938); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,278,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2936); + edgeTypePatternPointingRight(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2937); + edgeTypePatternPointingLeft(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypePatternPointingRightContext extends ParserRuleContext { + public SourceNodeTypeReferenceContext sourceNodeTypeReference() { + return getRuleContext(SourceNodeTypeReferenceContext.class,0); + } + public ArcTypePointingRightContext arcTypePointingRight() { + return getRuleContext(ArcTypePointingRightContext.class,0); + } + public DestinationNodeTypeReferenceContext destinationNodeTypeReference() { + return getRuleContext(DestinationNodeTypeReferenceContext.class,0); + } + public EdgeTypePatternPointingRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypePatternPointingRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypePatternPointingRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypePatternPointingRight(this); + } + } + + public final EdgeTypePatternPointingRightContext edgeTypePatternPointingRight() throws RecognitionException { + EdgeTypePatternPointingRightContext _localctx = new EdgeTypePatternPointingRightContext(_ctx, getState()); + enterRule(_localctx, 620, RULE_edgeTypePatternPointingRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2940); + sourceNodeTypeReference(); + setState(2941); + arcTypePointingRight(); + setState(2942); + destinationNodeTypeReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypePatternPointingLeftContext extends ParserRuleContext { + public DestinationNodeTypeReferenceContext destinationNodeTypeReference() { + return getRuleContext(DestinationNodeTypeReferenceContext.class,0); + } + public ArcTypePointingLeftContext arcTypePointingLeft() { + return getRuleContext(ArcTypePointingLeftContext.class,0); + } + public SourceNodeTypeReferenceContext sourceNodeTypeReference() { + return getRuleContext(SourceNodeTypeReferenceContext.class,0); + } + public EdgeTypePatternPointingLeftContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypePatternPointingLeft; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypePatternPointingLeft(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypePatternPointingLeft(this); + } + } + + public final EdgeTypePatternPointingLeftContext edgeTypePatternPointingLeft() throws RecognitionException { + EdgeTypePatternPointingLeftContext _localctx = new EdgeTypePatternPointingLeftContext(_ctx, getState()); + enterRule(_localctx, 622, RULE_edgeTypePatternPointingLeft); + try { + enterOuterAlt(_localctx, 1); + { + setState(2944); + destinationNodeTypeReference(); + setState(2945); + arcTypePointingLeft(); + setState(2946); + sourceNodeTypeReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypePatternUndirectedContext extends ParserRuleContext { + public SourceNodeTypeReferenceContext sourceNodeTypeReference() { + return getRuleContext(SourceNodeTypeReferenceContext.class,0); + } + public ArcTypeUndirectedContext arcTypeUndirected() { + return getRuleContext(ArcTypeUndirectedContext.class,0); + } + public DestinationNodeTypeReferenceContext destinationNodeTypeReference() { + return getRuleContext(DestinationNodeTypeReferenceContext.class,0); + } + public EdgeTypePatternUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypePatternUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypePatternUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypePatternUndirected(this); + } + } + + public final EdgeTypePatternUndirectedContext edgeTypePatternUndirected() throws RecognitionException { + EdgeTypePatternUndirectedContext _localctx = new EdgeTypePatternUndirectedContext(_ctx, getState()); + enterRule(_localctx, 624, RULE_edgeTypePatternUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(2948); + sourceNodeTypeReference(); + setState(2949); + arcTypeUndirected(); + setState(2950); + destinationNodeTypeReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArcTypePointingRightContext extends ParserRuleContext { + public TerminalNode MINUS_LEFT_BRACKET() { return getToken(GQL_20240412Parser.MINUS_LEFT_BRACKET, 0); } + public EdgeTypeFillerContext edgeTypeFiller() { + return getRuleContext(EdgeTypeFillerContext.class,0); + } + public TerminalNode BRACKET_RIGHT_ARROW() { return getToken(GQL_20240412Parser.BRACKET_RIGHT_ARROW, 0); } + public ArcTypePointingRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arcTypePointingRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterArcTypePointingRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitArcTypePointingRight(this); + } + } + + public final ArcTypePointingRightContext arcTypePointingRight() throws RecognitionException { + ArcTypePointingRightContext _localctx = new ArcTypePointingRightContext(_ctx, getState()); + enterRule(_localctx, 626, RULE_arcTypePointingRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2952); + match(MINUS_LEFT_BRACKET); + setState(2953); + edgeTypeFiller(); + setState(2954); + match(BRACKET_RIGHT_ARROW); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArcTypePointingLeftContext extends ParserRuleContext { + public TerminalNode LEFT_ARROW_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ARROW_BRACKET, 0); } + public EdgeTypeFillerContext edgeTypeFiller() { + return getRuleContext(EdgeTypeFillerContext.class,0); + } + public TerminalNode RIGHT_BRACKET_MINUS() { return getToken(GQL_20240412Parser.RIGHT_BRACKET_MINUS, 0); } + public ArcTypePointingLeftContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arcTypePointingLeft; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterArcTypePointingLeft(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitArcTypePointingLeft(this); + } + } + + public final ArcTypePointingLeftContext arcTypePointingLeft() throws RecognitionException { + ArcTypePointingLeftContext _localctx = new ArcTypePointingLeftContext(_ctx, getState()); + enterRule(_localctx, 628, RULE_arcTypePointingLeft); + try { + enterOuterAlt(_localctx, 1); + { + setState(2956); + match(LEFT_ARROW_BRACKET); + setState(2957); + edgeTypeFiller(); + setState(2958); + match(RIGHT_BRACKET_MINUS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArcTypeUndirectedContext extends ParserRuleContext { + public TerminalNode TILDE_LEFT_BRACKET() { return getToken(GQL_20240412Parser.TILDE_LEFT_BRACKET, 0); } + public EdgeTypeFillerContext edgeTypeFiller() { + return getRuleContext(EdgeTypeFillerContext.class,0); + } + public TerminalNode RIGHT_BRACKET_TILDE() { return getToken(GQL_20240412Parser.RIGHT_BRACKET_TILDE, 0); } + public ArcTypeUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arcTypeUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterArcTypeUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitArcTypeUndirected(this); + } + } + + public final ArcTypeUndirectedContext arcTypeUndirected() throws RecognitionException { + ArcTypeUndirectedContext _localctx = new ArcTypeUndirectedContext(_ctx, getState()); + enterRule(_localctx, 630, RULE_arcTypeUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(2960); + match(TILDE_LEFT_BRACKET); + setState(2961); + edgeTypeFiller(); + setState(2962); + match(RIGHT_BRACKET_TILDE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SourceNodeTypeReferenceContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public SourceNodeTypeAliasContext sourceNodeTypeAlias() { + return getRuleContext(SourceNodeTypeAliasContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public NodeTypeFillerContext nodeTypeFiller() { + return getRuleContext(NodeTypeFillerContext.class,0); + } + public SourceNodeTypeReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sourceNodeTypeReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSourceNodeTypeReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSourceNodeTypeReference(this); + } + } + + public final SourceNodeTypeReferenceContext sourceNodeTypeReference() throws RecognitionException { + SourceNodeTypeReferenceContext _localctx = new SourceNodeTypeReferenceContext(_ctx, getState()); + enterRule(_localctx, 632, RULE_sourceNodeTypeReference); + int _la; + try { + setState(2973); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,280,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2964); + match(LEFT_PAREN); + setState(2965); + sourceNodeTypeAlias(); + setState(2966); + match(RIGHT_PAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2968); + match(LEFT_PAREN); + setState(2970); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLIES || _la==IS || _la==LABEL || _la==LABELS || _la==COLON || _la==LEFT_BRACE) { + { + setState(2969); + nodeTypeFiller(); + } + } + + setState(2972); + match(RIGHT_PAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DestinationNodeTypeReferenceContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public DestinationNodeTypeAliasContext destinationNodeTypeAlias() { + return getRuleContext(DestinationNodeTypeAliasContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public NodeTypeFillerContext nodeTypeFiller() { + return getRuleContext(NodeTypeFillerContext.class,0); + } + public DestinationNodeTypeReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_destinationNodeTypeReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDestinationNodeTypeReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDestinationNodeTypeReference(this); + } + } + + public final DestinationNodeTypeReferenceContext destinationNodeTypeReference() throws RecognitionException { + DestinationNodeTypeReferenceContext _localctx = new DestinationNodeTypeReferenceContext(_ctx, getState()); + enterRule(_localctx, 634, RULE_destinationNodeTypeReference); + int _la; + try { + setState(2984); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,282,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2975); + match(LEFT_PAREN); + setState(2976); + destinationNodeTypeAlias(); + setState(2977); + match(RIGHT_PAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2979); + match(LEFT_PAREN); + setState(2981); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLIES || _la==IS || _la==LABEL || _la==LABELS || _la==COLON || _la==LEFT_BRACE) { + { + setState(2980); + nodeTypeFiller(); + } + } + + setState(2983); + match(RIGHT_PAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeKindContext extends ParserRuleContext { + public TerminalNode DIRECTED() { return getToken(GQL_20240412Parser.DIRECTED, 0); } + public TerminalNode UNDIRECTED() { return getToken(GQL_20240412Parser.UNDIRECTED, 0); } + public EdgeKindContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeKind; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeKind(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeKind(this); + } + } + + public final EdgeKindContext edgeKind() throws RecognitionException { + EdgeKindContext _localctx = new EdgeKindContext(_ctx, getState()); + enterRule(_localctx, 636, RULE_edgeKind); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2986); + _la = _input.LA(1); + if ( !(_la==DIRECTED || _la==UNDIRECTED) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EndpointPairPhraseContext extends ParserRuleContext { + public TerminalNode CONNECTING() { return getToken(GQL_20240412Parser.CONNECTING, 0); } + public EndpointPairContext endpointPair() { + return getRuleContext(EndpointPairContext.class,0); + } + public EndpointPairPhraseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_endpointPairPhrase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEndpointPairPhrase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEndpointPairPhrase(this); + } + } + + public final EndpointPairPhraseContext endpointPairPhrase() throws RecognitionException { + EndpointPairPhraseContext _localctx = new EndpointPairPhraseContext(_ctx, getState()); + enterRule(_localctx, 638, RULE_endpointPairPhrase); + try { + enterOuterAlt(_localctx, 1); + { + setState(2988); + match(CONNECTING); + setState(2989); + endpointPair(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EndpointPairContext extends ParserRuleContext { + public EndpointPairDirectedContext endpointPairDirected() { + return getRuleContext(EndpointPairDirectedContext.class,0); + } + public EndpointPairUndirectedContext endpointPairUndirected() { + return getRuleContext(EndpointPairUndirectedContext.class,0); + } + public EndpointPairContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_endpointPair; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEndpointPair(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEndpointPair(this); + } + } + + public final EndpointPairContext endpointPair() throws RecognitionException { + EndpointPairContext _localctx = new EndpointPairContext(_ctx, getState()); + enterRule(_localctx, 640, RULE_endpointPair); + try { + setState(2993); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,283,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2991); + endpointPairDirected(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2992); + endpointPairUndirected(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EndpointPairDirectedContext extends ParserRuleContext { + public EndpointPairPointingRightContext endpointPairPointingRight() { + return getRuleContext(EndpointPairPointingRightContext.class,0); + } + public EndpointPairPointingLeftContext endpointPairPointingLeft() { + return getRuleContext(EndpointPairPointingLeftContext.class,0); + } + public EndpointPairDirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_endpointPairDirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEndpointPairDirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEndpointPairDirected(this); + } + } + + public final EndpointPairDirectedContext endpointPairDirected() throws RecognitionException { + EndpointPairDirectedContext _localctx = new EndpointPairDirectedContext(_ctx, getState()); + enterRule(_localctx, 642, RULE_endpointPairDirected); + try { + setState(2997); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,284,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(2995); + endpointPairPointingRight(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(2996); + endpointPairPointingLeft(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EndpointPairPointingRightContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public SourceNodeTypeAliasContext sourceNodeTypeAlias() { + return getRuleContext(SourceNodeTypeAliasContext.class,0); + } + public ConnectorPointingRightContext connectorPointingRight() { + return getRuleContext(ConnectorPointingRightContext.class,0); + } + public DestinationNodeTypeAliasContext destinationNodeTypeAlias() { + return getRuleContext(DestinationNodeTypeAliasContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public EndpointPairPointingRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_endpointPairPointingRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEndpointPairPointingRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEndpointPairPointingRight(this); + } + } + + public final EndpointPairPointingRightContext endpointPairPointingRight() throws RecognitionException { + EndpointPairPointingRightContext _localctx = new EndpointPairPointingRightContext(_ctx, getState()); + enterRule(_localctx, 644, RULE_endpointPairPointingRight); + try { + enterOuterAlt(_localctx, 1); + { + setState(2999); + match(LEFT_PAREN); + setState(3000); + sourceNodeTypeAlias(); + setState(3001); + connectorPointingRight(); + setState(3002); + destinationNodeTypeAlias(); + setState(3003); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EndpointPairPointingLeftContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public DestinationNodeTypeAliasContext destinationNodeTypeAlias() { + return getRuleContext(DestinationNodeTypeAliasContext.class,0); + } + public TerminalNode LEFT_ARROW() { return getToken(GQL_20240412Parser.LEFT_ARROW, 0); } + public SourceNodeTypeAliasContext sourceNodeTypeAlias() { + return getRuleContext(SourceNodeTypeAliasContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public EndpointPairPointingLeftContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_endpointPairPointingLeft; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEndpointPairPointingLeft(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEndpointPairPointingLeft(this); + } + } + + public final EndpointPairPointingLeftContext endpointPairPointingLeft() throws RecognitionException { + EndpointPairPointingLeftContext _localctx = new EndpointPairPointingLeftContext(_ctx, getState()); + enterRule(_localctx, 646, RULE_endpointPairPointingLeft); + try { + enterOuterAlt(_localctx, 1); + { + setState(3005); + match(LEFT_PAREN); + setState(3006); + destinationNodeTypeAlias(); + setState(3007); + match(LEFT_ARROW); + setState(3008); + sourceNodeTypeAlias(); + setState(3009); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EndpointPairUndirectedContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public SourceNodeTypeAliasContext sourceNodeTypeAlias() { + return getRuleContext(SourceNodeTypeAliasContext.class,0); + } + public ConnectorUndirectedContext connectorUndirected() { + return getRuleContext(ConnectorUndirectedContext.class,0); + } + public DestinationNodeTypeAliasContext destinationNodeTypeAlias() { + return getRuleContext(DestinationNodeTypeAliasContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public EndpointPairUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_endpointPairUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEndpointPairUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEndpointPairUndirected(this); + } + } + + public final EndpointPairUndirectedContext endpointPairUndirected() throws RecognitionException { + EndpointPairUndirectedContext _localctx = new EndpointPairUndirectedContext(_ctx, getState()); + enterRule(_localctx, 648, RULE_endpointPairUndirected); + try { + enterOuterAlt(_localctx, 1); + { + setState(3011); + match(LEFT_PAREN); + setState(3012); + sourceNodeTypeAlias(); + setState(3013); + connectorUndirected(); + setState(3014); + destinationNodeTypeAlias(); + setState(3015); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConnectorPointingRightContext extends ParserRuleContext { + public TerminalNode TO() { return getToken(GQL_20240412Parser.TO, 0); } + public TerminalNode RIGHT_ARROW() { return getToken(GQL_20240412Parser.RIGHT_ARROW, 0); } + public ConnectorPointingRightContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_connectorPointingRight; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterConnectorPointingRight(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitConnectorPointingRight(this); + } + } + + public final ConnectorPointingRightContext connectorPointingRight() throws RecognitionException { + ConnectorPointingRightContext _localctx = new ConnectorPointingRightContext(_ctx, getState()); + enterRule(_localctx, 650, RULE_connectorPointingRight); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3017); + _la = _input.LA(1); + if ( !(_la==TO || _la==RIGHT_ARROW) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConnectorUndirectedContext extends ParserRuleContext { + public TerminalNode TO() { return getToken(GQL_20240412Parser.TO, 0); } + public TerminalNode TILDE() { return getToken(GQL_20240412Parser.TILDE, 0); } + public ConnectorUndirectedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_connectorUndirected; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterConnectorUndirected(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitConnectorUndirected(this); + } + } + + public final ConnectorUndirectedContext connectorUndirected() throws RecognitionException { + ConnectorUndirectedContext _localctx = new ConnectorUndirectedContext(_ctx, getState()); + enterRule(_localctx, 652, RULE_connectorUndirected); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3019); + _la = _input.LA(1); + if ( !(_la==TO || _la==TILDE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SourceNodeTypeAliasContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public SourceNodeTypeAliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sourceNodeTypeAlias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSourceNodeTypeAlias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSourceNodeTypeAlias(this); + } + } + + public final SourceNodeTypeAliasContext sourceNodeTypeAlias() throws RecognitionException { + SourceNodeTypeAliasContext _localctx = new SourceNodeTypeAliasContext(_ctx, getState()); + enterRule(_localctx, 654, RULE_sourceNodeTypeAlias); + try { + enterOuterAlt(_localctx, 1); + { + setState(3021); + regularIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DestinationNodeTypeAliasContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public DestinationNodeTypeAliasContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_destinationNodeTypeAlias; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDestinationNodeTypeAlias(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDestinationNodeTypeAlias(this); + } + } + + public final DestinationNodeTypeAliasContext destinationNodeTypeAlias() throws RecognitionException { + DestinationNodeTypeAliasContext _localctx = new DestinationNodeTypeAliasContext(_ctx, getState()); + enterRule(_localctx, 656, RULE_destinationNodeTypeAlias); + try { + enterOuterAlt(_localctx, 1); + { + setState(3023); + regularIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabelSetPhraseContext extends ParserRuleContext { + public TerminalNode LABEL() { return getToken(GQL_20240412Parser.LABEL, 0); } + public LabelNameContext labelName() { + return getRuleContext(LabelNameContext.class,0); + } + public TerminalNode LABELS() { return getToken(GQL_20240412Parser.LABELS, 0); } + public LabelSetSpecificationContext labelSetSpecification() { + return getRuleContext(LabelSetSpecificationContext.class,0); + } + public IsOrColonContext isOrColon() { + return getRuleContext(IsOrColonContext.class,0); + } + public LabelSetPhraseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labelSetPhrase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelSetPhrase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelSetPhrase(this); + } + } + + public final LabelSetPhraseContext labelSetPhrase() throws RecognitionException { + LabelSetPhraseContext _localctx = new LabelSetPhraseContext(_ctx, getState()); + enterRule(_localctx, 658, RULE_labelSetPhrase); + try { + setState(3032); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LABEL: + enterOuterAlt(_localctx, 1); + { + setState(3025); + match(LABEL); + setState(3026); + labelName(); + } + break; + case LABELS: + enterOuterAlt(_localctx, 2); + { + setState(3027); + match(LABELS); + setState(3028); + labelSetSpecification(); + } + break; + case IS: + case COLON: + enterOuterAlt(_localctx, 3); + { + setState(3029); + isOrColon(); + setState(3030); + labelSetSpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabelSetSpecificationContext extends ParserRuleContext { + public List labelName() { + return getRuleContexts(LabelNameContext.class); + } + public LabelNameContext labelName(int i) { + return getRuleContext(LabelNameContext.class,i); + } + public List AMPERSAND() { return getTokens(GQL_20240412Parser.AMPERSAND); } + public TerminalNode AMPERSAND(int i) { + return getToken(GQL_20240412Parser.AMPERSAND, i); + } + public LabelSetSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labelSetSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelSetSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelSetSpecification(this); + } + } + + public final LabelSetSpecificationContext labelSetSpecification() throws RecognitionException { + LabelSetSpecificationContext _localctx = new LabelSetSpecificationContext(_ctx, getState()); + enterRule(_localctx, 660, RULE_labelSetSpecification); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(3034); + labelName(); + setState(3039); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,286,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(3035); + match(AMPERSAND); + setState(3036); + labelName(); + } + } + } + setState(3041); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,286,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyTypesSpecificationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public PropertyTypeListContext propertyTypeList() { + return getRuleContext(PropertyTypeListContext.class,0); + } + public PropertyTypesSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyTypesSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPropertyTypesSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPropertyTypesSpecification(this); + } + } + + public final PropertyTypesSpecificationContext propertyTypesSpecification() throws RecognitionException { + PropertyTypesSpecificationContext _localctx = new PropertyTypesSpecificationContext(_ctx, getState()); + enterRule(_localctx, 662, RULE_propertyTypesSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3042); + match(LEFT_BRACE); + setState(3044); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==ACCENT_QUOTED_CHARACTER_SEQUENCE || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0) { + { + setState(3043); + propertyTypeList(); + } + } + + setState(3046); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyTypeListContext extends ParserRuleContext { + public List propertyType() { + return getRuleContexts(PropertyTypeContext.class); + } + public PropertyTypeContext propertyType(int i) { + return getRuleContext(PropertyTypeContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public PropertyTypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyTypeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPropertyTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPropertyTypeList(this); + } + } + + public final PropertyTypeListContext propertyTypeList() throws RecognitionException { + PropertyTypeListContext _localctx = new PropertyTypeListContext(_ctx, getState()); + enterRule(_localctx, 664, RULE_propertyTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3048); + propertyType(); + setState(3053); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(3049); + match(COMMA); + setState(3050); + propertyType(); + } + } + setState(3055); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyTypeContext extends ParserRuleContext { + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public PropertyValueTypeContext propertyValueType() { + return getRuleContext(PropertyValueTypeContext.class,0); + } + public TypedContext typed() { + return getRuleContext(TypedContext.class,0); + } + public PropertyTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPropertyType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPropertyType(this); + } + } + + public final PropertyTypeContext propertyType() throws RecognitionException { + PropertyTypeContext _localctx = new PropertyTypeContext(_ctx, getState()); + enterRule(_localctx, 666, RULE_propertyType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3056); + propertyName(); + setState(3058); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || _la==DOUBLE_COLON) { + { + setState(3057); + typed(); + } + } + + setState(3060); + propertyValueType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyValueTypeContext extends ParserRuleContext { + public ValueTypeContext valueType() { + return getRuleContext(ValueTypeContext.class,0); + } + public PropertyValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPropertyValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPropertyValueType(this); + } + } + + public final PropertyValueTypeContext propertyValueType() throws RecognitionException { + PropertyValueTypeContext _localctx = new PropertyValueTypeContext(_ctx, getState()); + enterRule(_localctx, 668, RULE_propertyValueType); + try { + enterOuterAlt(_localctx, 1); + { + setState(3062); + valueType(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingTableTypeContext extends ParserRuleContext { + public TerminalNode TABLE() { return getToken(GQL_20240412Parser.TABLE, 0); } + public FieldTypesSpecificationContext fieldTypesSpecification() { + return getRuleContext(FieldTypesSpecificationContext.class,0); + } + public TerminalNode BINDING() { return getToken(GQL_20240412Parser.BINDING, 0); } + public BindingTableTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingTableType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingTableType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingTableType(this); + } + } + + public final BindingTableTypeContext bindingTableType() throws RecognitionException { + BindingTableTypeContext _localctx = new BindingTableTypeContext(_ctx, getState()); + enterRule(_localctx, 670, RULE_bindingTableType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3065); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BINDING) { + { + setState(3064); + match(BINDING); + } + } + + setState(3067); + match(TABLE); + setState(3068); + fieldTypesSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueTypeContext extends ParserRuleContext { + public ValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueType; } + + public ValueTypeContext() { } + public void copyFrom(ValueTypeContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class DynamicPropertyValueTypeLabelContext extends ValueTypeContext { + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public TerminalNode VALUE() { return getToken(GQL_20240412Parser.VALUE, 0); } + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public DynamicPropertyValueTypeLabelContext(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDynamicPropertyValueTypeLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDynamicPropertyValueTypeLabel(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ClosedDynamicUnionTypeAtl1Context extends ValueTypeContext { + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public TerminalNode LEFT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ANGLE_BRACKET, 0); } + public List valueType() { + return getRuleContexts(ValueTypeContext.class); + } + public ValueTypeContext valueType(int i) { + return getRuleContext(ValueTypeContext.class,i); + } + public TerminalNode RIGHT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_ANGLE_BRACKET, 0); } + public TerminalNode VALUE() { return getToken(GQL_20240412Parser.VALUE, 0); } + public List VERTICAL_BAR() { return getTokens(GQL_20240412Parser.VERTICAL_BAR); } + public TerminalNode VERTICAL_BAR(int i) { + return getToken(GQL_20240412Parser.VERTICAL_BAR, i); + } + public ClosedDynamicUnionTypeAtl1Context(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterClosedDynamicUnionTypeAtl1(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitClosedDynamicUnionTypeAtl1(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ClosedDynamicUnionTypeAtl2Context extends ValueTypeContext { + public List valueType() { + return getRuleContexts(ValueTypeContext.class); + } + public ValueTypeContext valueType(int i) { + return getRuleContext(ValueTypeContext.class,i); + } + public TerminalNode VERTICAL_BAR() { return getToken(GQL_20240412Parser.VERTICAL_BAR, 0); } + public ClosedDynamicUnionTypeAtl2Context(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterClosedDynamicUnionTypeAtl2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitClosedDynamicUnionTypeAtl2(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PathValueTypeLabelContext extends ValueTypeContext { + public PathValueTypeContext pathValueType() { + return getRuleContext(PathValueTypeContext.class,0); + } + public PathValueTypeLabelContext(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathValueTypeLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathValueTypeLabel(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ListValueTypeAlt3Context extends ValueTypeContext { + public ListValueTypeNameContext listValueTypeName() { + return getRuleContext(ListValueTypeNameContext.class,0); + } + public TerminalNode LEFT_BRACKET() { return getToken(GQL_20240412Parser.LEFT_BRACKET, 0); } + public MaxLengthContext maxLength() { + return getRuleContext(MaxLengthContext.class,0); + } + public TerminalNode RIGHT_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_BRACKET, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public ListValueTypeAlt3Context(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueTypeAlt3(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueTypeAlt3(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ListValueTypeAlt2Context extends ValueTypeContext { + public ValueTypeContext valueType() { + return getRuleContext(ValueTypeContext.class,0); + } + public ListValueTypeNameContext listValueTypeName() { + return getRuleContext(ListValueTypeNameContext.class,0); + } + public TerminalNode LEFT_BRACKET() { return getToken(GQL_20240412Parser.LEFT_BRACKET, 0); } + public MaxLengthContext maxLength() { + return getRuleContext(MaxLengthContext.class,0); + } + public TerminalNode RIGHT_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_BRACKET, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public ListValueTypeAlt2Context(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueTypeAlt2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueTypeAlt2(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ListValueTypeAlt1Context extends ValueTypeContext { + public ListValueTypeNameContext listValueTypeName() { + return getRuleContext(ListValueTypeNameContext.class,0); + } + public TerminalNode LEFT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ANGLE_BRACKET, 0); } + public ValueTypeContext valueType() { + return getRuleContext(ValueTypeContext.class,0); + } + public TerminalNode RIGHT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_ANGLE_BRACKET, 0); } + public TerminalNode LEFT_BRACKET() { return getToken(GQL_20240412Parser.LEFT_BRACKET, 0); } + public MaxLengthContext maxLength() { + return getRuleContext(MaxLengthContext.class,0); + } + public TerminalNode RIGHT_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_BRACKET, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public ListValueTypeAlt1Context(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueTypeAlt1(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueTypeAlt1(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PredefinedTypeLabelContext extends ValueTypeContext { + public PredefinedTypeContext predefinedType() { + return getRuleContext(PredefinedTypeContext.class,0); + } + public PredefinedTypeLabelContext(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPredefinedTypeLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPredefinedTypeLabel(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class RecordTypeLabelContext extends ValueTypeContext { + public RecordTypeContext recordType() { + return getRuleContext(RecordTypeContext.class,0); + } + public RecordTypeLabelContext(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRecordTypeLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRecordTypeLabel(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class OpenDynamicUnionTypeLabelContext extends ValueTypeContext { + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public TerminalNode VALUE() { return getToken(GQL_20240412Parser.VALUE, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public OpenDynamicUnionTypeLabelContext(ValueTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOpenDynamicUnionTypeLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOpenDynamicUnionTypeLabel(this); + } + } + + public final ValueTypeContext valueType() throws RecognitionException { + return valueType(0); + } + + private ValueTypeContext valueType(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ValueTypeContext _localctx = new ValueTypeContext(_ctx, _parentState); + ValueTypeContext _prevctx = _localctx; + int _startState = 672; + enterRecursionRule(_localctx, 672, RULE_valueType, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(3127); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,301,_ctx) ) { + case 1: + { + _localctx = new PredefinedTypeLabelContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(3071); + predefinedType(); + } + break; + case 2: + { + _localctx = new PathValueTypeLabelContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3072); + pathValueType(); + } + break; + case 3: + { + _localctx = new ListValueTypeAlt1Context(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3073); + listValueTypeName(); + setState(3074); + match(LEFT_ANGLE_BRACKET); + setState(3075); + valueType(0); + setState(3076); + match(RIGHT_ANGLE_BRACKET); + setState(3081); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) { + case 1: + { + setState(3077); + match(LEFT_BRACKET); + setState(3078); + maxLength(); + setState(3079); + match(RIGHT_BRACKET); + } + break; + } + setState(3084); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) { + case 1: + { + setState(3083); + notNull(); + } + break; + } + } + break; + case 4: + { + _localctx = new ListValueTypeAlt3Context(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3086); + listValueTypeName(); + setState(3091); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) { + case 1: + { + setState(3087); + match(LEFT_BRACKET); + setState(3088); + maxLength(); + setState(3089); + match(RIGHT_BRACKET); + } + break; + } + setState(3094); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,294,_ctx) ) { + case 1: + { + setState(3093); + notNull(); + } + break; + } + } + break; + case 5: + { + _localctx = new RecordTypeLabelContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3096); + recordType(); + } + break; + case 6: + { + _localctx = new OpenDynamicUnionTypeLabelContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3097); + match(ANY); + setState(3099); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,295,_ctx) ) { + case 1: + { + setState(3098); + match(VALUE); + } + break; + } + setState(3102); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,296,_ctx) ) { + case 1: + { + setState(3101); + notNull(); + } + break; + } + } + break; + case 7: + { + _localctx = new DynamicPropertyValueTypeLabelContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3105); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ANY) { + { + setState(3104); + match(ANY); + } + } + + setState(3107); + match(PROPERTY); + setState(3108); + match(VALUE); + setState(3110); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,298,_ctx) ) { + case 1: + { + setState(3109); + notNull(); + } + break; + } + } + break; + case 8: + { + _localctx = new ClosedDynamicUnionTypeAtl1Context(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3112); + match(ANY); + setState(3114); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==VALUE) { + { + setState(3113); + match(VALUE); + } + } + + setState(3116); + match(LEFT_ANGLE_BRACKET); + setState(3117); + valueType(0); + setState(3122); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==VERTICAL_BAR) { + { + { + setState(3118); + match(VERTICAL_BAR); + setState(3119); + valueType(0); + } + } + setState(3124); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(3125); + match(RIGHT_ANGLE_BRACKET); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(3145); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(3143); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) { + case 1: + { + _localctx = new ClosedDynamicUnionTypeAtl2Context(new ValueTypeContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueType); + setState(3129); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(3130); + match(VERTICAL_BAR); + setState(3131); + valueType(2); + } + break; + case 2: + { + _localctx = new ListValueTypeAlt2Context(new ValueTypeContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueType); + setState(3132); + if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); + setState(3133); + listValueTypeName(); + setState(3138); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,302,_ctx) ) { + case 1: + { + setState(3134); + match(LEFT_BRACKET); + setState(3135); + maxLength(); + setState(3136); + match(RIGHT_BRACKET); + } + break; + } + setState(3141); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,303,_ctx) ) { + case 1: + { + setState(3140); + notNull(); + } + break; + } + } + break; + } + } + } + setState(3147); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,305,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypedContext extends ParserRuleContext { + public TerminalNode DOUBLE_COLON() { return getToken(GQL_20240412Parser.DOUBLE_COLON, 0); } + public TerminalNode TYPED() { return getToken(GQL_20240412Parser.TYPED, 0); } + public TypedContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typed; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTyped(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTyped(this); + } + } + + public final TypedContext typed() throws RecognitionException { + TypedContext _localctx = new TypedContext(_ctx, getState()); + enterRule(_localctx, 674, RULE_typed); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3148); + _la = _input.LA(1); + if ( !(_la==TYPED || _la==DOUBLE_COLON) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PredefinedTypeContext extends ParserRuleContext { + public BooleanTypeContext booleanType() { + return getRuleContext(BooleanTypeContext.class,0); + } + public CharacterStringTypeContext characterStringType() { + return getRuleContext(CharacterStringTypeContext.class,0); + } + public ByteStringTypeContext byteStringType() { + return getRuleContext(ByteStringTypeContext.class,0); + } + public NumericTypeContext numericType() { + return getRuleContext(NumericTypeContext.class,0); + } + public TemporalTypeContext temporalType() { + return getRuleContext(TemporalTypeContext.class,0); + } + public ReferenceValueTypeContext referenceValueType() { + return getRuleContext(ReferenceValueTypeContext.class,0); + } + public ImmaterialValueTypeContext immaterialValueType() { + return getRuleContext(ImmaterialValueTypeContext.class,0); + } + public PredefinedTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_predefinedType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPredefinedType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPredefinedType(this); + } + } + + public final PredefinedTypeContext predefinedType() throws RecognitionException { + PredefinedTypeContext _localctx = new PredefinedTypeContext(_ctx, getState()); + enterRule(_localctx, 676, RULE_predefinedType); + try { + setState(3157); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOL: + case BOOLEAN: + enterOuterAlt(_localctx, 1); + { + setState(3150); + booleanType(); + } + break; + case CHAR: + case STRING: + case VARCHAR: + enterOuterAlt(_localctx, 2); + { + setState(3151); + characterStringType(); + } + break; + case BINARY: + case BYTES: + case VARBINARY: + enterOuterAlt(_localctx, 3); + { + setState(3152); + byteStringType(); + } + break; + case BIG: + case BIGINT: + case DEC: + case DECIMAL: + case DOUBLE: + case FLOAT: + case FLOAT16: + case FLOAT32: + case FLOAT64: + case FLOAT128: + case FLOAT256: + case INT: + case INTEGER: + case INT8: + case INTEGER8: + case INT16: + case INTEGER16: + case INT32: + case INTEGER32: + case INT64: + case INTEGER64: + case INT128: + case INTEGER128: + case INT256: + case INTEGER256: + case REAL: + case SIGNED: + case SMALL: + case SMALLINT: + case UBIGINT: + case UINT: + case UINT8: + case UINT16: + case UINT32: + case UINT64: + case UINT128: + case UINT256: + case UNSIGNED: + case USMALLINT: + enterOuterAlt(_localctx, 4); + { + setState(3153); + numericType(); + } + break; + case DATE: + case DURATION: + case LOCAL: + case TIME: + case TIMESTAMP: + case ZONED: + enterOuterAlt(_localctx, 5); + { + setState(3154); + temporalType(); + } + break; + case ANY: + case BINDING: + case DIRECTED: + case EDGE: + case GRAPH: + case NODE: + case PROPERTY: + case RELATIONSHIP: + case TABLE: + case UNDIRECTED: + case VERTEX: + case LEFT_PAREN: + enterOuterAlt(_localctx, 6); + { + setState(3155); + referenceValueType(); + } + break; + case NOTHING: + case NULL: + enterOuterAlt(_localctx, 7); + { + setState(3156); + immaterialValueType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BooleanTypeContext extends ParserRuleContext { + public TerminalNode BOOL() { return getToken(GQL_20240412Parser.BOOL, 0); } + public TerminalNode BOOLEAN() { return getToken(GQL_20240412Parser.BOOLEAN, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public BooleanTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_booleanType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBooleanType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBooleanType(this); + } + } + + public final BooleanTypeContext booleanType() throws RecognitionException { + BooleanTypeContext _localctx = new BooleanTypeContext(_ctx, getState()); + enterRule(_localctx, 678, RULE_booleanType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3159); + _la = _input.LA(1); + if ( !(_la==BOOL || _la==BOOLEAN) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3161); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,307,_ctx) ) { + case 1: + { + setState(3160); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CharacterStringTypeContext extends ParserRuleContext { + public TerminalNode STRING() { return getToken(GQL_20240412Parser.STRING, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public MaxLengthContext maxLength() { + return getRuleContext(MaxLengthContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public MinLengthContext minLength() { + return getRuleContext(MinLengthContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public TerminalNode CHAR() { return getToken(GQL_20240412Parser.CHAR, 0); } + public FixedLengthContext fixedLength() { + return getRuleContext(FixedLengthContext.class,0); + } + public TerminalNode VARCHAR() { return getToken(GQL_20240412Parser.VARCHAR, 0); } + public CharacterStringTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_characterStringType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCharacterStringType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCharacterStringType(this); + } + } + + public final CharacterStringTypeContext characterStringType() throws RecognitionException { + CharacterStringTypeContext _localctx = new CharacterStringTypeContext(_ctx, getState()); + enterRule(_localctx, 680, RULE_characterStringType); + try { + setState(3198); + _errHandler.sync(this); + switch (_input.LA(1)) { + case STRING: + enterOuterAlt(_localctx, 1); + { + setState(3163); + match(STRING); + setState(3173); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,309,_ctx) ) { + case 1: + { + setState(3164); + match(LEFT_PAREN); + setState(3168); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,308,_ctx) ) { + case 1: + { + setState(3165); + minLength(); + setState(3166); + match(COMMA); + } + break; + } + setState(3170); + maxLength(); + setState(3171); + match(RIGHT_PAREN); + } + break; + } + setState(3176); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,310,_ctx) ) { + case 1: + { + setState(3175); + notNull(); + } + break; + } + } + break; + case CHAR: + enterOuterAlt(_localctx, 2); + { + setState(3178); + match(CHAR); + setState(3183); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,311,_ctx) ) { + case 1: + { + setState(3179); + match(LEFT_PAREN); + setState(3180); + fixedLength(); + setState(3181); + match(RIGHT_PAREN); + } + break; + } + setState(3186); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,312,_ctx) ) { + case 1: + { + setState(3185); + notNull(); + } + break; + } + } + break; + case VARCHAR: + enterOuterAlt(_localctx, 3); + { + setState(3188); + match(VARCHAR); + setState(3193); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,313,_ctx) ) { + case 1: + { + setState(3189); + match(LEFT_PAREN); + setState(3190); + maxLength(); + setState(3191); + match(RIGHT_PAREN); + } + break; + } + setState(3196); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,314,_ctx) ) { + case 1: + { + setState(3195); + notNull(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ByteStringTypeContext extends ParserRuleContext { + public TerminalNode BYTES() { return getToken(GQL_20240412Parser.BYTES, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public MaxLengthContext maxLength() { + return getRuleContext(MaxLengthContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public MinLengthContext minLength() { + return getRuleContext(MinLengthContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public TerminalNode BINARY() { return getToken(GQL_20240412Parser.BINARY, 0); } + public FixedLengthContext fixedLength() { + return getRuleContext(FixedLengthContext.class,0); + } + public TerminalNode VARBINARY() { return getToken(GQL_20240412Parser.VARBINARY, 0); } + public ByteStringTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_byteStringType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterByteStringType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitByteStringType(this); + } + } + + public final ByteStringTypeContext byteStringType() throws RecognitionException { + ByteStringTypeContext _localctx = new ByteStringTypeContext(_ctx, getState()); + enterRule(_localctx, 682, RULE_byteStringType); + try { + setState(3235); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BYTES: + enterOuterAlt(_localctx, 1); + { + setState(3200); + match(BYTES); + setState(3210); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,317,_ctx) ) { + case 1: + { + setState(3201); + match(LEFT_PAREN); + setState(3205); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,316,_ctx) ) { + case 1: + { + setState(3202); + minLength(); + setState(3203); + match(COMMA); + } + break; + } + setState(3207); + maxLength(); + setState(3208); + match(RIGHT_PAREN); + } + break; + } + setState(3213); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,318,_ctx) ) { + case 1: + { + setState(3212); + notNull(); + } + break; + } + } + break; + case BINARY: + enterOuterAlt(_localctx, 2); + { + setState(3215); + match(BINARY); + setState(3220); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,319,_ctx) ) { + case 1: + { + setState(3216); + match(LEFT_PAREN); + setState(3217); + fixedLength(); + setState(3218); + match(RIGHT_PAREN); + } + break; + } + setState(3223); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,320,_ctx) ) { + case 1: + { + setState(3222); + notNull(); + } + break; + } + } + break; + case VARBINARY: + enterOuterAlt(_localctx, 3); + { + setState(3225); + match(VARBINARY); + setState(3230); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) { + case 1: + { + setState(3226); + match(LEFT_PAREN); + setState(3227); + maxLength(); + setState(3228); + match(RIGHT_PAREN); + } + break; + } + setState(3233); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,322,_ctx) ) { + case 1: + { + setState(3232); + notNull(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MinLengthContext extends ParserRuleContext { + public UnsignedIntegerContext unsignedInteger() { + return getRuleContext(UnsignedIntegerContext.class,0); + } + public MinLengthContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_minLength; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterMinLength(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitMinLength(this); + } + } + + public final MinLengthContext minLength() throws RecognitionException { + MinLengthContext _localctx = new MinLengthContext(_ctx, getState()); + enterRule(_localctx, 684, RULE_minLength); + try { + enterOuterAlt(_localctx, 1); + { + setState(3237); + unsignedInteger(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MaxLengthContext extends ParserRuleContext { + public UnsignedIntegerContext unsignedInteger() { + return getRuleContext(UnsignedIntegerContext.class,0); + } + public MaxLengthContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_maxLength; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterMaxLength(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitMaxLength(this); + } + } + + public final MaxLengthContext maxLength() throws RecognitionException { + MaxLengthContext _localctx = new MaxLengthContext(_ctx, getState()); + enterRule(_localctx, 686, RULE_maxLength); + try { + enterOuterAlt(_localctx, 1); + { + setState(3239); + unsignedInteger(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FixedLengthContext extends ParserRuleContext { + public UnsignedIntegerContext unsignedInteger() { + return getRuleContext(UnsignedIntegerContext.class,0); + } + public FixedLengthContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fixedLength; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFixedLength(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFixedLength(this); + } + } + + public final FixedLengthContext fixedLength() throws RecognitionException { + FixedLengthContext _localctx = new FixedLengthContext(_ctx, getState()); + enterRule(_localctx, 688, RULE_fixedLength); + try { + enterOuterAlt(_localctx, 1); + { + setState(3241); + unsignedInteger(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericTypeContext extends ParserRuleContext { + public ExactNumericTypeContext exactNumericType() { + return getRuleContext(ExactNumericTypeContext.class,0); + } + public ApproximateNumericTypeContext approximateNumericType() { + return getRuleContext(ApproximateNumericTypeContext.class,0); + } + public NumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumericType(this); + } + } + + public final NumericTypeContext numericType() throws RecognitionException { + NumericTypeContext _localctx = new NumericTypeContext(_ctx, getState()); + enterRule(_localctx, 690, RULE_numericType); + try { + setState(3245); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BIG: + case BIGINT: + case DEC: + case DECIMAL: + case INT: + case INTEGER: + case INT8: + case INTEGER8: + case INT16: + case INTEGER16: + case INT32: + case INTEGER32: + case INT64: + case INTEGER64: + case INT128: + case INTEGER128: + case INT256: + case INTEGER256: + case SIGNED: + case SMALL: + case SMALLINT: + case UBIGINT: + case UINT: + case UINT8: + case UINT16: + case UINT32: + case UINT64: + case UINT128: + case UINT256: + case UNSIGNED: + case USMALLINT: + enterOuterAlt(_localctx, 1); + { + setState(3243); + exactNumericType(); + } + break; + case DOUBLE: + case FLOAT: + case FLOAT16: + case FLOAT32: + case FLOAT64: + case FLOAT128: + case FLOAT256: + case REAL: + enterOuterAlt(_localctx, 2); + { + setState(3244); + approximateNumericType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExactNumericTypeContext extends ParserRuleContext { + public BinaryExactNumericTypeContext binaryExactNumericType() { + return getRuleContext(BinaryExactNumericTypeContext.class,0); + } + public DecimalExactNumericTypeContext decimalExactNumericType() { + return getRuleContext(DecimalExactNumericTypeContext.class,0); + } + public ExactNumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exactNumericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterExactNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitExactNumericType(this); + } + } + + public final ExactNumericTypeContext exactNumericType() throws RecognitionException { + ExactNumericTypeContext _localctx = new ExactNumericTypeContext(_ctx, getState()); + enterRule(_localctx, 692, RULE_exactNumericType); + try { + setState(3249); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BIG: + case BIGINT: + case INT: + case INTEGER: + case INT8: + case INTEGER8: + case INT16: + case INTEGER16: + case INT32: + case INTEGER32: + case INT64: + case INTEGER64: + case INT128: + case INTEGER128: + case INT256: + case INTEGER256: + case SIGNED: + case SMALL: + case SMALLINT: + case UBIGINT: + case UINT: + case UINT8: + case UINT16: + case UINT32: + case UINT64: + case UINT128: + case UINT256: + case UNSIGNED: + case USMALLINT: + enterOuterAlt(_localctx, 1); + { + setState(3247); + binaryExactNumericType(); + } + break; + case DEC: + case DECIMAL: + enterOuterAlt(_localctx, 2); + { + setState(3248); + decimalExactNumericType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BinaryExactNumericTypeContext extends ParserRuleContext { + public SignedBinaryExactNumericTypeContext signedBinaryExactNumericType() { + return getRuleContext(SignedBinaryExactNumericTypeContext.class,0); + } + public UnsignedBinaryExactNumericTypeContext unsignedBinaryExactNumericType() { + return getRuleContext(UnsignedBinaryExactNumericTypeContext.class,0); + } + public BinaryExactNumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_binaryExactNumericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBinaryExactNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBinaryExactNumericType(this); + } + } + + public final BinaryExactNumericTypeContext binaryExactNumericType() throws RecognitionException { + BinaryExactNumericTypeContext _localctx = new BinaryExactNumericTypeContext(_ctx, getState()); + enterRule(_localctx, 694, RULE_binaryExactNumericType); + try { + setState(3253); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BIG: + case BIGINT: + case INT: + case INTEGER: + case INT8: + case INTEGER8: + case INT16: + case INTEGER16: + case INT32: + case INTEGER32: + case INT64: + case INTEGER64: + case INT128: + case INTEGER128: + case INT256: + case INTEGER256: + case SIGNED: + case SMALL: + case SMALLINT: + enterOuterAlt(_localctx, 1); + { + setState(3251); + signedBinaryExactNumericType(); + } + break; + case UBIGINT: + case UINT: + case UINT8: + case UINT16: + case UINT32: + case UINT64: + case UINT128: + case UINT256: + case UNSIGNED: + case USMALLINT: + enterOuterAlt(_localctx, 2); + { + setState(3252); + unsignedBinaryExactNumericType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SignedBinaryExactNumericTypeContext extends ParserRuleContext { + public TerminalNode INT8() { return getToken(GQL_20240412Parser.INT8, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode INT16() { return getToken(GQL_20240412Parser.INT16, 0); } + public TerminalNode INT32() { return getToken(GQL_20240412Parser.INT32, 0); } + public TerminalNode INT64() { return getToken(GQL_20240412Parser.INT64, 0); } + public TerminalNode INT128() { return getToken(GQL_20240412Parser.INT128, 0); } + public TerminalNode INT256() { return getToken(GQL_20240412Parser.INT256, 0); } + public TerminalNode SMALLINT() { return getToken(GQL_20240412Parser.SMALLINT, 0); } + public TerminalNode INT() { return getToken(GQL_20240412Parser.INT, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public PrecisionContext precision() { + return getRuleContext(PrecisionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode BIGINT() { return getToken(GQL_20240412Parser.BIGINT, 0); } + public VerboseBinaryExactNumericTypeContext verboseBinaryExactNumericType() { + return getRuleContext(VerboseBinaryExactNumericTypeContext.class,0); + } + public TerminalNode SIGNED() { return getToken(GQL_20240412Parser.SIGNED, 0); } + public SignedBinaryExactNumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_signedBinaryExactNumericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSignedBinaryExactNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSignedBinaryExactNumericType(this); + } + } + + public final SignedBinaryExactNumericTypeContext signedBinaryExactNumericType() throws RecognitionException { + SignedBinaryExactNumericTypeContext _localctx = new SignedBinaryExactNumericTypeContext(_ctx, getState()); + enterRule(_localctx, 696, RULE_signedBinaryExactNumericType); + int _la; + try { + setState(3301); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INT8: + enterOuterAlt(_localctx, 1); + { + setState(3255); + match(INT8); + setState(3257); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,327,_ctx) ) { + case 1: + { + setState(3256); + notNull(); + } + break; + } + } + break; + case INT16: + enterOuterAlt(_localctx, 2); + { + setState(3259); + match(INT16); + setState(3261); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,328,_ctx) ) { + case 1: + { + setState(3260); + notNull(); + } + break; + } + } + break; + case INT32: + enterOuterAlt(_localctx, 3); + { + setState(3263); + match(INT32); + setState(3265); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,329,_ctx) ) { + case 1: + { + setState(3264); + notNull(); + } + break; + } + } + break; + case INT64: + enterOuterAlt(_localctx, 4); + { + setState(3267); + match(INT64); + setState(3269); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,330,_ctx) ) { + case 1: + { + setState(3268); + notNull(); + } + break; + } + } + break; + case INT128: + enterOuterAlt(_localctx, 5); + { + setState(3271); + match(INT128); + setState(3273); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,331,_ctx) ) { + case 1: + { + setState(3272); + notNull(); + } + break; + } + } + break; + case INT256: + enterOuterAlt(_localctx, 6); + { + setState(3275); + match(INT256); + setState(3277); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,332,_ctx) ) { + case 1: + { + setState(3276); + notNull(); + } + break; + } + } + break; + case SMALLINT: + enterOuterAlt(_localctx, 7); + { + setState(3279); + match(SMALLINT); + setState(3281); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,333,_ctx) ) { + case 1: + { + setState(3280); + notNull(); + } + break; + } + } + break; + case INT: + enterOuterAlt(_localctx, 8); + { + setState(3283); + match(INT); + setState(3288); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,334,_ctx) ) { + case 1: + { + setState(3284); + match(LEFT_PAREN); + setState(3285); + precision(); + setState(3286); + match(RIGHT_PAREN); + } + break; + } + setState(3291); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,335,_ctx) ) { + case 1: + { + setState(3290); + notNull(); + } + break; + } + } + break; + case BIGINT: + enterOuterAlt(_localctx, 9); + { + setState(3293); + match(BIGINT); + setState(3295); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,336,_ctx) ) { + case 1: + { + setState(3294); + notNull(); + } + break; + } + } + break; + case BIG: + case INTEGER: + case INTEGER8: + case INTEGER16: + case INTEGER32: + case INTEGER64: + case INTEGER128: + case INTEGER256: + case SIGNED: + case SMALL: + enterOuterAlt(_localctx, 10); + { + setState(3298); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SIGNED) { + { + setState(3297); + match(SIGNED); + } + } + + setState(3300); + verboseBinaryExactNumericType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnsignedBinaryExactNumericTypeContext extends ParserRuleContext { + public TerminalNode UINT8() { return getToken(GQL_20240412Parser.UINT8, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode UINT16() { return getToken(GQL_20240412Parser.UINT16, 0); } + public TerminalNode UINT32() { return getToken(GQL_20240412Parser.UINT32, 0); } + public TerminalNode UINT64() { return getToken(GQL_20240412Parser.UINT64, 0); } + public TerminalNode UINT128() { return getToken(GQL_20240412Parser.UINT128, 0); } + public TerminalNode UINT256() { return getToken(GQL_20240412Parser.UINT256, 0); } + public TerminalNode USMALLINT() { return getToken(GQL_20240412Parser.USMALLINT, 0); } + public TerminalNode UINT() { return getToken(GQL_20240412Parser.UINT, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public PrecisionContext precision() { + return getRuleContext(PrecisionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode UBIGINT() { return getToken(GQL_20240412Parser.UBIGINT, 0); } + public TerminalNode UNSIGNED() { return getToken(GQL_20240412Parser.UNSIGNED, 0); } + public VerboseBinaryExactNumericTypeContext verboseBinaryExactNumericType() { + return getRuleContext(VerboseBinaryExactNumericTypeContext.class,0); + } + public UnsignedBinaryExactNumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unsignedBinaryExactNumericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterUnsignedBinaryExactNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitUnsignedBinaryExactNumericType(this); + } + } + + public final UnsignedBinaryExactNumericTypeContext unsignedBinaryExactNumericType() throws RecognitionException { + UnsignedBinaryExactNumericTypeContext _localctx = new UnsignedBinaryExactNumericTypeContext(_ctx, getState()); + enterRule(_localctx, 698, RULE_unsignedBinaryExactNumericType); + try { + setState(3347); + _errHandler.sync(this); + switch (_input.LA(1)) { + case UINT8: + enterOuterAlt(_localctx, 1); + { + setState(3303); + match(UINT8); + setState(3305); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,339,_ctx) ) { + case 1: + { + setState(3304); + notNull(); + } + break; + } + } + break; + case UINT16: + enterOuterAlt(_localctx, 2); + { + setState(3307); + match(UINT16); + setState(3309); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,340,_ctx) ) { + case 1: + { + setState(3308); + notNull(); + } + break; + } + } + break; + case UINT32: + enterOuterAlt(_localctx, 3); + { + setState(3311); + match(UINT32); + setState(3313); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,341,_ctx) ) { + case 1: + { + setState(3312); + notNull(); + } + break; + } + } + break; + case UINT64: + enterOuterAlt(_localctx, 4); + { + setState(3315); + match(UINT64); + setState(3317); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,342,_ctx) ) { + case 1: + { + setState(3316); + notNull(); + } + break; + } + } + break; + case UINT128: + enterOuterAlt(_localctx, 5); + { + setState(3319); + match(UINT128); + setState(3321); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,343,_ctx) ) { + case 1: + { + setState(3320); + notNull(); + } + break; + } + } + break; + case UINT256: + enterOuterAlt(_localctx, 6); + { + setState(3323); + match(UINT256); + setState(3325); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,344,_ctx) ) { + case 1: + { + setState(3324); + notNull(); + } + break; + } + } + break; + case USMALLINT: + enterOuterAlt(_localctx, 7); + { + setState(3327); + match(USMALLINT); + setState(3329); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,345,_ctx) ) { + case 1: + { + setState(3328); + notNull(); + } + break; + } + } + break; + case UINT: + enterOuterAlt(_localctx, 8); + { + setState(3331); + match(UINT); + setState(3336); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,346,_ctx) ) { + case 1: + { + setState(3332); + match(LEFT_PAREN); + setState(3333); + precision(); + setState(3334); + match(RIGHT_PAREN); + } + break; + } + setState(3339); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,347,_ctx) ) { + case 1: + { + setState(3338); + notNull(); + } + break; + } + } + break; + case UBIGINT: + enterOuterAlt(_localctx, 9); + { + setState(3341); + match(UBIGINT); + setState(3343); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,348,_ctx) ) { + case 1: + { + setState(3342); + notNull(); + } + break; + } + } + break; + case UNSIGNED: + enterOuterAlt(_localctx, 10); + { + setState(3345); + match(UNSIGNED); + setState(3346); + verboseBinaryExactNumericType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VerboseBinaryExactNumericTypeContext extends ParserRuleContext { + public TerminalNode INTEGER8() { return getToken(GQL_20240412Parser.INTEGER8, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode INTEGER16() { return getToken(GQL_20240412Parser.INTEGER16, 0); } + public TerminalNode INTEGER32() { return getToken(GQL_20240412Parser.INTEGER32, 0); } + public TerminalNode INTEGER64() { return getToken(GQL_20240412Parser.INTEGER64, 0); } + public TerminalNode INTEGER128() { return getToken(GQL_20240412Parser.INTEGER128, 0); } + public TerminalNode INTEGER256() { return getToken(GQL_20240412Parser.INTEGER256, 0); } + public TerminalNode SMALL() { return getToken(GQL_20240412Parser.SMALL, 0); } + public TerminalNode INTEGER() { return getToken(GQL_20240412Parser.INTEGER, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public PrecisionContext precision() { + return getRuleContext(PrecisionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode BIG() { return getToken(GQL_20240412Parser.BIG, 0); } + public VerboseBinaryExactNumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_verboseBinaryExactNumericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterVerboseBinaryExactNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitVerboseBinaryExactNumericType(this); + } + } + + public final VerboseBinaryExactNumericTypeContext verboseBinaryExactNumericType() throws RecognitionException { + VerboseBinaryExactNumericTypeContext _localctx = new VerboseBinaryExactNumericTypeContext(_ctx, getState()); + enterRule(_localctx, 700, RULE_verboseBinaryExactNumericType); + try { + setState(3393); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INTEGER8: + enterOuterAlt(_localctx, 1); + { + setState(3349); + match(INTEGER8); + setState(3351); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,350,_ctx) ) { + case 1: + { + setState(3350); + notNull(); + } + break; + } + } + break; + case INTEGER16: + enterOuterAlt(_localctx, 2); + { + setState(3353); + match(INTEGER16); + setState(3355); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,351,_ctx) ) { + case 1: + { + setState(3354); + notNull(); + } + break; + } + } + break; + case INTEGER32: + enterOuterAlt(_localctx, 3); + { + setState(3357); + match(INTEGER32); + setState(3359); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,352,_ctx) ) { + case 1: + { + setState(3358); + notNull(); + } + break; + } + } + break; + case INTEGER64: + enterOuterAlt(_localctx, 4); + { + setState(3361); + match(INTEGER64); + setState(3363); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,353,_ctx) ) { + case 1: + { + setState(3362); + notNull(); + } + break; + } + } + break; + case INTEGER128: + enterOuterAlt(_localctx, 5); + { + setState(3365); + match(INTEGER128); + setState(3367); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,354,_ctx) ) { + case 1: + { + setState(3366); + notNull(); + } + break; + } + } + break; + case INTEGER256: + enterOuterAlt(_localctx, 6); + { + setState(3369); + match(INTEGER256); + setState(3371); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,355,_ctx) ) { + case 1: + { + setState(3370); + notNull(); + } + break; + } + } + break; + case SMALL: + enterOuterAlt(_localctx, 7); + { + setState(3373); + match(SMALL); + setState(3374); + match(INTEGER); + setState(3376); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,356,_ctx) ) { + case 1: + { + setState(3375); + notNull(); + } + break; + } + } + break; + case INTEGER: + enterOuterAlt(_localctx, 8); + { + setState(3378); + match(INTEGER); + setState(3383); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,357,_ctx) ) { + case 1: + { + setState(3379); + match(LEFT_PAREN); + setState(3380); + precision(); + setState(3381); + match(RIGHT_PAREN); + } + break; + } + setState(3386); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,358,_ctx) ) { + case 1: + { + setState(3385); + notNull(); + } + break; + } + } + break; + case BIG: + enterOuterAlt(_localctx, 9); + { + setState(3388); + match(BIG); + setState(3389); + match(INTEGER); + setState(3391); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,359,_ctx) ) { + case 1: + { + setState(3390); + notNull(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DecimalExactNumericTypeContext extends ParserRuleContext { + public TerminalNode DECIMAL() { return getToken(GQL_20240412Parser.DECIMAL, 0); } + public TerminalNode DEC() { return getToken(GQL_20240412Parser.DEC, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public PrecisionContext precision() { + return getRuleContext(PrecisionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public ScaleContext scale() { + return getRuleContext(ScaleContext.class,0); + } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public DecimalExactNumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_decimalExactNumericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDecimalExactNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDecimalExactNumericType(this); + } + } + + public final DecimalExactNumericTypeContext decimalExactNumericType() throws RecognitionException { + DecimalExactNumericTypeContext _localctx = new DecimalExactNumericTypeContext(_ctx, getState()); + enterRule(_localctx, 702, RULE_decimalExactNumericType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3395); + _la = _input.LA(1); + if ( !(_la==DEC || _la==DECIMAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3406); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,363,_ctx) ) { + case 1: + { + setState(3396); + match(LEFT_PAREN); + setState(3397); + precision(); + setState(3400); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(3398); + match(COMMA); + setState(3399); + scale(); + } + } + + setState(3402); + match(RIGHT_PAREN); + setState(3404); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,362,_ctx) ) { + case 1: + { + setState(3403); + notNull(); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrecisionContext extends ParserRuleContext { + public UnsignedDecimalIntegerContext unsignedDecimalInteger() { + return getRuleContext(UnsignedDecimalIntegerContext.class,0); + } + public PrecisionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_precision; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPrecision(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPrecision(this); + } + } + + public final PrecisionContext precision() throws RecognitionException { + PrecisionContext _localctx = new PrecisionContext(_ctx, getState()); + enterRule(_localctx, 704, RULE_precision); + try { + enterOuterAlt(_localctx, 1); + { + setState(3408); + unsignedDecimalInteger(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ScaleContext extends ParserRuleContext { + public UnsignedDecimalIntegerContext unsignedDecimalInteger() { + return getRuleContext(UnsignedDecimalIntegerContext.class,0); + } + public ScaleContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_scale; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterScale(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitScale(this); + } + } + + public final ScaleContext scale() throws RecognitionException { + ScaleContext _localctx = new ScaleContext(_ctx, getState()); + enterRule(_localctx, 706, RULE_scale); + try { + enterOuterAlt(_localctx, 1); + { + setState(3410); + unsignedDecimalInteger(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ApproximateNumericTypeContext extends ParserRuleContext { + public TerminalNode FLOAT16() { return getToken(GQL_20240412Parser.FLOAT16, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode FLOAT32() { return getToken(GQL_20240412Parser.FLOAT32, 0); } + public TerminalNode FLOAT64() { return getToken(GQL_20240412Parser.FLOAT64, 0); } + public TerminalNode FLOAT128() { return getToken(GQL_20240412Parser.FLOAT128, 0); } + public TerminalNode FLOAT256() { return getToken(GQL_20240412Parser.FLOAT256, 0); } + public TerminalNode FLOAT() { return getToken(GQL_20240412Parser.FLOAT, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public PrecisionContext precision() { + return getRuleContext(PrecisionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public ScaleContext scale() { + return getRuleContext(ScaleContext.class,0); + } + public TerminalNode REAL() { return getToken(GQL_20240412Parser.REAL, 0); } + public TerminalNode DOUBLE() { return getToken(GQL_20240412Parser.DOUBLE, 0); } + public TerminalNode PRECISION() { return getToken(GQL_20240412Parser.PRECISION, 0); } + public ApproximateNumericTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_approximateNumericType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterApproximateNumericType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitApproximateNumericType(this); + } + } + + public final ApproximateNumericTypeContext approximateNumericType() throws RecognitionException { + ApproximateNumericTypeContext _localctx = new ApproximateNumericTypeContext(_ctx, getState()); + enterRule(_localctx, 708, RULE_approximateNumericType); + int _la; + try { + setState(3457); + _errHandler.sync(this); + switch (_input.LA(1)) { + case FLOAT16: + enterOuterAlt(_localctx, 1); + { + setState(3412); + match(FLOAT16); + setState(3414); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,364,_ctx) ) { + case 1: + { + setState(3413); + notNull(); + } + break; + } + } + break; + case FLOAT32: + enterOuterAlt(_localctx, 2); + { + setState(3416); + match(FLOAT32); + setState(3418); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,365,_ctx) ) { + case 1: + { + setState(3417); + notNull(); + } + break; + } + } + break; + case FLOAT64: + enterOuterAlt(_localctx, 3); + { + setState(3420); + match(FLOAT64); + setState(3422); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,366,_ctx) ) { + case 1: + { + setState(3421); + notNull(); + } + break; + } + } + break; + case FLOAT128: + enterOuterAlt(_localctx, 4); + { + setState(3424); + match(FLOAT128); + setState(3426); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,367,_ctx) ) { + case 1: + { + setState(3425); + notNull(); + } + break; + } + } + break; + case FLOAT256: + enterOuterAlt(_localctx, 5); + { + setState(3428); + match(FLOAT256); + setState(3430); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,368,_ctx) ) { + case 1: + { + setState(3429); + notNull(); + } + break; + } + } + break; + case FLOAT: + enterOuterAlt(_localctx, 6); + { + setState(3432); + match(FLOAT); + setState(3441); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,370,_ctx) ) { + case 1: + { + setState(3433); + match(LEFT_PAREN); + setState(3434); + precision(); + setState(3437); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(3435); + match(COMMA); + setState(3436); + scale(); + } + } + + setState(3439); + match(RIGHT_PAREN); + } + break; + } + setState(3444); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,371,_ctx) ) { + case 1: + { + setState(3443); + notNull(); + } + break; + } + } + break; + case REAL: + enterOuterAlt(_localctx, 7); + { + setState(3446); + match(REAL); + setState(3448); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,372,_ctx) ) { + case 1: + { + setState(3447); + notNull(); + } + break; + } + } + break; + case DOUBLE: + enterOuterAlt(_localctx, 8); + { + setState(3450); + match(DOUBLE); + setState(3452); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,373,_ctx) ) { + case 1: + { + setState(3451); + match(PRECISION); + } + break; + } + setState(3455); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,374,_ctx) ) { + case 1: + { + setState(3454); + notNull(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TemporalTypeContext extends ParserRuleContext { + public TemporalInstantTypeContext temporalInstantType() { + return getRuleContext(TemporalInstantTypeContext.class,0); + } + public TemporalDurationTypeContext temporalDurationType() { + return getRuleContext(TemporalDurationTypeContext.class,0); + } + public TemporalTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_temporalType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTemporalType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTemporalType(this); + } + } + + public final TemporalTypeContext temporalType() throws RecognitionException { + TemporalTypeContext _localctx = new TemporalTypeContext(_ctx, getState()); + enterRule(_localctx, 710, RULE_temporalType); + try { + setState(3461); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DATE: + case LOCAL: + case TIME: + case TIMESTAMP: + case ZONED: + enterOuterAlt(_localctx, 1); + { + setState(3459); + temporalInstantType(); + } + break; + case DURATION: + enterOuterAlt(_localctx, 2); + { + setState(3460); + temporalDurationType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TemporalInstantTypeContext extends ParserRuleContext { + public DatetimeTypeContext datetimeType() { + return getRuleContext(DatetimeTypeContext.class,0); + } + public LocaldatetimeTypeContext localdatetimeType() { + return getRuleContext(LocaldatetimeTypeContext.class,0); + } + public DateTypeContext dateType() { + return getRuleContext(DateTypeContext.class,0); + } + public TimeTypeContext timeType() { + return getRuleContext(TimeTypeContext.class,0); + } + public LocaltimeTypeContext localtimeType() { + return getRuleContext(LocaltimeTypeContext.class,0); + } + public TemporalInstantTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_temporalInstantType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTemporalInstantType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTemporalInstantType(this); + } + } + + public final TemporalInstantTypeContext temporalInstantType() throws RecognitionException { + TemporalInstantTypeContext _localctx = new TemporalInstantTypeContext(_ctx, getState()); + enterRule(_localctx, 712, RULE_temporalInstantType); + try { + setState(3468); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,377,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3463); + datetimeType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3464); + localdatetimeType(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(3465); + dateType(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(3466); + timeType(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(3467); + localtimeType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeTypeContext extends ParserRuleContext { + public TerminalNode ZONED() { return getToken(GQL_20240412Parser.ZONED, 0); } + public TerminalNode DATETIME() { return getToken(GQL_20240412Parser.DATETIME, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode TIMESTAMP() { return getToken(GQL_20240412Parser.TIMESTAMP, 0); } + public TerminalNode WITH() { return getToken(GQL_20240412Parser.WITH, 0); } + public TerminalNode TIME() { return getToken(GQL_20240412Parser.TIME, 0); } + public TerminalNode ZONE() { return getToken(GQL_20240412Parser.ZONE, 0); } + public DatetimeTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeType(this); + } + } + + public final DatetimeTypeContext datetimeType() throws RecognitionException { + DatetimeTypeContext _localctx = new DatetimeTypeContext(_ctx, getState()); + enterRule(_localctx, 714, RULE_datetimeType); + try { + setState(3482); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ZONED: + enterOuterAlt(_localctx, 1); + { + setState(3470); + match(ZONED); + setState(3471); + match(DATETIME); + setState(3473); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,378,_ctx) ) { + case 1: + { + setState(3472); + notNull(); + } + break; + } + } + break; + case TIMESTAMP: + enterOuterAlt(_localctx, 2); + { + setState(3475); + match(TIMESTAMP); + setState(3476); + match(WITH); + setState(3477); + match(TIME); + setState(3478); + match(ZONE); + setState(3480); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,379,_ctx) ) { + case 1: + { + setState(3479); + notNull(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocaldatetimeTypeContext extends ParserRuleContext { + public TerminalNode LOCAL() { return getToken(GQL_20240412Parser.LOCAL, 0); } + public TerminalNode DATETIME() { return getToken(GQL_20240412Parser.DATETIME, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode TIMESTAMP() { return getToken(GQL_20240412Parser.TIMESTAMP, 0); } + public TerminalNode WITHOUT() { return getToken(GQL_20240412Parser.WITHOUT, 0); } + public TerminalNode TIME() { return getToken(GQL_20240412Parser.TIME, 0); } + public TerminalNode ZONE() { return getToken(GQL_20240412Parser.ZONE, 0); } + public LocaldatetimeTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_localdatetimeType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLocaldatetimeType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLocaldatetimeType(this); + } + } + + public final LocaldatetimeTypeContext localdatetimeType() throws RecognitionException { + LocaldatetimeTypeContext _localctx = new LocaldatetimeTypeContext(_ctx, getState()); + enterRule(_localctx, 716, RULE_localdatetimeType); + try { + setState(3498); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LOCAL: + enterOuterAlt(_localctx, 1); + { + setState(3484); + match(LOCAL); + setState(3485); + match(DATETIME); + setState(3487); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,381,_ctx) ) { + case 1: + { + setState(3486); + notNull(); + } + break; + } + } + break; + case TIMESTAMP: + enterOuterAlt(_localctx, 2); + { + setState(3489); + match(TIMESTAMP); + setState(3493); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,382,_ctx) ) { + case 1: + { + setState(3490); + match(WITHOUT); + setState(3491); + match(TIME); + setState(3492); + match(ZONE); + } + break; + } + setState(3496); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,383,_ctx) ) { + case 1: + { + setState(3495); + notNull(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DateTypeContext extends ParserRuleContext { + public TerminalNode DATE() { return getToken(GQL_20240412Parser.DATE, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public DateTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dateType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDateType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDateType(this); + } + } + + public final DateTypeContext dateType() throws RecognitionException { + DateTypeContext _localctx = new DateTypeContext(_ctx, getState()); + enterRule(_localctx, 718, RULE_dateType); + try { + enterOuterAlt(_localctx, 1); + { + setState(3500); + match(DATE); + setState(3502); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,385,_ctx) ) { + case 1: + { + setState(3501); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TimeTypeContext extends ParserRuleContext { + public TerminalNode ZONED() { return getToken(GQL_20240412Parser.ZONED, 0); } + public List TIME() { return getTokens(GQL_20240412Parser.TIME); } + public TerminalNode TIME(int i) { + return getToken(GQL_20240412Parser.TIME, i); + } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode WITH() { return getToken(GQL_20240412Parser.WITH, 0); } + public TerminalNode ZONE() { return getToken(GQL_20240412Parser.ZONE, 0); } + public TimeTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_timeType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTimeType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTimeType(this); + } + } + + public final TimeTypeContext timeType() throws RecognitionException { + TimeTypeContext _localctx = new TimeTypeContext(_ctx, getState()); + enterRule(_localctx, 720, RULE_timeType); + try { + setState(3516); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ZONED: + enterOuterAlt(_localctx, 1); + { + setState(3504); + match(ZONED); + setState(3505); + match(TIME); + setState(3507); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,386,_ctx) ) { + case 1: + { + setState(3506); + notNull(); + } + break; + } + } + break; + case TIME: + enterOuterAlt(_localctx, 2); + { + setState(3509); + match(TIME); + setState(3510); + match(WITH); + setState(3511); + match(TIME); + setState(3512); + match(ZONE); + setState(3514); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,387,_ctx) ) { + case 1: + { + setState(3513); + notNull(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocaltimeTypeContext extends ParserRuleContext { + public TerminalNode LOCAL() { return getToken(GQL_20240412Parser.LOCAL, 0); } + public List TIME() { return getTokens(GQL_20240412Parser.TIME); } + public TerminalNode TIME(int i) { + return getToken(GQL_20240412Parser.TIME, i); + } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode WITHOUT() { return getToken(GQL_20240412Parser.WITHOUT, 0); } + public TerminalNode ZONE() { return getToken(GQL_20240412Parser.ZONE, 0); } + public LocaltimeTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_localtimeType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLocaltimeType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLocaltimeType(this); + } + } + + public final LocaltimeTypeContext localtimeType() throws RecognitionException { + LocaltimeTypeContext _localctx = new LocaltimeTypeContext(_ctx, getState()); + enterRule(_localctx, 722, RULE_localtimeType); + try { + setState(3530); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LOCAL: + enterOuterAlt(_localctx, 1); + { + setState(3518); + match(LOCAL); + setState(3519); + match(TIME); + setState(3521); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,389,_ctx) ) { + case 1: + { + setState(3520); + notNull(); + } + break; + } + } + break; + case TIME: + enterOuterAlt(_localctx, 2); + { + setState(3523); + match(TIME); + setState(3524); + match(WITHOUT); + setState(3525); + match(TIME); + setState(3526); + match(ZONE); + setState(3528); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,390,_ctx) ) { + case 1: + { + setState(3527); + notNull(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TemporalDurationTypeContext extends ParserRuleContext { + public TerminalNode DURATION() { return getToken(GQL_20240412Parser.DURATION, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TemporalDurationQualifierContext temporalDurationQualifier() { + return getRuleContext(TemporalDurationQualifierContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TemporalDurationTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_temporalDurationType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTemporalDurationType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTemporalDurationType(this); + } + } + + public final TemporalDurationTypeContext temporalDurationType() throws RecognitionException { + TemporalDurationTypeContext _localctx = new TemporalDurationTypeContext(_ctx, getState()); + enterRule(_localctx, 724, RULE_temporalDurationType); + try { + enterOuterAlt(_localctx, 1); + { + setState(3532); + match(DURATION); + setState(3533); + match(LEFT_PAREN); + setState(3534); + temporalDurationQualifier(); + setState(3535); + match(RIGHT_PAREN); + setState(3537); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,392,_ctx) ) { + case 1: + { + setState(3536); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TemporalDurationQualifierContext extends ParserRuleContext { + public TerminalNode YEAR() { return getToken(GQL_20240412Parser.YEAR, 0); } + public TerminalNode TO() { return getToken(GQL_20240412Parser.TO, 0); } + public TerminalNode MONTH() { return getToken(GQL_20240412Parser.MONTH, 0); } + public TerminalNode DAY() { return getToken(GQL_20240412Parser.DAY, 0); } + public TerminalNode SECOND() { return getToken(GQL_20240412Parser.SECOND, 0); } + public TemporalDurationQualifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_temporalDurationQualifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTemporalDurationQualifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTemporalDurationQualifier(this); + } + } + + public final TemporalDurationQualifierContext temporalDurationQualifier() throws RecognitionException { + TemporalDurationQualifierContext _localctx = new TemporalDurationQualifierContext(_ctx, getState()); + enterRule(_localctx, 726, RULE_temporalDurationQualifier); + try { + setState(3545); + _errHandler.sync(this); + switch (_input.LA(1)) { + case YEAR: + enterOuterAlt(_localctx, 1); + { + setState(3539); + match(YEAR); + setState(3540); + match(TO); + setState(3541); + match(MONTH); + } + break; + case DAY: + enterOuterAlt(_localctx, 2); + { + setState(3542); + match(DAY); + setState(3543); + match(TO); + setState(3544); + match(SECOND); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReferenceValueTypeContext extends ParserRuleContext { + public GraphReferenceValueTypeContext graphReferenceValueType() { + return getRuleContext(GraphReferenceValueTypeContext.class,0); + } + public BindingTableReferenceValueTypeContext bindingTableReferenceValueType() { + return getRuleContext(BindingTableReferenceValueTypeContext.class,0); + } + public NodeReferenceValueTypeContext nodeReferenceValueType() { + return getRuleContext(NodeReferenceValueTypeContext.class,0); + } + public EdgeReferenceValueTypeContext edgeReferenceValueType() { + return getRuleContext(EdgeReferenceValueTypeContext.class,0); + } + public ReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_referenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitReferenceValueType(this); + } + } + + public final ReferenceValueTypeContext referenceValueType() throws RecognitionException { + ReferenceValueTypeContext _localctx = new ReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 728, RULE_referenceValueType); + try { + setState(3551); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,394,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3547); + graphReferenceValueType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3548); + bindingTableReferenceValueType(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(3549); + nodeReferenceValueType(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(3550); + edgeReferenceValueType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImmaterialValueTypeContext extends ParserRuleContext { + public NullTypeContext nullType() { + return getRuleContext(NullTypeContext.class,0); + } + public EmptyTypeContext emptyType() { + return getRuleContext(EmptyTypeContext.class,0); + } + public ImmaterialValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_immaterialValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterImmaterialValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitImmaterialValueType(this); + } + } + + public final ImmaterialValueTypeContext immaterialValueType() throws RecognitionException { + ImmaterialValueTypeContext _localctx = new ImmaterialValueTypeContext(_ctx, getState()); + enterRule(_localctx, 730, RULE_immaterialValueType); + try { + setState(3555); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,395,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3553); + nullType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3554); + emptyType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NullTypeContext extends ParserRuleContext { + public TerminalNode NULL() { return getToken(GQL_20240412Parser.NULL, 0); } + public NullTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nullType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNullType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNullType(this); + } + } + + public final NullTypeContext nullType() throws RecognitionException { + NullTypeContext _localctx = new NullTypeContext(_ctx, getState()); + enterRule(_localctx, 732, RULE_nullType); + try { + enterOuterAlt(_localctx, 1); + { + setState(3557); + match(NULL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EmptyTypeContext extends ParserRuleContext { + public TerminalNode NULL() { return getToken(GQL_20240412Parser.NULL, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public TerminalNode NOTHING() { return getToken(GQL_20240412Parser.NOTHING, 0); } + public EmptyTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_emptyType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEmptyType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEmptyType(this); + } + } + + public final EmptyTypeContext emptyType() throws RecognitionException { + EmptyTypeContext _localctx = new EmptyTypeContext(_ctx, getState()); + enterRule(_localctx, 734, RULE_emptyType); + try { + setState(3562); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NULL: + enterOuterAlt(_localctx, 1); + { + setState(3559); + match(NULL); + setState(3560); + notNull(); + } + break; + case NOTHING: + enterOuterAlt(_localctx, 2); + { + setState(3561); + match(NOTHING); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphReferenceValueTypeContext extends ParserRuleContext { + public OpenGraphReferenceValueTypeContext openGraphReferenceValueType() { + return getRuleContext(OpenGraphReferenceValueTypeContext.class,0); + } + public ClosedGraphReferenceValueTypeContext closedGraphReferenceValueType() { + return getRuleContext(ClosedGraphReferenceValueTypeContext.class,0); + } + public GraphReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphReferenceValueType(this); + } + } + + public final GraphReferenceValueTypeContext graphReferenceValueType() throws RecognitionException { + GraphReferenceValueTypeContext _localctx = new GraphReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 736, RULE_graphReferenceValueType); + try { + setState(3566); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ANY: + enterOuterAlt(_localctx, 1); + { + setState(3564); + openGraphReferenceValueType(); + } + break; + case GRAPH: + case PROPERTY: + enterOuterAlt(_localctx, 2); + { + setState(3565); + closedGraphReferenceValueType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClosedGraphReferenceValueTypeContext extends ParserRuleContext { + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public NestedGraphTypeSpecificationContext nestedGraphTypeSpecification() { + return getRuleContext(NestedGraphTypeSpecificationContext.class,0); + } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public ClosedGraphReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_closedGraphReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterClosedGraphReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitClosedGraphReferenceValueType(this); + } + } + + public final ClosedGraphReferenceValueTypeContext closedGraphReferenceValueType() throws RecognitionException { + ClosedGraphReferenceValueTypeContext _localctx = new ClosedGraphReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 738, RULE_closedGraphReferenceValueType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3569); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(3568); + match(PROPERTY); + } + } + + setState(3571); + match(GRAPH); + setState(3572); + nestedGraphTypeSpecification(); + setState(3574); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,399,_ctx) ) { + case 1: + { + setState(3573); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OpenGraphReferenceValueTypeContext extends ParserRuleContext { + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public OpenGraphReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_openGraphReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOpenGraphReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOpenGraphReferenceValueType(this); + } + } + + public final OpenGraphReferenceValueTypeContext openGraphReferenceValueType() throws RecognitionException { + OpenGraphReferenceValueTypeContext _localctx = new OpenGraphReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 740, RULE_openGraphReferenceValueType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3576); + match(ANY); + setState(3578); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(3577); + match(PROPERTY); + } + } + + setState(3580); + match(GRAPH); + setState(3582); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,401,_ctx) ) { + case 1: + { + setState(3581); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingTableReferenceValueTypeContext extends ParserRuleContext { + public BindingTableTypeContext bindingTableType() { + return getRuleContext(BindingTableTypeContext.class,0); + } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public BindingTableReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingTableReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingTableReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingTableReferenceValueType(this); + } + } + + public final BindingTableReferenceValueTypeContext bindingTableReferenceValueType() throws RecognitionException { + BindingTableReferenceValueTypeContext _localctx = new BindingTableReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 742, RULE_bindingTableReferenceValueType); + try { + enterOuterAlt(_localctx, 1); + { + setState(3584); + bindingTableType(); + setState(3586); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,402,_ctx) ) { + case 1: + { + setState(3585); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeReferenceValueTypeContext extends ParserRuleContext { + public OpenNodeReferenceValueTypeContext openNodeReferenceValueType() { + return getRuleContext(OpenNodeReferenceValueTypeContext.class,0); + } + public ClosedNodeReferenceValueTypeContext closedNodeReferenceValueType() { + return getRuleContext(ClosedNodeReferenceValueTypeContext.class,0); + } + public NodeReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeReferenceValueType(this); + } + } + + public final NodeReferenceValueTypeContext nodeReferenceValueType() throws RecognitionException { + NodeReferenceValueTypeContext _localctx = new NodeReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 744, RULE_nodeReferenceValueType); + try { + setState(3590); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,403,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3588); + openNodeReferenceValueType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3589); + closedNodeReferenceValueType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClosedNodeReferenceValueTypeContext extends ParserRuleContext { + public NodeTypeSpecificationContext nodeTypeSpecification() { + return getRuleContext(NodeTypeSpecificationContext.class,0); + } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public ClosedNodeReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_closedNodeReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterClosedNodeReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitClosedNodeReferenceValueType(this); + } + } + + public final ClosedNodeReferenceValueTypeContext closedNodeReferenceValueType() throws RecognitionException { + ClosedNodeReferenceValueTypeContext _localctx = new ClosedNodeReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 746, RULE_closedNodeReferenceValueType); + try { + enterOuterAlt(_localctx, 1); + { + setState(3592); + nodeTypeSpecification(); + setState(3594); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,404,_ctx) ) { + case 1: + { + setState(3593); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OpenNodeReferenceValueTypeContext extends ParserRuleContext { + public NodeSynonymContext nodeSynonym() { + return getRuleContext(NodeSynonymContext.class,0); + } + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public OpenNodeReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_openNodeReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOpenNodeReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOpenNodeReferenceValueType(this); + } + } + + public final OpenNodeReferenceValueTypeContext openNodeReferenceValueType() throws RecognitionException { + OpenNodeReferenceValueTypeContext _localctx = new OpenNodeReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 748, RULE_openNodeReferenceValueType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3597); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ANY) { + { + setState(3596); + match(ANY); + } + } + + setState(3599); + nodeSynonym(); + setState(3601); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,406,_ctx) ) { + case 1: + { + setState(3600); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeReferenceValueTypeContext extends ParserRuleContext { + public OpenEdgeReferenceValueTypeContext openEdgeReferenceValueType() { + return getRuleContext(OpenEdgeReferenceValueTypeContext.class,0); + } + public ClosedEdgeReferenceValueTypeContext closedEdgeReferenceValueType() { + return getRuleContext(ClosedEdgeReferenceValueTypeContext.class,0); + } + public EdgeReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeReferenceValueType(this); + } + } + + public final EdgeReferenceValueTypeContext edgeReferenceValueType() throws RecognitionException { + EdgeReferenceValueTypeContext _localctx = new EdgeReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 750, RULE_edgeReferenceValueType); + try { + setState(3605); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,407,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3603); + openEdgeReferenceValueType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3604); + closedEdgeReferenceValueType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClosedEdgeReferenceValueTypeContext extends ParserRuleContext { + public EdgeTypeSpecificationContext edgeTypeSpecification() { + return getRuleContext(EdgeTypeSpecificationContext.class,0); + } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public ClosedEdgeReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_closedEdgeReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterClosedEdgeReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitClosedEdgeReferenceValueType(this); + } + } + + public final ClosedEdgeReferenceValueTypeContext closedEdgeReferenceValueType() throws RecognitionException { + ClosedEdgeReferenceValueTypeContext _localctx = new ClosedEdgeReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 752, RULE_closedEdgeReferenceValueType); + try { + enterOuterAlt(_localctx, 1); + { + setState(3607); + edgeTypeSpecification(); + setState(3609); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,408,_ctx) ) { + case 1: + { + setState(3608); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class OpenEdgeReferenceValueTypeContext extends ParserRuleContext { + public EdgeSynonymContext edgeSynonym() { + return getRuleContext(EdgeSynonymContext.class,0); + } + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public OpenEdgeReferenceValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_openEdgeReferenceValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterOpenEdgeReferenceValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitOpenEdgeReferenceValueType(this); + } + } + + public final OpenEdgeReferenceValueTypeContext openEdgeReferenceValueType() throws RecognitionException { + OpenEdgeReferenceValueTypeContext _localctx = new OpenEdgeReferenceValueTypeContext(_ctx, getState()); + enterRule(_localctx, 754, RULE_openEdgeReferenceValueType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3612); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ANY) { + { + setState(3611); + match(ANY); + } + } + + setState(3614); + edgeSynonym(); + setState(3616); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,410,_ctx) ) { + case 1: + { + setState(3615); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathValueTypeContext extends ParserRuleContext { + public TerminalNode PATH() { return getToken(GQL_20240412Parser.PATH, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public PathValueTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathValueType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathValueType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathValueType(this); + } + } + + public final PathValueTypeContext pathValueType() throws RecognitionException { + PathValueTypeContext _localctx = new PathValueTypeContext(_ctx, getState()); + enterRule(_localctx, 756, RULE_pathValueType); + try { + enterOuterAlt(_localctx, 1); + { + setState(3618); + match(PATH); + setState(3620); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,411,_ctx) ) { + case 1: + { + setState(3619); + notNull(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListValueTypeNameContext extends ParserRuleContext { + public ListValueTypeNameSynonymContext listValueTypeNameSynonym() { + return getRuleContext(ListValueTypeNameSynonymContext.class,0); + } + public TerminalNode GROUP() { return getToken(GQL_20240412Parser.GROUP, 0); } + public ListValueTypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listValueTypeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueTypeName(this); + } + } + + public final ListValueTypeNameContext listValueTypeName() throws RecognitionException { + ListValueTypeNameContext _localctx = new ListValueTypeNameContext(_ctx, getState()); + enterRule(_localctx, 758, RULE_listValueTypeName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3623); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==GROUP) { + { + setState(3622); + match(GROUP); + } + } + + setState(3625); + listValueTypeNameSynonym(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListValueTypeNameSynonymContext extends ParserRuleContext { + public TerminalNode LIST() { return getToken(GQL_20240412Parser.LIST, 0); } + public TerminalNode ARRAY() { return getToken(GQL_20240412Parser.ARRAY, 0); } + public ListValueTypeNameSynonymContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listValueTypeNameSynonym; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueTypeNameSynonym(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueTypeNameSynonym(this); + } + } + + public final ListValueTypeNameSynonymContext listValueTypeNameSynonym() throws RecognitionException { + ListValueTypeNameSynonymContext _localctx = new ListValueTypeNameSynonymContext(_ctx, getState()); + enterRule(_localctx, 760, RULE_listValueTypeNameSynonym); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3627); + _la = _input.LA(1); + if ( !(_la==ARRAY || _la==LIST) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordTypeContext extends ParserRuleContext { + public TerminalNode RECORD() { return getToken(GQL_20240412Parser.RECORD, 0); } + public TerminalNode ANY() { return getToken(GQL_20240412Parser.ANY, 0); } + public NotNullContext notNull() { + return getRuleContext(NotNullContext.class,0); + } + public FieldTypesSpecificationContext fieldTypesSpecification() { + return getRuleContext(FieldTypesSpecificationContext.class,0); + } + public RecordTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRecordType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRecordType(this); + } + } + + public final RecordTypeContext recordType() throws RecognitionException { + RecordTypeContext _localctx = new RecordTypeContext(_ctx, getState()); + enterRule(_localctx, 762, RULE_recordType); + int _la; + try { + setState(3643); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,417,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3630); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ANY) { + { + setState(3629); + match(ANY); + } + } + + setState(3632); + match(RECORD); + setState(3634); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,414,_ctx) ) { + case 1: + { + setState(3633); + notNull(); + } + break; + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3637); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==RECORD) { + { + setState(3636); + match(RECORD); + } + } + + setState(3639); + fieldTypesSpecification(); + setState(3641); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,416,_ctx) ) { + case 1: + { + setState(3640); + notNull(); + } + break; + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldTypesSpecificationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public FieldTypeListContext fieldTypeList() { + return getRuleContext(FieldTypeListContext.class,0); + } + public FieldTypesSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldTypesSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFieldTypesSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFieldTypesSpecification(this); + } + } + + public final FieldTypesSpecificationContext fieldTypesSpecification() throws RecognitionException { + FieldTypesSpecificationContext _localctx = new FieldTypesSpecificationContext(_ctx, getState()); + enterRule(_localctx, 764, RULE_fieldTypesSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3645); + match(LEFT_BRACE); + setState(3647); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==ACCENT_QUOTED_CHARACTER_SEQUENCE || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0) { + { + setState(3646); + fieldTypeList(); + } + } + + setState(3649); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldTypeListContext extends ParserRuleContext { + public List fieldType() { + return getRuleContexts(FieldTypeContext.class); + } + public FieldTypeContext fieldType(int i) { + return getRuleContext(FieldTypeContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public FieldTypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldTypeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFieldTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFieldTypeList(this); + } + } + + public final FieldTypeListContext fieldTypeList() throws RecognitionException { + FieldTypeListContext _localctx = new FieldTypeListContext(_ctx, getState()); + enterRule(_localctx, 766, RULE_fieldTypeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3651); + fieldType(); + setState(3656); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(3652); + match(COMMA); + setState(3653); + fieldType(); + } + } + setState(3658); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NotNullContext extends ParserRuleContext { + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public TerminalNode NULL() { return getToken(GQL_20240412Parser.NULL, 0); } + public NotNullContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_notNull; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNotNull(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNotNull(this); + } + } + + public final NotNullContext notNull() throws RecognitionException { + NotNullContext _localctx = new NotNullContext(_ctx, getState()); + enterRule(_localctx, 768, RULE_notNull); + try { + enterOuterAlt(_localctx, 1); + { + setState(3659); + match(NOT); + setState(3660); + match(NULL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldTypeContext extends ParserRuleContext { + public FieldNameContext fieldName() { + return getRuleContext(FieldNameContext.class,0); + } + public ValueTypeContext valueType() { + return getRuleContext(ValueTypeContext.class,0); + } + public TypedContext typed() { + return getRuleContext(TypedContext.class,0); + } + public FieldTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFieldType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFieldType(this); + } + } + + public final FieldTypeContext fieldType() throws RecognitionException { + FieldTypeContext _localctx = new FieldTypeContext(_ctx, getState()); + enterRule(_localctx, 770, RULE_fieldType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3662); + fieldName(); + setState(3664); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPED || _la==DOUBLE_COLON) { + { + setState(3663); + typed(); + } + } + + setState(3666); + valueType(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SearchConditionContext extends ParserRuleContext { + public BooleanValueExpressionContext booleanValueExpression() { + return getRuleContext(BooleanValueExpressionContext.class,0); + } + public SearchConditionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_searchCondition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSearchCondition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSearchCondition(this); + } + } + + public final SearchConditionContext searchCondition() throws RecognitionException { + SearchConditionContext _localctx = new SearchConditionContext(_ctx, getState()); + enterRule(_localctx, 772, RULE_searchCondition); + try { + enterOuterAlt(_localctx, 1); + { + setState(3668); + booleanValueExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PredicateContext extends ParserRuleContext { + public ExistsPredicateContext existsPredicate() { + return getRuleContext(ExistsPredicateContext.class,0); + } + public NullPredicateContext nullPredicate() { + return getRuleContext(NullPredicateContext.class,0); + } + public ValueTypePredicateContext valueTypePredicate() { + return getRuleContext(ValueTypePredicateContext.class,0); + } + public DirectedPredicateContext directedPredicate() { + return getRuleContext(DirectedPredicateContext.class,0); + } + public LabeledPredicateContext labeledPredicate() { + return getRuleContext(LabeledPredicateContext.class,0); + } + public SourceDestinationPredicateContext sourceDestinationPredicate() { + return getRuleContext(SourceDestinationPredicateContext.class,0); + } + public All_differentPredicateContext all_differentPredicate() { + return getRuleContext(All_differentPredicateContext.class,0); + } + public SamePredicateContext samePredicate() { + return getRuleContext(SamePredicateContext.class,0); + } + public Property_existsPredicateContext property_existsPredicate() { + return getRuleContext(Property_existsPredicateContext.class,0); + } + public PredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_predicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPredicate(this); + } + } + + public final PredicateContext predicate() throws RecognitionException { + PredicateContext _localctx = new PredicateContext(_ctx, getState()); + enterRule(_localctx, 774, RULE_predicate); + try { + setState(3679); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,421,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3670); + existsPredicate(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3671); + nullPredicate(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(3672); + valueTypePredicate(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(3673); + directedPredicate(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(3674); + labeledPredicate(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(3675); + sourceDestinationPredicate(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(3676); + all_differentPredicate(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(3677); + samePredicate(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(3678); + property_existsPredicate(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ComparisonPredicatePart2Context extends ParserRuleContext { + public CompOpContext compOp() { + return getRuleContext(CompOpContext.class,0); + } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ComparisonPredicatePart2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_comparisonPredicatePart2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterComparisonPredicatePart2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitComparisonPredicatePart2(this); + } + } + + public final ComparisonPredicatePart2Context comparisonPredicatePart2() throws RecognitionException { + ComparisonPredicatePart2Context _localctx = new ComparisonPredicatePart2Context(_ctx, getState()); + enterRule(_localctx, 776, RULE_comparisonPredicatePart2); + try { + enterOuterAlt(_localctx, 1); + { + setState(3681); + compOp(); + setState(3682); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CompOpContext extends ParserRuleContext { + public TerminalNode EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.EQUALS_OPERATOR, 0); } + public TerminalNode NOT_EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.NOT_EQUALS_OPERATOR, 0); } + public TerminalNode LEFT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.LEFT_ANGLE_BRACKET, 0); } + public TerminalNode RIGHT_ANGLE_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_ANGLE_BRACKET, 0); } + public TerminalNode LESS_THAN_OR_EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.LESS_THAN_OR_EQUALS_OPERATOR, 0); } + public TerminalNode GREATER_THAN_OR_EQUALS_OPERATOR() { return getToken(GQL_20240412Parser.GREATER_THAN_OR_EQUALS_OPERATOR, 0); } + public CompOpContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_compOp; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCompOp(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCompOp(this); + } + } + + public final CompOpContext compOp() throws RecognitionException { + CompOpContext _localctx = new CompOpContext(_ctx, getState()); + enterRule(_localctx, 778, RULE_compOp); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3684); + _la = _input.LA(1); + if ( !((((_la - 335)) & ~0x3f) == 0 && ((1L << (_la - 335)) & 142807664897L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExistsPredicateContext extends ParserRuleContext { + public TerminalNode EXISTS() { return getToken(GQL_20240412Parser.EXISTS, 0); } + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public GraphPatternContext graphPattern() { + return getRuleContext(GraphPatternContext.class,0); + } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public MatchStatementBlockContext matchStatementBlock() { + return getRuleContext(MatchStatementBlockContext.class,0); + } + public NestedQuerySpecificationContext nestedQuerySpecification() { + return getRuleContext(NestedQuerySpecificationContext.class,0); + } + public ExistsPredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_existsPredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterExistsPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitExistsPredicate(this); + } + } + + public final ExistsPredicateContext existsPredicate() throws RecognitionException { + ExistsPredicateContext _localctx = new ExistsPredicateContext(_ctx, getState()); + enterRule(_localctx, 780, RULE_existsPredicate); + try { + enterOuterAlt(_localctx, 1); + { + setState(3686); + match(EXISTS); + setState(3704); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,422,_ctx) ) { + case 1: + { + setState(3687); + match(LEFT_BRACE); + setState(3688); + graphPattern(); + setState(3689); + match(RIGHT_BRACE); + } + break; + case 2: + { + setState(3691); + match(LEFT_PAREN); + setState(3692); + graphPattern(); + setState(3693); + match(RIGHT_PAREN); + } + break; + case 3: + { + setState(3695); + match(LEFT_BRACE); + setState(3696); + matchStatementBlock(); + setState(3697); + match(RIGHT_BRACE); + } + break; + case 4: + { + setState(3699); + match(LEFT_PAREN); + setState(3700); + matchStatementBlock(); + setState(3701); + match(RIGHT_PAREN); + } + break; + case 5: + { + setState(3703); + nestedQuerySpecification(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NullPredicateContext extends ParserRuleContext { + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public NullPredicatePart2Context nullPredicatePart2() { + return getRuleContext(NullPredicatePart2Context.class,0); + } + public NullPredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nullPredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNullPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNullPredicate(this); + } + } + + public final NullPredicateContext nullPredicate() throws RecognitionException { + NullPredicateContext _localctx = new NullPredicateContext(_ctx, getState()); + enterRule(_localctx, 782, RULE_nullPredicate); + try { + enterOuterAlt(_localctx, 1); + { + setState(3706); + valueExpressionPrimary(0); + setState(3707); + nullPredicatePart2(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NullPredicatePart2Context extends ParserRuleContext { + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TerminalNode NULL() { return getToken(GQL_20240412Parser.NULL, 0); } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public NullPredicatePart2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nullPredicatePart2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNullPredicatePart2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNullPredicatePart2(this); + } + } + + public final NullPredicatePart2Context nullPredicatePart2() throws RecognitionException { + NullPredicatePart2Context _localctx = new NullPredicatePart2Context(_ctx, getState()); + enterRule(_localctx, 784, RULE_nullPredicatePart2); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3709); + match(IS); + setState(3711); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(3710); + match(NOT); + } + } + + setState(3713); + match(NULL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueTypePredicateContext extends ParserRuleContext { + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public ValueTypePredicatePart2Context valueTypePredicatePart2() { + return getRuleContext(ValueTypePredicatePart2Context.class,0); + } + public ValueTypePredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueTypePredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterValueTypePredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitValueTypePredicate(this); + } + } + + public final ValueTypePredicateContext valueTypePredicate() throws RecognitionException { + ValueTypePredicateContext _localctx = new ValueTypePredicateContext(_ctx, getState()); + enterRule(_localctx, 786, RULE_valueTypePredicate); + try { + enterOuterAlt(_localctx, 1); + { + setState(3715); + valueExpressionPrimary(0); + setState(3716); + valueTypePredicatePart2(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueTypePredicatePart2Context extends ParserRuleContext { + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TypedContext typed() { + return getRuleContext(TypedContext.class,0); + } + public ValueTypeContext valueType() { + return getRuleContext(ValueTypeContext.class,0); + } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public ValueTypePredicatePart2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueTypePredicatePart2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterValueTypePredicatePart2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitValueTypePredicatePart2(this); + } + } + + public final ValueTypePredicatePart2Context valueTypePredicatePart2() throws RecognitionException { + ValueTypePredicatePart2Context _localctx = new ValueTypePredicatePart2Context(_ctx, getState()); + enterRule(_localctx, 788, RULE_valueTypePredicatePart2); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3718); + match(IS); + setState(3720); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(3719); + match(NOT); + } + } + + setState(3722); + typed(); + setState(3723); + valueType(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalizedPredicatePart2Context extends ParserRuleContext { + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TerminalNode NORMALIZED() { return getToken(GQL_20240412Parser.NORMALIZED, 0); } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public NormalFormContext normalForm() { + return getRuleContext(NormalFormContext.class,0); + } + public NormalizedPredicatePart2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_normalizedPredicatePart2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNormalizedPredicatePart2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNormalizedPredicatePart2(this); + } + } + + public final NormalizedPredicatePart2Context normalizedPredicatePart2() throws RecognitionException { + NormalizedPredicatePart2Context _localctx = new NormalizedPredicatePart2Context(_ctx, getState()); + enterRule(_localctx, 790, RULE_normalizedPredicatePart2); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3725); + match(IS); + setState(3727); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(3726); + match(NOT); + } + } + + setState(3730); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la - 296)) & ~0x3f) == 0 && ((1L << (_la - 296)) & 15L) != 0) { + { + setState(3729); + normalForm(); + } + } + + setState(3732); + match(NORMALIZED); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DirectedPredicateContext extends ParserRuleContext { + public ElementVariableReferenceContext elementVariableReference() { + return getRuleContext(ElementVariableReferenceContext.class,0); + } + public DirectedPredicatePart2Context directedPredicatePart2() { + return getRuleContext(DirectedPredicatePart2Context.class,0); + } + public DirectedPredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_directedPredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDirectedPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDirectedPredicate(this); + } + } + + public final DirectedPredicateContext directedPredicate() throws RecognitionException { + DirectedPredicateContext _localctx = new DirectedPredicateContext(_ctx, getState()); + enterRule(_localctx, 792, RULE_directedPredicate); + try { + enterOuterAlt(_localctx, 1); + { + setState(3734); + elementVariableReference(); + setState(3735); + directedPredicatePart2(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DirectedPredicatePart2Context extends ParserRuleContext { + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TerminalNode DIRECTED() { return getToken(GQL_20240412Parser.DIRECTED, 0); } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public DirectedPredicatePart2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_directedPredicatePart2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDirectedPredicatePart2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDirectedPredicatePart2(this); + } + } + + public final DirectedPredicatePart2Context directedPredicatePart2() throws RecognitionException { + DirectedPredicatePart2Context _localctx = new DirectedPredicatePart2Context(_ctx, getState()); + enterRule(_localctx, 794, RULE_directedPredicatePart2); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3737); + match(IS); + setState(3739); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(3738); + match(NOT); + } + } + + setState(3741); + match(DIRECTED); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabeledPredicateContext extends ParserRuleContext { + public ElementVariableReferenceContext elementVariableReference() { + return getRuleContext(ElementVariableReferenceContext.class,0); + } + public LabeledPredicatePart2Context labeledPredicatePart2() { + return getRuleContext(LabeledPredicatePart2Context.class,0); + } + public LabeledPredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labeledPredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabeledPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabeledPredicate(this); + } + } + + public final LabeledPredicateContext labeledPredicate() throws RecognitionException { + LabeledPredicateContext _localctx = new LabeledPredicateContext(_ctx, getState()); + enterRule(_localctx, 796, RULE_labeledPredicate); + try { + enterOuterAlt(_localctx, 1); + { + setState(3743); + elementVariableReference(); + setState(3744); + labeledPredicatePart2(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabeledPredicatePart2Context extends ParserRuleContext { + public IsLabeledOrColonContext isLabeledOrColon() { + return getRuleContext(IsLabeledOrColonContext.class,0); + } + public LabelExpressionContext labelExpression() { + return getRuleContext(LabelExpressionContext.class,0); + } + public LabeledPredicatePart2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labeledPredicatePart2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabeledPredicatePart2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabeledPredicatePart2(this); + } + } + + public final LabeledPredicatePart2Context labeledPredicatePart2() throws RecognitionException { + LabeledPredicatePart2Context _localctx = new LabeledPredicatePart2Context(_ctx, getState()); + enterRule(_localctx, 798, RULE_labeledPredicatePart2); + try { + enterOuterAlt(_localctx, 1); + { + setState(3746); + isLabeledOrColon(); + setState(3747); + labelExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IsLabeledOrColonContext extends ParserRuleContext { + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TerminalNode LABELED() { return getToken(GQL_20240412Parser.LABELED, 0); } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public TerminalNode COLON() { return getToken(GQL_20240412Parser.COLON, 0); } + public IsLabeledOrColonContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_isLabeledOrColon; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterIsLabeledOrColon(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitIsLabeledOrColon(this); + } + } + + public final IsLabeledOrColonContext isLabeledOrColon() throws RecognitionException { + IsLabeledOrColonContext _localctx = new IsLabeledOrColonContext(_ctx, getState()); + enterRule(_localctx, 800, RULE_isLabeledOrColon); + int _la; + try { + setState(3755); + _errHandler.sync(this); + switch (_input.LA(1)) { + case IS: + enterOuterAlt(_localctx, 1); + { + setState(3749); + match(IS); + setState(3751); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(3750); + match(NOT); + } + } + + setState(3753); + match(LABELED); + } + break; + case COLON: + enterOuterAlt(_localctx, 2); + { + setState(3754); + match(COLON); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SourceDestinationPredicateContext extends ParserRuleContext { + public NodeReferenceContext nodeReference() { + return getRuleContext(NodeReferenceContext.class,0); + } + public SourcePredicatePart2Context sourcePredicatePart2() { + return getRuleContext(SourcePredicatePart2Context.class,0); + } + public DestinationPredicatePart2Context destinationPredicatePart2() { + return getRuleContext(DestinationPredicatePart2Context.class,0); + } + public SourceDestinationPredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sourceDestinationPredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSourceDestinationPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSourceDestinationPredicate(this); + } + } + + public final SourceDestinationPredicateContext sourceDestinationPredicate() throws RecognitionException { + SourceDestinationPredicateContext _localctx = new SourceDestinationPredicateContext(_ctx, getState()); + enterRule(_localctx, 802, RULE_sourceDestinationPredicate); + try { + setState(3763); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,430,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3757); + nodeReference(); + setState(3758); + sourcePredicatePart2(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3760); + nodeReference(); + setState(3761); + destinationPredicatePart2(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeReferenceContext extends ParserRuleContext { + public ElementVariableReferenceContext elementVariableReference() { + return getRuleContext(ElementVariableReferenceContext.class,0); + } + public NodeReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeReference(this); + } + } + + public final NodeReferenceContext nodeReference() throws RecognitionException { + NodeReferenceContext _localctx = new NodeReferenceContext(_ctx, getState()); + enterRule(_localctx, 804, RULE_nodeReference); + try { + enterOuterAlt(_localctx, 1); + { + setState(3765); + elementVariableReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SourcePredicatePart2Context extends ParserRuleContext { + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TerminalNode SOURCE() { return getToken(GQL_20240412Parser.SOURCE, 0); } + public TerminalNode OF() { return getToken(GQL_20240412Parser.OF, 0); } + public EdgeReferenceContext edgeReference() { + return getRuleContext(EdgeReferenceContext.class,0); + } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public SourcePredicatePart2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sourcePredicatePart2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSourcePredicatePart2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSourcePredicatePart2(this); + } + } + + public final SourcePredicatePart2Context sourcePredicatePart2() throws RecognitionException { + SourcePredicatePart2Context _localctx = new SourcePredicatePart2Context(_ctx, getState()); + enterRule(_localctx, 806, RULE_sourcePredicatePart2); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3767); + match(IS); + setState(3769); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(3768); + match(NOT); + } + } + + setState(3771); + match(SOURCE); + setState(3772); + match(OF); + setState(3773); + edgeReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DestinationPredicatePart2Context extends ParserRuleContext { + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TerminalNode DESTINATION() { return getToken(GQL_20240412Parser.DESTINATION, 0); } + public TerminalNode OF() { return getToken(GQL_20240412Parser.OF, 0); } + public EdgeReferenceContext edgeReference() { + return getRuleContext(EdgeReferenceContext.class,0); + } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public DestinationPredicatePart2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_destinationPredicatePart2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDestinationPredicatePart2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDestinationPredicatePart2(this); + } + } + + public final DestinationPredicatePart2Context destinationPredicatePart2() throws RecognitionException { + DestinationPredicatePart2Context _localctx = new DestinationPredicatePart2Context(_ctx, getState()); + enterRule(_localctx, 808, RULE_destinationPredicatePart2); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3775); + match(IS); + setState(3777); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(3776); + match(NOT); + } + } + + setState(3779); + match(DESTINATION); + setState(3780); + match(OF); + setState(3781); + edgeReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeReferenceContext extends ParserRuleContext { + public ElementVariableReferenceContext elementVariableReference() { + return getRuleContext(ElementVariableReferenceContext.class,0); + } + public EdgeReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeReference(this); + } + } + + public final EdgeReferenceContext edgeReference() throws RecognitionException { + EdgeReferenceContext _localctx = new EdgeReferenceContext(_ctx, getState()); + enterRule(_localctx, 810, RULE_edgeReference); + try { + enterOuterAlt(_localctx, 1); + { + setState(3783); + elementVariableReference(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class All_differentPredicateContext extends ParserRuleContext { + public TerminalNode ALL_DIFFERENT() { return getToken(GQL_20240412Parser.ALL_DIFFERENT, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public List elementVariableReference() { + return getRuleContexts(ElementVariableReferenceContext.class); + } + public ElementVariableReferenceContext elementVariableReference(int i) { + return getRuleContext(ElementVariableReferenceContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public All_differentPredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_all_differentPredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAll_differentPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAll_differentPredicate(this); + } + } + + public final All_differentPredicateContext all_differentPredicate() throws RecognitionException { + All_differentPredicateContext _localctx = new All_differentPredicateContext(_ctx, getState()); + enterRule(_localctx, 812, RULE_all_differentPredicate); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3785); + match(ALL_DIFFERENT); + setState(3786); + match(LEFT_PAREN); + setState(3787); + elementVariableReference(); + setState(3788); + match(COMMA); + setState(3789); + elementVariableReference(); + setState(3794); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(3790); + match(COMMA); + setState(3791); + elementVariableReference(); + } + } + setState(3796); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(3797); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SamePredicateContext extends ParserRuleContext { + public TerminalNode SAME() { return getToken(GQL_20240412Parser.SAME, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public List elementVariableReference() { + return getRuleContexts(ElementVariableReferenceContext.class); + } + public ElementVariableReferenceContext elementVariableReference(int i) { + return getRuleContext(ElementVariableReferenceContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public SamePredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_samePredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSamePredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSamePredicate(this); + } + } + + public final SamePredicateContext samePredicate() throws RecognitionException { + SamePredicateContext _localctx = new SamePredicateContext(_ctx, getState()); + enterRule(_localctx, 814, RULE_samePredicate); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3799); + match(SAME); + setState(3800); + match(LEFT_PAREN); + setState(3801); + elementVariableReference(); + setState(3802); + match(COMMA); + setState(3803); + elementVariableReference(); + setState(3808); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(3804); + match(COMMA); + setState(3805); + elementVariableReference(); + } + } + setState(3810); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(3811); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class Property_existsPredicateContext extends ParserRuleContext { + public TerminalNode PROPERTY_EXISTS() { return getToken(GQL_20240412Parser.PROPERTY_EXISTS, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ElementVariableReferenceContext elementVariableReference() { + return getRuleContext(ElementVariableReferenceContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public Property_existsPredicateContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_property_existsPredicate; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProperty_existsPredicate(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProperty_existsPredicate(this); + } + } + + public final Property_existsPredicateContext property_existsPredicate() throws RecognitionException { + Property_existsPredicateContext _localctx = new Property_existsPredicateContext(_ctx, getState()); + enterRule(_localctx, 816, RULE_property_existsPredicate); + try { + enterOuterAlt(_localctx, 1); + { + setState(3813); + match(PROPERTY_EXISTS); + setState(3814); + match(LEFT_PAREN); + setState(3815); + elementVariableReference(); + setState(3816); + match(COMMA); + setState(3817); + propertyName(); + setState(3818); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueExpression; } + + public ValueExpressionContext() { } + public void copyFrom(ValueExpressionContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ConjunctiveExprAltContext extends ValueExpressionContext { + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode AND() { return getToken(GQL_20240412Parser.AND, 0); } + public ConjunctiveExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterConjunctiveExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitConjunctiveExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PropertyGraphExprAltContext extends ValueExpressionContext { + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public GraphExpressionContext graphExpression() { + return getRuleContext(GraphExpressionContext.class,0); + } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public PropertyGraphExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPropertyGraphExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPropertyGraphExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MultDivExprAltContext extends ValueExpressionContext { + public Token operator; + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode ASTERISK() { return getToken(GQL_20240412Parser.ASTERISK, 0); } + public TerminalNode SOLIDUS() { return getToken(GQL_20240412Parser.SOLIDUS, 0); } + public MultDivExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterMultDivExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitMultDivExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BindingTableExprAltContext extends ValueExpressionContext { + public TerminalNode TABLE() { return getToken(GQL_20240412Parser.TABLE, 0); } + public BindingTableExpressionContext bindingTableExpression() { + return getRuleContext(BindingTableExpressionContext.class,0); + } + public TerminalNode BINDING() { return getToken(GQL_20240412Parser.BINDING, 0); } + public BindingTableExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingTableExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingTableExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SignedExprAltContext extends ValueExpressionContext { + public Token sign; + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode PLUS_SIGN() { return getToken(GQL_20240412Parser.PLUS_SIGN, 0); } + public TerminalNode MINUS_SIGN() { return getToken(GQL_20240412Parser.MINUS_SIGN, 0); } + public SignedExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSignedExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSignedExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class IsNotExprAltContext extends ValueExpressionContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode IS() { return getToken(GQL_20240412Parser.IS, 0); } + public TruthValueContext truthValue() { + return getRuleContext(TruthValueContext.class,0); + } + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public IsNotExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterIsNotExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitIsNotExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class NormalizedPredicateExprAltContext extends ValueExpressionContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public NormalizedPredicatePart2Context normalizedPredicatePart2() { + return getRuleContext(NormalizedPredicatePart2Context.class,0); + } + public NormalizedPredicateExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNormalizedPredicateExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNormalizedPredicateExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class NotExprAltContext extends ValueExpressionContext { + public TerminalNode NOT() { return getToken(GQL_20240412Parser.NOT, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public NotExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNotExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNotExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ValueFunctionExprAltContext extends ValueExpressionContext { + public ValueFunctionContext valueFunction() { + return getRuleContext(ValueFunctionContext.class,0); + } + public ValueFunctionExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterValueFunctionExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitValueFunctionExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ConcatenationExprAltContext extends ValueExpressionContext { + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode CONCATENATION_OPERATOR() { return getToken(GQL_20240412Parser.CONCATENATION_OPERATOR, 0); } + public ConcatenationExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterConcatenationExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitConcatenationExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class DisjunctiveExprAltContext extends ValueExpressionContext { + public Token operator; + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode OR() { return getToken(GQL_20240412Parser.OR, 0); } + public TerminalNode XOR() { return getToken(GQL_20240412Parser.XOR, 0); } + public DisjunctiveExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDisjunctiveExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDisjunctiveExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ComparisonExprAltContext extends ValueExpressionContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ComparisonPredicatePart2Context comparisonPredicatePart2() { + return getRuleContext(ComparisonPredicatePart2Context.class,0); + } + public ComparisonExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterComparisonExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitComparisonExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryExprAltContext extends ValueExpressionContext { + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public PrimaryExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPrimaryExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPrimaryExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AddSubtractExprAltContext extends ValueExpressionContext { + public Token operator; + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode PLUS_SIGN() { return getToken(GQL_20240412Parser.PLUS_SIGN, 0); } + public TerminalNode MINUS_SIGN() { return getToken(GQL_20240412Parser.MINUS_SIGN, 0); } + public AddSubtractExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAddSubtractExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAddSubtractExprAlt(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PredicateExprAltContext extends ValueExpressionContext { + public PredicateContext predicate() { + return getRuleContext(PredicateContext.class,0); + } + public PredicateExprAltContext(ValueExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPredicateExprAlt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPredicateExprAlt(this); + } + } + + public final ValueExpressionContext valueExpression() throws RecognitionException { + return valueExpression(0); + } + + private ValueExpressionContext valueExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ValueExpressionContext _localctx = new ValueExpressionContext(_ctx, _parentState); + ValueExpressionContext _prevctx = _localctx; + int _startState = 818; + enterRecursionRule(_localctx, 818, RULE_valueExpression, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(3838); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,437,_ctx) ) { + case 1: + { + _localctx = new SignedExprAltContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(3821); + ((SignedExprAltContext)_localctx).sign = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==MINUS_SIGN || _la==PLUS_SIGN) ) { + ((SignedExprAltContext)_localctx).sign = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3822); + valueExpression(15); + } + break; + case 2: + { + _localctx = new NotExprAltContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3823); + match(NOT); + setState(3824); + valueExpression(11); + } + break; + case 3: + { + _localctx = new PredicateExprAltContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3825); + predicate(); + } + break; + case 4: + { + _localctx = new PropertyGraphExprAltContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3827); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PROPERTY) { + { + setState(3826); + match(PROPERTY); + } + } + + setState(3829); + match(GRAPH); + setState(3830); + graphExpression(); + } + break; + case 5: + { + _localctx = new BindingTableExprAltContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3832); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BINDING) { + { + setState(3831); + match(BINDING); + } + } + + setState(3834); + match(TABLE); + setState(3835); + bindingTableExpression(); + } + break; + case 6: + { + _localctx = new ValueFunctionExprAltContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3836); + valueFunction(); + } + break; + case 7: + { + _localctx = new PrimaryExprAltContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(3837); + valueExpressionPrimary(0); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(3867); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,440,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(3865); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,439,_ctx) ) { + case 1: + { + _localctx = new MultDivExprAltContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(3840); + if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)"); + setState(3841); + ((MultDivExprAltContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==ASTERISK || _la==SOLIDUS) ) { + ((MultDivExprAltContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3842); + valueExpression(15); + } + break; + case 2: + { + _localctx = new AddSubtractExprAltContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(3843); + if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)"); + setState(3844); + ((AddSubtractExprAltContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==MINUS_SIGN || _la==PLUS_SIGN) ) { + ((AddSubtractExprAltContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3845); + valueExpression(14); + } + break; + case 3: + { + _localctx = new ConcatenationExprAltContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(3846); + if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)"); + setState(3847); + match(CONCATENATION_OPERATOR); + setState(3848); + valueExpression(13); + } + break; + case 4: + { + _localctx = new ConjunctiveExprAltContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(3849); + if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); + setState(3850); + match(AND); + setState(3851); + valueExpression(10); + } + break; + case 5: + { + _localctx = new DisjunctiveExprAltContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(3852); + if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); + setState(3853); + ((DisjunctiveExprAltContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==OR || _la==XOR) ) { + ((DisjunctiveExprAltContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3854); + valueExpression(9); + } + break; + case 6: + { + _localctx = new IsNotExprAltContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(3855); + if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); + setState(3856); + match(IS); + setState(3858); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NOT) { + { + setState(3857); + match(NOT); + } + } + + setState(3860); + truthValue(); + } + break; + case 7: + { + _localctx = new ComparisonExprAltContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(3861); + if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); + setState(3862); + comparisonPredicatePart2(); + } + break; + case 8: + { + _localctx = new NormalizedPredicateExprAltContext(new ValueExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpression); + setState(3863); + if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)"); + setState(3864); + normalizedPredicatePart2(); + } + break; + } + } + } + setState(3869); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,440,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueFunctionContext extends ParserRuleContext { + public NumericValueFunctionContext numericValueFunction() { + return getRuleContext(NumericValueFunctionContext.class,0); + } + public DatetimeSubtractionContext datetimeSubtraction() { + return getRuleContext(DatetimeSubtractionContext.class,0); + } + public DatetimeValueFunctionContext datetimeValueFunction() { + return getRuleContext(DatetimeValueFunctionContext.class,0); + } + public DurationValueFunctionContext durationValueFunction() { + return getRuleContext(DurationValueFunctionContext.class,0); + } + public CharacterOrByteStringFunctionContext characterOrByteStringFunction() { + return getRuleContext(CharacterOrByteStringFunctionContext.class,0); + } + public ListValueFunctionContext listValueFunction() { + return getRuleContext(ListValueFunctionContext.class,0); + } + public ValueFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterValueFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitValueFunction(this); + } + } + + public final ValueFunctionContext valueFunction() throws RecognitionException { + ValueFunctionContext _localctx = new ValueFunctionContext(_ctx, getState()); + enterRule(_localctx, 820, RULE_valueFunction); + try { + setState(3876); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,441,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3870); + numericValueFunction(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3871); + datetimeSubtraction(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(3872); + datetimeValueFunction(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(3873); + durationValueFunction(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(3874); + characterOrByteStringFunction(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(3875); + listValueFunction(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BooleanValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public BooleanValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_booleanValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBooleanValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBooleanValueExpression(this); + } + } + + public final BooleanValueExpressionContext booleanValueExpression() throws RecognitionException { + BooleanValueExpressionContext _localctx = new BooleanValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 822, RULE_booleanValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(3878); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CharacterOrByteStringFunctionContext extends ParserRuleContext { + public SubCharacterOrByteStringContext subCharacterOrByteString() { + return getRuleContext(SubCharacterOrByteStringContext.class,0); + } + public TrimSingleCharacterOrByteStringContext trimSingleCharacterOrByteString() { + return getRuleContext(TrimSingleCharacterOrByteStringContext.class,0); + } + public FoldCharacterStringContext foldCharacterString() { + return getRuleContext(FoldCharacterStringContext.class,0); + } + public TrimMultiCharacterCharacterStringContext trimMultiCharacterCharacterString() { + return getRuleContext(TrimMultiCharacterCharacterStringContext.class,0); + } + public NormalizeCharacterStringContext normalizeCharacterString() { + return getRuleContext(NormalizeCharacterStringContext.class,0); + } + public CharacterOrByteStringFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_characterOrByteStringFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCharacterOrByteStringFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCharacterOrByteStringFunction(this); + } + } + + public final CharacterOrByteStringFunctionContext characterOrByteStringFunction() throws RecognitionException { + CharacterOrByteStringFunctionContext _localctx = new CharacterOrByteStringFunctionContext(_ctx, getState()); + enterRule(_localctx, 824, RULE_characterOrByteStringFunction); + try { + setState(3885); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LEFT: + case RIGHT: + enterOuterAlt(_localctx, 1); + { + setState(3880); + subCharacterOrByteString(); + } + break; + case TRIM: + enterOuterAlt(_localctx, 2); + { + setState(3881); + trimSingleCharacterOrByteString(); + } + break; + case LOWER: + case UPPER: + enterOuterAlt(_localctx, 3); + { + setState(3882); + foldCharacterString(); + } + break; + case BTRIM: + case LTRIM: + case RTRIM: + enterOuterAlt(_localctx, 4); + { + setState(3883); + trimMultiCharacterCharacterString(); + } + break; + case NORMALIZE: + enterOuterAlt(_localctx, 5); + { + setState(3884); + normalizeCharacterString(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SubCharacterOrByteStringContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public StringLengthContext stringLength() { + return getRuleContext(StringLengthContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode LEFT() { return getToken(GQL_20240412Parser.LEFT, 0); } + public TerminalNode RIGHT() { return getToken(GQL_20240412Parser.RIGHT, 0); } + public SubCharacterOrByteStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_subCharacterOrByteString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSubCharacterOrByteString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSubCharacterOrByteString(this); + } + } + + public final SubCharacterOrByteStringContext subCharacterOrByteString() throws RecognitionException { + SubCharacterOrByteStringContext _localctx = new SubCharacterOrByteStringContext(_ctx, getState()); + enterRule(_localctx, 826, RULE_subCharacterOrByteString); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3887); + _la = _input.LA(1); + if ( !(_la==LEFT || _la==RIGHT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3888); + match(LEFT_PAREN); + setState(3889); + valueExpression(0); + setState(3890); + match(COMMA); + setState(3891); + stringLength(); + setState(3892); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrimSingleCharacterOrByteStringContext extends ParserRuleContext { + public TerminalNode TRIM() { return getToken(GQL_20240412Parser.TRIM, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TrimOperandsContext trimOperands() { + return getRuleContext(TrimOperandsContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TrimSingleCharacterOrByteStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trimSingleCharacterOrByteString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrimSingleCharacterOrByteString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrimSingleCharacterOrByteString(this); + } + } + + public final TrimSingleCharacterOrByteStringContext trimSingleCharacterOrByteString() throws RecognitionException { + TrimSingleCharacterOrByteStringContext _localctx = new TrimSingleCharacterOrByteStringContext(_ctx, getState()); + enterRule(_localctx, 828, RULE_trimSingleCharacterOrByteString); + try { + enterOuterAlt(_localctx, 1); + { + setState(3894); + match(TRIM); + setState(3895); + match(LEFT_PAREN); + setState(3896); + trimOperands(); + setState(3897); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FoldCharacterStringContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode UPPER() { return getToken(GQL_20240412Parser.UPPER, 0); } + public TerminalNode LOWER() { return getToken(GQL_20240412Parser.LOWER, 0); } + public FoldCharacterStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_foldCharacterString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFoldCharacterString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFoldCharacterString(this); + } + } + + public final FoldCharacterStringContext foldCharacterString() throws RecognitionException { + FoldCharacterStringContext _localctx = new FoldCharacterStringContext(_ctx, getState()); + enterRule(_localctx, 830, RULE_foldCharacterString); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3899); + _la = _input.LA(1); + if ( !(_la==LOWER || _la==UPPER) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3900); + match(LEFT_PAREN); + setState(3901); + valueExpression(0); + setState(3902); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrimMultiCharacterCharacterStringContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode BTRIM() { return getToken(GQL_20240412Parser.BTRIM, 0); } + public TerminalNode LTRIM() { return getToken(GQL_20240412Parser.LTRIM, 0); } + public TerminalNode RTRIM() { return getToken(GQL_20240412Parser.RTRIM, 0); } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public TrimMultiCharacterCharacterStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trimMultiCharacterCharacterString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrimMultiCharacterCharacterString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrimMultiCharacterCharacterString(this); + } + } + + public final TrimMultiCharacterCharacterStringContext trimMultiCharacterCharacterString() throws RecognitionException { + TrimMultiCharacterCharacterStringContext _localctx = new TrimMultiCharacterCharacterStringContext(_ctx, getState()); + enterRule(_localctx, 832, RULE_trimMultiCharacterCharacterString); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3904); + _la = _input.LA(1); + if ( !(_la==BTRIM || _la==LTRIM || _la==RTRIM) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(3905); + match(LEFT_PAREN); + setState(3906); + valueExpression(0); + setState(3909); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(3907); + match(COMMA); + setState(3908); + valueExpression(0); + } + } + + setState(3911); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalizeCharacterStringContext extends ParserRuleContext { + public TerminalNode NORMALIZE() { return getToken(GQL_20240412Parser.NORMALIZE, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public NormalFormContext normalForm() { + return getRuleContext(NormalFormContext.class,0); + } + public NormalizeCharacterStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_normalizeCharacterString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNormalizeCharacterString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNormalizeCharacterString(this); + } + } + + public final NormalizeCharacterStringContext normalizeCharacterString() throws RecognitionException { + NormalizeCharacterStringContext _localctx = new NormalizeCharacterStringContext(_ctx, getState()); + enterRule(_localctx, 834, RULE_normalizeCharacterString); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(3913); + match(NORMALIZE); + setState(3914); + match(LEFT_PAREN); + setState(3915); + valueExpression(0); + setState(3918); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(3916); + match(COMMA); + setState(3917); + normalForm(); + } + } + + setState(3920); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeReferenceValueExpressionContext extends ParserRuleContext { + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public NodeReferenceValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeReferenceValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeReferenceValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeReferenceValueExpression(this); + } + } + + public final NodeReferenceValueExpressionContext nodeReferenceValueExpression() throws RecognitionException { + NodeReferenceValueExpressionContext _localctx = new NodeReferenceValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 836, RULE_nodeReferenceValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(3922); + valueExpressionPrimary(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeReferenceValueExpressionContext extends ParserRuleContext { + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public EdgeReferenceValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeReferenceValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeReferenceValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeReferenceValueExpression(this); + } + } + + public final EdgeReferenceValueExpressionContext edgeReferenceValueExpression() throws RecognitionException { + EdgeReferenceValueExpressionContext _localctx = new EdgeReferenceValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 838, RULE_edgeReferenceValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(3924); + valueExpressionPrimary(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AggregatingValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public AggregatingValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_aggregatingValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAggregatingValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAggregatingValueExpression(this); + } + } + + public final AggregatingValueExpressionContext aggregatingValueExpression() throws RecognitionException { + AggregatingValueExpressionContext _localctx = new AggregatingValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 840, RULE_aggregatingValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(3926); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueExpressionPrimaryContext extends ParserRuleContext { + public ParenthesizedValueExpressionContext parenthesizedValueExpression() { + return getRuleContext(ParenthesizedValueExpressionContext.class,0); + } + public AggregateFunctionContext aggregateFunction() { + return getRuleContext(AggregateFunctionContext.class,0); + } + public UnsignedValueSpecificationContext unsignedValueSpecification() { + return getRuleContext(UnsignedValueSpecificationContext.class,0); + } + public PathValueConstructorContext pathValueConstructor() { + return getRuleContext(PathValueConstructorContext.class,0); + } + public ValueQueryExpressionContext valueQueryExpression() { + return getRuleContext(ValueQueryExpressionContext.class,0); + } + public CaseExpressionContext caseExpression() { + return getRuleContext(CaseExpressionContext.class,0); + } + public CastSpecificationContext castSpecification() { + return getRuleContext(CastSpecificationContext.class,0); + } + public Element_idFunctionContext element_idFunction() { + return getRuleContext(Element_idFunctionContext.class,0); + } + public LetValueExpressionContext letValueExpression() { + return getRuleContext(LetValueExpressionContext.class,0); + } + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public TerminalNode PERIOD() { return getToken(GQL_20240412Parser.PERIOD, 0); } + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public ValueExpressionPrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueExpressionPrimary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterValueExpressionPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitValueExpressionPrimary(this); + } + } + + public final ValueExpressionPrimaryContext valueExpressionPrimary() throws RecognitionException { + return valueExpressionPrimary(0); + } + + private ValueExpressionPrimaryContext valueExpressionPrimary(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ValueExpressionPrimaryContext _localctx = new ValueExpressionPrimaryContext(_ctx, _parentState); + ValueExpressionPrimaryContext _prevctx = _localctx; + int _startState = 842; + enterRecursionRule(_localctx, 842, RULE_valueExpressionPrimary, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(3939); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LEFT_PAREN: + { + setState(3929); + parenthesizedValueExpression(); + } + break; + case AVG: + case COLLECT_LIST: + case COUNT: + case MAX: + case MIN: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case STDDEV_POP: + case STDDEV_SAMP: + case SUM: + { + setState(3930); + aggregateFunction(); + } + break; + case BOOLEAN_LITERAL: + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case BYTE_STRING_LITERAL: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + case ARRAY: + case DATE: + case DATETIME: + case DURATION: + case GROUP: + case LIST: + case NULL: + case RECORD: + case SESSION_USER: + case TIME: + case TIMESTAMP: + case GENERAL_PARAMETER_REFERENCE: + case LEFT_BRACE: + case LEFT_BRACKET: + { + setState(3931); + unsignedValueSpecification(); + } + break; + case PATH: + { + setState(3932); + pathValueConstructor(); + } + break; + case VALUE: + { + setState(3933); + valueQueryExpression(); + } + break; + case CASE: + case COALESCE: + case NULLIF: + { + setState(3934); + caseExpression(); + } + break; + case CAST: + { + setState(3935); + castSpecification(); + } + break; + case ELEMENT_ID: + { + setState(3936); + element_idFunction(); + } + break; + case LET: + { + setState(3937); + letValueExpression(); + } + break; + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + { + setState(3938); + bindingVariableReference(); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(3946); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,446,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ValueExpressionPrimaryContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_valueExpressionPrimary); + setState(3941); + if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); + setState(3942); + match(PERIOD); + setState(3943); + propertyName(); + } + } + } + setState(3948); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,446,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ParenthesizedValueExpressionContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public ParenthesizedValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parenthesizedValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterParenthesizedValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitParenthesizedValueExpression(this); + } + } + + public final ParenthesizedValueExpressionContext parenthesizedValueExpression() throws RecognitionException { + ParenthesizedValueExpressionContext _localctx = new ParenthesizedValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 844, RULE_parenthesizedValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(3949); + match(LEFT_PAREN); + setState(3950); + valueExpression(0); + setState(3951); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NonParenthesizedValueExpressionPrimaryContext extends ParserRuleContext { + public NonParenthesizedValueExpressionPrimarySpecialCaseContext nonParenthesizedValueExpressionPrimarySpecialCase() { + return getRuleContext(NonParenthesizedValueExpressionPrimarySpecialCaseContext.class,0); + } + public BindingVariableReferenceContext bindingVariableReference() { + return getRuleContext(BindingVariableReferenceContext.class,0); + } + public NonParenthesizedValueExpressionPrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nonParenthesizedValueExpressionPrimary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNonParenthesizedValueExpressionPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNonParenthesizedValueExpressionPrimary(this); + } + } + + public final NonParenthesizedValueExpressionPrimaryContext nonParenthesizedValueExpressionPrimary() throws RecognitionException { + NonParenthesizedValueExpressionPrimaryContext _localctx = new NonParenthesizedValueExpressionPrimaryContext(_ctx, getState()); + enterRule(_localctx, 846, RULE_nonParenthesizedValueExpressionPrimary); + try { + setState(3955); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,447,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3953); + nonParenthesizedValueExpressionPrimarySpecialCase(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3954); + bindingVariableReference(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NonParenthesizedValueExpressionPrimarySpecialCaseContext extends ParserRuleContext { + public AggregateFunctionContext aggregateFunction() { + return getRuleContext(AggregateFunctionContext.class,0); + } + public UnsignedValueSpecificationContext unsignedValueSpecification() { + return getRuleContext(UnsignedValueSpecificationContext.class,0); + } + public PathValueConstructorContext pathValueConstructor() { + return getRuleContext(PathValueConstructorContext.class,0); + } + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public TerminalNode PERIOD() { return getToken(GQL_20240412Parser.PERIOD, 0); } + public PropertyNameContext propertyName() { + return getRuleContext(PropertyNameContext.class,0); + } + public ValueQueryExpressionContext valueQueryExpression() { + return getRuleContext(ValueQueryExpressionContext.class,0); + } + public CaseExpressionContext caseExpression() { + return getRuleContext(CaseExpressionContext.class,0); + } + public CastSpecificationContext castSpecification() { + return getRuleContext(CastSpecificationContext.class,0); + } + public Element_idFunctionContext element_idFunction() { + return getRuleContext(Element_idFunctionContext.class,0); + } + public LetValueExpressionContext letValueExpression() { + return getRuleContext(LetValueExpressionContext.class,0); + } + public NonParenthesizedValueExpressionPrimarySpecialCaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nonParenthesizedValueExpressionPrimarySpecialCase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNonParenthesizedValueExpressionPrimarySpecialCase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNonParenthesizedValueExpressionPrimarySpecialCase(this); + } + } + + public final NonParenthesizedValueExpressionPrimarySpecialCaseContext nonParenthesizedValueExpressionPrimarySpecialCase() throws RecognitionException { + NonParenthesizedValueExpressionPrimarySpecialCaseContext _localctx = new NonParenthesizedValueExpressionPrimarySpecialCaseContext(_ctx, getState()); + enterRule(_localctx, 848, RULE_nonParenthesizedValueExpressionPrimarySpecialCase); + try { + setState(3969); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,448,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(3957); + aggregateFunction(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(3958); + unsignedValueSpecification(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(3959); + pathValueConstructor(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(3960); + valueExpressionPrimary(0); + setState(3961); + match(PERIOD); + setState(3962); + propertyName(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(3964); + valueQueryExpression(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(3965); + caseExpression(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(3966); + castSpecification(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(3967); + element_idFunction(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(3968); + letValueExpression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnsignedValueSpecificationContext extends ParserRuleContext { + public UnsignedLiteralContext unsignedLiteral() { + return getRuleContext(UnsignedLiteralContext.class,0); + } + public GeneralValueSpecificationContext generalValueSpecification() { + return getRuleContext(GeneralValueSpecificationContext.class,0); + } + public UnsignedValueSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unsignedValueSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterUnsignedValueSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitUnsignedValueSpecification(this); + } + } + + public final UnsignedValueSpecificationContext unsignedValueSpecification() throws RecognitionException { + UnsignedValueSpecificationContext _localctx = new UnsignedValueSpecificationContext(_ctx, getState()); + enterRule(_localctx, 850, RULE_unsignedValueSpecification); + try { + setState(3973); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOLEAN_LITERAL: + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case BYTE_STRING_LITERAL: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + case ARRAY: + case DATE: + case DATETIME: + case DURATION: + case GROUP: + case LIST: + case NULL: + case RECORD: + case TIME: + case TIMESTAMP: + case LEFT_BRACE: + case LEFT_BRACKET: + enterOuterAlt(_localctx, 1); + { + setState(3971); + unsignedLiteral(); + } + break; + case SESSION_USER: + case GENERAL_PARAMETER_REFERENCE: + enterOuterAlt(_localctx, 2); + { + setState(3972); + generalValueSpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NonNegativeIntegerSpecificationContext extends ParserRuleContext { + public UnsignedIntegerContext unsignedInteger() { + return getRuleContext(UnsignedIntegerContext.class,0); + } + public DynamicParameterSpecificationContext dynamicParameterSpecification() { + return getRuleContext(DynamicParameterSpecificationContext.class,0); + } + public NonNegativeIntegerSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nonNegativeIntegerSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNonNegativeIntegerSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNonNegativeIntegerSpecification(this); + } + } + + public final NonNegativeIntegerSpecificationContext nonNegativeIntegerSpecification() throws RecognitionException { + NonNegativeIntegerSpecificationContext _localctx = new NonNegativeIntegerSpecificationContext(_ctx, getState()); + enterRule(_localctx, 852, RULE_nonNegativeIntegerSpecification); + try { + setState(3977); + _errHandler.sync(this); + switch (_input.LA(1)) { + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + enterOuterAlt(_localctx, 1); + { + setState(3975); + unsignedInteger(); + } + break; + case GENERAL_PARAMETER_REFERENCE: + enterOuterAlt(_localctx, 2); + { + setState(3976); + dynamicParameterSpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneralValueSpecificationContext extends ParserRuleContext { + public DynamicParameterSpecificationContext dynamicParameterSpecification() { + return getRuleContext(DynamicParameterSpecificationContext.class,0); + } + public TerminalNode SESSION_USER() { return getToken(GQL_20240412Parser.SESSION_USER, 0); } + public GeneralValueSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generalValueSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGeneralValueSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGeneralValueSpecification(this); + } + } + + public final GeneralValueSpecificationContext generalValueSpecification() throws RecognitionException { + GeneralValueSpecificationContext _localctx = new GeneralValueSpecificationContext(_ctx, getState()); + enterRule(_localctx, 854, RULE_generalValueSpecification); + try { + setState(3981); + _errHandler.sync(this); + switch (_input.LA(1)) { + case GENERAL_PARAMETER_REFERENCE: + enterOuterAlt(_localctx, 1); + { + setState(3979); + dynamicParameterSpecification(); + } + break; + case SESSION_USER: + enterOuterAlt(_localctx, 2); + { + setState(3980); + match(SESSION_USER); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DynamicParameterSpecificationContext extends ParserRuleContext { + public TerminalNode GENERAL_PARAMETER_REFERENCE() { return getToken(GQL_20240412Parser.GENERAL_PARAMETER_REFERENCE, 0); } + public DynamicParameterSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dynamicParameterSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDynamicParameterSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDynamicParameterSpecification(this); + } + } + + public final DynamicParameterSpecificationContext dynamicParameterSpecification() throws RecognitionException { + DynamicParameterSpecificationContext _localctx = new DynamicParameterSpecificationContext(_ctx, getState()); + enterRule(_localctx, 856, RULE_dynamicParameterSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(3983); + match(GENERAL_PARAMETER_REFERENCE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LetValueExpressionContext extends ParserRuleContext { + public TerminalNode LET() { return getToken(GQL_20240412Parser.LET, 0); } + public LetVariableDefinitionListContext letVariableDefinitionList() { + return getRuleContext(LetVariableDefinitionListContext.class,0); + } + public TerminalNode IN() { return getToken(GQL_20240412Parser.IN, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode END() { return getToken(GQL_20240412Parser.END, 0); } + public LetValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_letValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLetValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLetValueExpression(this); + } + } + + public final LetValueExpressionContext letValueExpression() throws RecognitionException { + LetValueExpressionContext _localctx = new LetValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 858, RULE_letValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(3985); + match(LET); + setState(3986); + letVariableDefinitionList(); + setState(3987); + match(IN); + setState(3988); + valueExpression(0); + setState(3989); + match(END); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueQueryExpressionContext extends ParserRuleContext { + public TerminalNode VALUE() { return getToken(GQL_20240412Parser.VALUE, 0); } + public NestedQuerySpecificationContext nestedQuerySpecification() { + return getRuleContext(NestedQuerySpecificationContext.class,0); + } + public ValueQueryExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_valueQueryExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterValueQueryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitValueQueryExpression(this); + } + } + + public final ValueQueryExpressionContext valueQueryExpression() throws RecognitionException { + ValueQueryExpressionContext _localctx = new ValueQueryExpressionContext(_ctx, getState()); + enterRule(_localctx, 860, RULE_valueQueryExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(3991); + match(VALUE); + setState(3992); + nestedQuerySpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CaseExpressionContext extends ParserRuleContext { + public CaseAbbreviationContext caseAbbreviation() { + return getRuleContext(CaseAbbreviationContext.class,0); + } + public CaseSpecificationContext caseSpecification() { + return getRuleContext(CaseSpecificationContext.class,0); + } + public CaseExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_caseExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCaseExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCaseExpression(this); + } + } + + public final CaseExpressionContext caseExpression() throws RecognitionException { + CaseExpressionContext _localctx = new CaseExpressionContext(_ctx, getState()); + enterRule(_localctx, 862, RULE_caseExpression); + try { + setState(3996); + _errHandler.sync(this); + switch (_input.LA(1)) { + case COALESCE: + case NULLIF: + enterOuterAlt(_localctx, 1); + { + setState(3994); + caseAbbreviation(); + } + break; + case CASE: + enterOuterAlt(_localctx, 2); + { + setState(3995); + caseSpecification(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CaseAbbreviationContext extends ParserRuleContext { + public TerminalNode NULLIF() { return getToken(GQL_20240412Parser.NULLIF, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public List valueExpression() { + return getRuleContexts(ValueExpressionContext.class); + } + public ValueExpressionContext valueExpression(int i) { + return getRuleContext(ValueExpressionContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode COALESCE() { return getToken(GQL_20240412Parser.COALESCE, 0); } + public CaseAbbreviationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_caseAbbreviation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCaseAbbreviation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCaseAbbreviation(this); + } + } + + public final CaseAbbreviationContext caseAbbreviation() throws RecognitionException { + CaseAbbreviationContext _localctx = new CaseAbbreviationContext(_ctx, getState()); + enterRule(_localctx, 864, RULE_caseAbbreviation); + int _la; + try { + setState(4016); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NULLIF: + enterOuterAlt(_localctx, 1); + { + setState(3998); + match(NULLIF); + setState(3999); + match(LEFT_PAREN); + setState(4000); + valueExpression(0); + setState(4001); + match(COMMA); + setState(4002); + valueExpression(0); + setState(4003); + match(RIGHT_PAREN); + } + break; + case COALESCE: + enterOuterAlt(_localctx, 2); + { + setState(4005); + match(COALESCE); + setState(4006); + match(LEFT_PAREN); + setState(4007); + valueExpression(0); + setState(4010); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4008); + match(COMMA); + setState(4009); + valueExpression(0); + } + } + setState(4012); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==COMMA ); + setState(4014); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CaseSpecificationContext extends ParserRuleContext { + public SimpleCaseContext simpleCase() { + return getRuleContext(SimpleCaseContext.class,0); + } + public SearchedCaseContext searchedCase() { + return getRuleContext(SearchedCaseContext.class,0); + } + public CaseSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_caseSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCaseSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCaseSpecification(this); + } + } + + public final CaseSpecificationContext caseSpecification() throws RecognitionException { + CaseSpecificationContext _localctx = new CaseSpecificationContext(_ctx, getState()); + enterRule(_localctx, 866, RULE_caseSpecification); + try { + setState(4020); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,455,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4018); + simpleCase(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4019); + searchedCase(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleCaseContext extends ParserRuleContext { + public TerminalNode CASE() { return getToken(GQL_20240412Parser.CASE, 0); } + public CaseOperandContext caseOperand() { + return getRuleContext(CaseOperandContext.class,0); + } + public TerminalNode END() { return getToken(GQL_20240412Parser.END, 0); } + public List simpleWhenClause() { + return getRuleContexts(SimpleWhenClauseContext.class); + } + public SimpleWhenClauseContext simpleWhenClause(int i) { + return getRuleContext(SimpleWhenClauseContext.class,i); + } + public ElseClauseContext elseClause() { + return getRuleContext(ElseClauseContext.class,0); + } + public SimpleCaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleCase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleCase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleCase(this); + } + } + + public final SimpleCaseContext simpleCase() throws RecognitionException { + SimpleCaseContext _localctx = new SimpleCaseContext(_ctx, getState()); + enterRule(_localctx, 868, RULE_simpleCase); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4022); + match(CASE); + setState(4023); + caseOperand(); + setState(4025); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4024); + simpleWhenClause(); + } + } + setState(4027); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==WHEN ); + setState(4030); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ELSE) { + { + setState(4029); + elseClause(); + } + } + + setState(4032); + match(END); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SearchedCaseContext extends ParserRuleContext { + public TerminalNode CASE() { return getToken(GQL_20240412Parser.CASE, 0); } + public TerminalNode END() { return getToken(GQL_20240412Parser.END, 0); } + public List searchedWhenClause() { + return getRuleContexts(SearchedWhenClauseContext.class); + } + public SearchedWhenClauseContext searchedWhenClause(int i) { + return getRuleContext(SearchedWhenClauseContext.class,i); + } + public ElseClauseContext elseClause() { + return getRuleContext(ElseClauseContext.class,0); + } + public SearchedCaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_searchedCase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSearchedCase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSearchedCase(this); + } + } + + public final SearchedCaseContext searchedCase() throws RecognitionException { + SearchedCaseContext _localctx = new SearchedCaseContext(_ctx, getState()); + enterRule(_localctx, 870, RULE_searchedCase); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4034); + match(CASE); + setState(4036); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(4035); + searchedWhenClause(); + } + } + setState(4038); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==WHEN ); + setState(4041); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ELSE) { + { + setState(4040); + elseClause(); + } + } + + setState(4043); + match(END); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SimpleWhenClauseContext extends ParserRuleContext { + public TerminalNode WHEN() { return getToken(GQL_20240412Parser.WHEN, 0); } + public WhenOperandListContext whenOperandList() { + return getRuleContext(WhenOperandListContext.class,0); + } + public TerminalNode THEN() { return getToken(GQL_20240412Parser.THEN, 0); } + public ResultContext result() { + return getRuleContext(ResultContext.class,0); + } + public SimpleWhenClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simpleWhenClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSimpleWhenClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSimpleWhenClause(this); + } + } + + public final SimpleWhenClauseContext simpleWhenClause() throws RecognitionException { + SimpleWhenClauseContext _localctx = new SimpleWhenClauseContext(_ctx, getState()); + enterRule(_localctx, 872, RULE_simpleWhenClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4045); + match(WHEN); + setState(4046); + whenOperandList(); + setState(4047); + match(THEN); + setState(4048); + result(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SearchedWhenClauseContext extends ParserRuleContext { + public TerminalNode WHEN() { return getToken(GQL_20240412Parser.WHEN, 0); } + public SearchConditionContext searchCondition() { + return getRuleContext(SearchConditionContext.class,0); + } + public TerminalNode THEN() { return getToken(GQL_20240412Parser.THEN, 0); } + public ResultContext result() { + return getRuleContext(ResultContext.class,0); + } + public SearchedWhenClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_searchedWhenClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSearchedWhenClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSearchedWhenClause(this); + } + } + + public final SearchedWhenClauseContext searchedWhenClause() throws RecognitionException { + SearchedWhenClauseContext _localctx = new SearchedWhenClauseContext(_ctx, getState()); + enterRule(_localctx, 874, RULE_searchedWhenClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4050); + match(WHEN); + setState(4051); + searchCondition(); + setState(4052); + match(THEN); + setState(4053); + result(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElseClauseContext extends ParserRuleContext { + public TerminalNode ELSE() { return getToken(GQL_20240412Parser.ELSE, 0); } + public ResultContext result() { + return getRuleContext(ResultContext.class,0); + } + public ElseClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elseClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElseClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElseClause(this); + } + } + + public final ElseClauseContext elseClause() throws RecognitionException { + ElseClauseContext _localctx = new ElseClauseContext(_ctx, getState()); + enterRule(_localctx, 876, RULE_elseClause); + try { + enterOuterAlt(_localctx, 1); + { + setState(4055); + match(ELSE); + setState(4056); + result(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CaseOperandContext extends ParserRuleContext { + public NonParenthesizedValueExpressionPrimaryContext nonParenthesizedValueExpressionPrimary() { + return getRuleContext(NonParenthesizedValueExpressionPrimaryContext.class,0); + } + public ElementVariableReferenceContext elementVariableReference() { + return getRuleContext(ElementVariableReferenceContext.class,0); + } + public CaseOperandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_caseOperand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCaseOperand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCaseOperand(this); + } + } + + public final CaseOperandContext caseOperand() throws RecognitionException { + CaseOperandContext _localctx = new CaseOperandContext(_ctx, getState()); + enterRule(_localctx, 878, RULE_caseOperand); + try { + setState(4060); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,460,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4058); + nonParenthesizedValueExpressionPrimary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4059); + elementVariableReference(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WhenOperandListContext extends ParserRuleContext { + public List whenOperand() { + return getRuleContexts(WhenOperandContext.class); + } + public WhenOperandContext whenOperand(int i) { + return getRuleContext(WhenOperandContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public WhenOperandListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_whenOperandList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterWhenOperandList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitWhenOperandList(this); + } + } + + public final WhenOperandListContext whenOperandList() throws RecognitionException { + WhenOperandListContext _localctx = new WhenOperandListContext(_ctx, getState()); + enterRule(_localctx, 880, RULE_whenOperandList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4062); + whenOperand(); + setState(4067); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4063); + match(COMMA); + setState(4064); + whenOperand(); + } + } + setState(4069); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WhenOperandContext extends ParserRuleContext { + public NonParenthesizedValueExpressionPrimaryContext nonParenthesizedValueExpressionPrimary() { + return getRuleContext(NonParenthesizedValueExpressionPrimaryContext.class,0); + } + public ComparisonPredicatePart2Context comparisonPredicatePart2() { + return getRuleContext(ComparisonPredicatePart2Context.class,0); + } + public NullPredicatePart2Context nullPredicatePart2() { + return getRuleContext(NullPredicatePart2Context.class,0); + } + public ValueTypePredicatePart2Context valueTypePredicatePart2() { + return getRuleContext(ValueTypePredicatePart2Context.class,0); + } + public NormalizedPredicatePart2Context normalizedPredicatePart2() { + return getRuleContext(NormalizedPredicatePart2Context.class,0); + } + public DirectedPredicatePart2Context directedPredicatePart2() { + return getRuleContext(DirectedPredicatePart2Context.class,0); + } + public LabeledPredicatePart2Context labeledPredicatePart2() { + return getRuleContext(LabeledPredicatePart2Context.class,0); + } + public SourcePredicatePart2Context sourcePredicatePart2() { + return getRuleContext(SourcePredicatePart2Context.class,0); + } + public DestinationPredicatePart2Context destinationPredicatePart2() { + return getRuleContext(DestinationPredicatePart2Context.class,0); + } + public WhenOperandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_whenOperand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterWhenOperand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitWhenOperand(this); + } + } + + public final WhenOperandContext whenOperand() throws RecognitionException { + WhenOperandContext _localctx = new WhenOperandContext(_ctx, getState()); + enterRule(_localctx, 882, RULE_whenOperand); + try { + setState(4079); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,462,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4070); + nonParenthesizedValueExpressionPrimary(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4071); + comparisonPredicatePart2(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4072); + nullPredicatePart2(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(4073); + valueTypePredicatePart2(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(4074); + normalizedPredicatePart2(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(4075); + directedPredicatePart2(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(4076); + labeledPredicatePart2(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(4077); + sourcePredicatePart2(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(4078); + destinationPredicatePart2(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResultContext extends ParserRuleContext { + public ResultExpressionContext resultExpression() { + return getRuleContext(ResultExpressionContext.class,0); + } + public NullLiteralContext nullLiteral() { + return getRuleContext(NullLiteralContext.class,0); + } + public ResultContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_result; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterResult(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitResult(this); + } + } + + public final ResultContext result() throws RecognitionException { + ResultContext _localctx = new ResultContext(_ctx, getState()); + enterRule(_localctx, 884, RULE_result); + try { + setState(4083); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,463,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4081); + resultExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4082); + nullLiteral(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResultExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ResultExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resultExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterResultExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitResultExpression(this); + } + } + + public final ResultExpressionContext resultExpression() throws RecognitionException { + ResultExpressionContext _localctx = new ResultExpressionContext(_ctx, getState()); + enterRule(_localctx, 886, RULE_resultExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4085); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CastSpecificationContext extends ParserRuleContext { + public TerminalNode CAST() { return getToken(GQL_20240412Parser.CAST, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public CastOperandContext castOperand() { + return getRuleContext(CastOperandContext.class,0); + } + public TerminalNode AS() { return getToken(GQL_20240412Parser.AS, 0); } + public CastTargetContext castTarget() { + return getRuleContext(CastTargetContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public CastSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_castSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCastSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCastSpecification(this); + } + } + + public final CastSpecificationContext castSpecification() throws RecognitionException { + CastSpecificationContext _localctx = new CastSpecificationContext(_ctx, getState()); + enterRule(_localctx, 888, RULE_castSpecification); + try { + enterOuterAlt(_localctx, 1); + { + setState(4087); + match(CAST); + setState(4088); + match(LEFT_PAREN); + setState(4089); + castOperand(); + setState(4090); + match(AS); + setState(4091); + castTarget(); + setState(4092); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CastOperandContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public NullLiteralContext nullLiteral() { + return getRuleContext(NullLiteralContext.class,0); + } + public CastOperandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_castOperand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCastOperand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCastOperand(this); + } + } + + public final CastOperandContext castOperand() throws RecognitionException { + CastOperandContext _localctx = new CastOperandContext(_ctx, getState()); + enterRule(_localctx, 890, RULE_castOperand); + try { + setState(4096); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,464,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4094); + valueExpression(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4095); + nullLiteral(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CastTargetContext extends ParserRuleContext { + public ValueTypeContext valueType() { + return getRuleContext(ValueTypeContext.class,0); + } + public CastTargetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_castTarget; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCastTarget(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCastTarget(this); + } + } + + public final CastTargetContext castTarget() throws RecognitionException { + CastTargetContext _localctx = new CastTargetContext(_ctx, getState()); + enterRule(_localctx, 892, RULE_castTarget); + try { + enterOuterAlt(_localctx, 1); + { + setState(4098); + valueType(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AggregateFunctionContext extends ParserRuleContext { + public TerminalNode COUNT() { return getToken(GQL_20240412Parser.COUNT, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode ASTERISK() { return getToken(GQL_20240412Parser.ASTERISK, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public GeneralSetFunctionContext generalSetFunction() { + return getRuleContext(GeneralSetFunctionContext.class,0); + } + public BinarySetFunctionContext binarySetFunction() { + return getRuleContext(BinarySetFunctionContext.class,0); + } + public AggregateFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_aggregateFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAggregateFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAggregateFunction(this); + } + } + + public final AggregateFunctionContext aggregateFunction() throws RecognitionException { + AggregateFunctionContext _localctx = new AggregateFunctionContext(_ctx, getState()); + enterRule(_localctx, 894, RULE_aggregateFunction); + try { + setState(4106); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,465,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(4100); + match(COUNT); + setState(4101); + match(LEFT_PAREN); + setState(4102); + match(ASTERISK); + setState(4103); + match(RIGHT_PAREN); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(4104); + generalSetFunction(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(4105); + binarySetFunction(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneralSetFunctionContext extends ParserRuleContext { + public GeneralSetFunctionTypeContext generalSetFunctionType() { + return getRuleContext(GeneralSetFunctionTypeContext.class,0); + } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public GeneralSetFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generalSetFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGeneralSetFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGeneralSetFunction(this); + } + } + + public final GeneralSetFunctionContext generalSetFunction() throws RecognitionException { + GeneralSetFunctionContext _localctx = new GeneralSetFunctionContext(_ctx, getState()); + enterRule(_localctx, 896, RULE_generalSetFunction); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4108); + generalSetFunctionType(); + setState(4109); + match(LEFT_PAREN); + setState(4111); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(4110); + setQuantifier(); + } + } + + setState(4113); + valueExpression(0); + setState(4114); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BinarySetFunctionContext extends ParserRuleContext { + public BinarySetFunctionTypeContext binarySetFunctionType() { + return getRuleContext(BinarySetFunctionTypeContext.class,0); + } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public DependentValueExpressionContext dependentValueExpression() { + return getRuleContext(DependentValueExpressionContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public IndependentValueExpressionContext independentValueExpression() { + return getRuleContext(IndependentValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public BinarySetFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_binarySetFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBinarySetFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBinarySetFunction(this); + } + } + + public final BinarySetFunctionContext binarySetFunction() throws RecognitionException { + BinarySetFunctionContext _localctx = new BinarySetFunctionContext(_ctx, getState()); + enterRule(_localctx, 898, RULE_binarySetFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4116); + binarySetFunctionType(); + setState(4117); + match(LEFT_PAREN); + setState(4118); + dependentValueExpression(); + setState(4119); + match(COMMA); + setState(4120); + independentValueExpression(); + setState(4121); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneralSetFunctionTypeContext extends ParserRuleContext { + public TerminalNode AVG() { return getToken(GQL_20240412Parser.AVG, 0); } + public TerminalNode COUNT() { return getToken(GQL_20240412Parser.COUNT, 0); } + public TerminalNode MAX() { return getToken(GQL_20240412Parser.MAX, 0); } + public TerminalNode MIN() { return getToken(GQL_20240412Parser.MIN, 0); } + public TerminalNode SUM() { return getToken(GQL_20240412Parser.SUM, 0); } + public TerminalNode COLLECT_LIST() { return getToken(GQL_20240412Parser.COLLECT_LIST, 0); } + public TerminalNode STDDEV_SAMP() { return getToken(GQL_20240412Parser.STDDEV_SAMP, 0); } + public TerminalNode STDDEV_POP() { return getToken(GQL_20240412Parser.STDDEV_POP, 0); } + public GeneralSetFunctionTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generalSetFunctionType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGeneralSetFunctionType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGeneralSetFunctionType(this); + } + } + + public final GeneralSetFunctionTypeContext generalSetFunctionType() throws RecognitionException { + GeneralSetFunctionTypeContext _localctx = new GeneralSetFunctionTypeContext(_ctx, getState()); + enterRule(_localctx, 900, RULE_generalSetFunctionType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4123); + _la = _input.LA(1); + if ( !(((_la) & ~0x3f) == 0 && ((1L << _la) & 4683743621055250432L) != 0 || (((_la - 144)) & ~0x3f) == 0 && ((1L << (_la - 144)) & 792633534417207299L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SetQuantifierContext extends ParserRuleContext { + public TerminalNode DISTINCT() { return getToken(GQL_20240412Parser.DISTINCT, 0); } + public TerminalNode ALL() { return getToken(GQL_20240412Parser.ALL, 0); } + public SetQuantifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_setQuantifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSetQuantifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSetQuantifier(this); + } + } + + public final SetQuantifierContext setQuantifier() throws RecognitionException { + SetQuantifierContext _localctx = new SetQuantifierContext(_ctx, getState()); + enterRule(_localctx, 902, RULE_setQuantifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4125); + _la = _input.LA(1); + if ( !(_la==ALL || _la==DISTINCT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BinarySetFunctionTypeContext extends ParserRuleContext { + public TerminalNode PERCENTILE_CONT() { return getToken(GQL_20240412Parser.PERCENTILE_CONT, 0); } + public TerminalNode PERCENTILE_DISC() { return getToken(GQL_20240412Parser.PERCENTILE_DISC, 0); } + public BinarySetFunctionTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_binarySetFunctionType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBinarySetFunctionType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBinarySetFunctionType(this); + } + } + + public final BinarySetFunctionTypeContext binarySetFunctionType() throws RecognitionException { + BinarySetFunctionTypeContext _localctx = new BinarySetFunctionTypeContext(_ctx, getState()); + enterRule(_localctx, 904, RULE_binarySetFunctionType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4127); + _la = _input.LA(1); + if ( !(_la==PERCENTILE_CONT || _la==PERCENTILE_DISC) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DependentValueExpressionContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public SetQuantifierContext setQuantifier() { + return getRuleContext(SetQuantifierContext.class,0); + } + public DependentValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dependentValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDependentValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDependentValueExpression(this); + } + } + + public final DependentValueExpressionContext dependentValueExpression() throws RecognitionException { + DependentValueExpressionContext _localctx = new DependentValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 906, RULE_dependentValueExpression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4130); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ALL || _la==DISTINCT) { + { + setState(4129); + setQuantifier(); + } + } + + setState(4132); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IndependentValueExpressionContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public IndependentValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_independentValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterIndependentValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitIndependentValueExpression(this); + } + } + + public final IndependentValueExpressionContext independentValueExpression() throws RecognitionException { + IndependentValueExpressionContext _localctx = new IndependentValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 908, RULE_independentValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4134); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class Element_idFunctionContext extends ParserRuleContext { + public TerminalNode ELEMENT_ID() { return getToken(GQL_20240412Parser.ELEMENT_ID, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ElementVariableReferenceContext elementVariableReference() { + return getRuleContext(ElementVariableReferenceContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public Element_idFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_element_idFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElement_idFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElement_idFunction(this); + } + } + + public final Element_idFunctionContext element_idFunction() throws RecognitionException { + Element_idFunctionContext _localctx = new Element_idFunctionContext(_ctx, getState()); + enterRule(_localctx, 910, RULE_element_idFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4136); + match(ELEMENT_ID); + setState(4137); + match(LEFT_PAREN); + setState(4138); + elementVariableReference(); + setState(4139); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingVariableReferenceContext extends ParserRuleContext { + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public BindingVariableReferenceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingVariableReference; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingVariableReference(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingVariableReference(this); + } + } + + public final BindingVariableReferenceContext bindingVariableReference() throws RecognitionException { + BindingVariableReferenceContext _localctx = new BindingVariableReferenceContext(_ctx, getState()); + enterRule(_localctx, 912, RULE_bindingVariableReference); + try { + enterOuterAlt(_localctx, 1); + { + setState(4141); + bindingVariable(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public PathValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathValueExpression(this); + } + } + + public final PathValueExpressionContext pathValueExpression() throws RecognitionException { + PathValueExpressionContext _localctx = new PathValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 914, RULE_pathValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4143); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathValueConstructorContext extends ParserRuleContext { + public PathValueConstructorByEnumerationContext pathValueConstructorByEnumeration() { + return getRuleContext(PathValueConstructorByEnumerationContext.class,0); + } + public PathValueConstructorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathValueConstructor; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathValueConstructor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathValueConstructor(this); + } + } + + public final PathValueConstructorContext pathValueConstructor() throws RecognitionException { + PathValueConstructorContext _localctx = new PathValueConstructorContext(_ctx, getState()); + enterRule(_localctx, 916, RULE_pathValueConstructor); + try { + enterOuterAlt(_localctx, 1); + { + setState(4145); + pathValueConstructorByEnumeration(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathValueConstructorByEnumerationContext extends ParserRuleContext { + public TerminalNode PATH() { return getToken(GQL_20240412Parser.PATH, 0); } + public TerminalNode LEFT_BRACKET() { return getToken(GQL_20240412Parser.LEFT_BRACKET, 0); } + public PathElementListContext pathElementList() { + return getRuleContext(PathElementListContext.class,0); + } + public TerminalNode RIGHT_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_BRACKET, 0); } + public PathValueConstructorByEnumerationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathValueConstructorByEnumeration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathValueConstructorByEnumeration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathValueConstructorByEnumeration(this); + } + } + + public final PathValueConstructorByEnumerationContext pathValueConstructorByEnumeration() throws RecognitionException { + PathValueConstructorByEnumerationContext _localctx = new PathValueConstructorByEnumerationContext(_ctx, getState()); + enterRule(_localctx, 918, RULE_pathValueConstructorByEnumeration); + try { + enterOuterAlt(_localctx, 1); + { + setState(4147); + match(PATH); + setState(4148); + match(LEFT_BRACKET); + setState(4149); + pathElementList(); + setState(4150); + match(RIGHT_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathElementListContext extends ParserRuleContext { + public PathElementListStartContext pathElementListStart() { + return getRuleContext(PathElementListStartContext.class,0); + } + public List pathElementListStep() { + return getRuleContexts(PathElementListStepContext.class); + } + public PathElementListStepContext pathElementListStep(int i) { + return getRuleContext(PathElementListStepContext.class,i); + } + public PathElementListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathElementList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathElementList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathElementList(this); + } + } + + public final PathElementListContext pathElementList() throws RecognitionException { + PathElementListContext _localctx = new PathElementListContext(_ctx, getState()); + enterRule(_localctx, 920, RULE_pathElementList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4152); + pathElementListStart(); + setState(4156); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4153); + pathElementListStep(); + } + } + setState(4158); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathElementListStartContext extends ParserRuleContext { + public NodeReferenceValueExpressionContext nodeReferenceValueExpression() { + return getRuleContext(NodeReferenceValueExpressionContext.class,0); + } + public PathElementListStartContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathElementListStart; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathElementListStart(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathElementListStart(this); + } + } + + public final PathElementListStartContext pathElementListStart() throws RecognitionException { + PathElementListStartContext _localctx = new PathElementListStartContext(_ctx, getState()); + enterRule(_localctx, 922, RULE_pathElementListStart); + try { + enterOuterAlt(_localctx, 1); + { + setState(4159); + nodeReferenceValueExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathElementListStepContext extends ParserRuleContext { + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public EdgeReferenceValueExpressionContext edgeReferenceValueExpression() { + return getRuleContext(EdgeReferenceValueExpressionContext.class,0); + } + public NodeReferenceValueExpressionContext nodeReferenceValueExpression() { + return getRuleContext(NodeReferenceValueExpressionContext.class,0); + } + public PathElementListStepContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathElementListStep; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathElementListStep(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathElementListStep(this); + } + } + + public final PathElementListStepContext pathElementListStep() throws RecognitionException { + PathElementListStepContext _localctx = new PathElementListStepContext(_ctx, getState()); + enterRule(_localctx, 924, RULE_pathElementListStep); + try { + enterOuterAlt(_localctx, 1); + { + setState(4161); + match(COMMA); + setState(4162); + edgeReferenceValueExpression(); + setState(4163); + match(COMMA); + setState(4164); + nodeReferenceValueExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ListValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueExpression(this); + } + } + + public final ListValueExpressionContext listValueExpression() throws RecognitionException { + ListValueExpressionContext _localctx = new ListValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 926, RULE_listValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4166); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListValueFunctionContext extends ParserRuleContext { + public TrimListFunctionContext trimListFunction() { + return getRuleContext(TrimListFunctionContext.class,0); + } + public ElementsFunctionContext elementsFunction() { + return getRuleContext(ElementsFunctionContext.class,0); + } + public ListValueFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listValueFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueFunction(this); + } + } + + public final ListValueFunctionContext listValueFunction() throws RecognitionException { + ListValueFunctionContext _localctx = new ListValueFunctionContext(_ctx, getState()); + enterRule(_localctx, 928, RULE_listValueFunction); + try { + setState(4170); + _errHandler.sync(this); + switch (_input.LA(1)) { + case TRIM: + enterOuterAlt(_localctx, 1); + { + setState(4168); + trimListFunction(); + } + break; + case ELEMENTS: + enterOuterAlt(_localctx, 2); + { + setState(4169); + elementsFunction(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrimListFunctionContext extends ParserRuleContext { + public TerminalNode TRIM() { return getToken(GQL_20240412Parser.TRIM, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ListValueExpressionContext listValueExpression() { + return getRuleContext(ListValueExpressionContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TrimListFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trimListFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrimListFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrimListFunction(this); + } + } + + public final TrimListFunctionContext trimListFunction() throws RecognitionException { + TrimListFunctionContext _localctx = new TrimListFunctionContext(_ctx, getState()); + enterRule(_localctx, 930, RULE_trimListFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4172); + match(TRIM); + setState(4173); + match(LEFT_PAREN); + setState(4174); + listValueExpression(); + setState(4175); + match(COMMA); + setState(4176); + numericValueExpression(0); + setState(4177); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementsFunctionContext extends ParserRuleContext { + public TerminalNode ELEMENTS() { return getToken(GQL_20240412Parser.ELEMENTS, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public PathValueExpressionContext pathValueExpression() { + return getRuleContext(PathValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public ElementsFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementsFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementsFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementsFunction(this); + } + } + + public final ElementsFunctionContext elementsFunction() throws RecognitionException { + ElementsFunctionContext _localctx = new ElementsFunctionContext(_ctx, getState()); + enterRule(_localctx, 932, RULE_elementsFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4179); + match(ELEMENTS); + setState(4180); + match(LEFT_PAREN); + setState(4181); + pathValueExpression(); + setState(4182); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListValueConstructorContext extends ParserRuleContext { + public ListValueConstructorByEnumerationContext listValueConstructorByEnumeration() { + return getRuleContext(ListValueConstructorByEnumerationContext.class,0); + } + public ListValueConstructorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listValueConstructor; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueConstructor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueConstructor(this); + } + } + + public final ListValueConstructorContext listValueConstructor() throws RecognitionException { + ListValueConstructorContext _localctx = new ListValueConstructorContext(_ctx, getState()); + enterRule(_localctx, 934, RULE_listValueConstructor); + try { + enterOuterAlt(_localctx, 1); + { + setState(4184); + listValueConstructorByEnumeration(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListValueConstructorByEnumerationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACKET() { return getToken(GQL_20240412Parser.LEFT_BRACKET, 0); } + public TerminalNode RIGHT_BRACKET() { return getToken(GQL_20240412Parser.RIGHT_BRACKET, 0); } + public ListValueTypeNameContext listValueTypeName() { + return getRuleContext(ListValueTypeNameContext.class,0); + } + public ListElementListContext listElementList() { + return getRuleContext(ListElementListContext.class,0); + } + public ListValueConstructorByEnumerationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listValueConstructorByEnumeration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListValueConstructorByEnumeration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListValueConstructorByEnumeration(this); + } + } + + public final ListValueConstructorByEnumerationContext listValueConstructorByEnumeration() throws RecognitionException { + ListValueConstructorByEnumerationContext _localctx = new ListValueConstructorByEnumerationContext(_ctx, getState()); + enterRule(_localctx, 936, RULE_listValueConstructorByEnumeration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4187); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ARRAY || _la==GROUP || _la==LIST) { + { + setState(4186); + listValueTypeName(); + } + } + + setState(4189); + match(LEFT_BRACKET); + setState(4191); + _errHandler.sync(this); + _la = _input.LA(1); + if (((_la) & ~0x3f) == 0 && ((1L << _la) & 8762849302180528028L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 309341980913L) != 0 || (((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & -8011702113698201677L) != 0 || (((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & 26393111092643L) != 0 || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 1688849860263935L) != 0 || (((_la - 369)) & ~0x3f) == 0 && ((1L << (_la - 369)) & 151L) != 0) { + { + setState(4190); + listElementList(); + } + } + + setState(4193); + match(RIGHT_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListElementListContext extends ParserRuleContext { + public List listElement() { + return getRuleContexts(ListElementContext.class); + } + public ListElementContext listElement(int i) { + return getRuleContext(ListElementContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public ListElementListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listElementList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListElementList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListElementList(this); + } + } + + public final ListElementListContext listElementList() throws RecognitionException { + ListElementListContext _localctx = new ListElementListContext(_ctx, getState()); + enterRule(_localctx, 938, RULE_listElementList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4195); + listElement(); + setState(4200); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4196); + match(COMMA); + setState(4197); + listElement(); + } + } + setState(4202); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListElementContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ListElementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listElement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListElement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListElement(this); + } + } + + public final ListElementContext listElement() throws RecognitionException { + ListElementContext _localctx = new ListElementContext(_ctx, getState()); + enterRule(_localctx, 940, RULE_listElement); + try { + enterOuterAlt(_localctx, 1); + { + setState(4203); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordConstructorContext extends ParserRuleContext { + public FieldsSpecificationContext fieldsSpecification() { + return getRuleContext(FieldsSpecificationContext.class,0); + } + public TerminalNode RECORD() { return getToken(GQL_20240412Parser.RECORD, 0); } + public RecordConstructorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordConstructor; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRecordConstructor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRecordConstructor(this); + } + } + + public final RecordConstructorContext recordConstructor() throws RecognitionException { + RecordConstructorContext _localctx = new RecordConstructorContext(_ctx, getState()); + enterRule(_localctx, 942, RULE_recordConstructor); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4206); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==RECORD) { + { + setState(4205); + match(RECORD); + } + } + + setState(4208); + fieldsSpecification(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldsSpecificationContext extends ParserRuleContext { + public TerminalNode LEFT_BRACE() { return getToken(GQL_20240412Parser.LEFT_BRACE, 0); } + public TerminalNode RIGHT_BRACE() { return getToken(GQL_20240412Parser.RIGHT_BRACE, 0); } + public FieldListContext fieldList() { + return getRuleContext(FieldListContext.class,0); + } + public FieldsSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldsSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFieldsSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFieldsSpecification(this); + } + } + + public final FieldsSpecificationContext fieldsSpecification() throws RecognitionException { + FieldsSpecificationContext _localctx = new FieldsSpecificationContext(_ctx, getState()); + enterRule(_localctx, 944, RULE_fieldsSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4210); + match(LEFT_BRACE); + setState(4212); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==ACCENT_QUOTED_CHARACTER_SEQUENCE || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 562949953421311L) != 0) { + { + setState(4211); + fieldList(); + } + } + + setState(4214); + match(RIGHT_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldListContext extends ParserRuleContext { + public List field() { + return getRuleContexts(FieldContext.class); + } + public FieldContext field(int i) { + return getRuleContext(FieldContext.class,i); + } + public List COMMA() { return getTokens(GQL_20240412Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(GQL_20240412Parser.COMMA, i); + } + public FieldListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFieldList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFieldList(this); + } + } + + public final FieldListContext fieldList() throws RecognitionException { + FieldListContext _localctx = new FieldListContext(_ctx, getState()); + enterRule(_localctx, 946, RULE_fieldList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4216); + field(); + setState(4221); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(4217); + match(COMMA); + setState(4218); + field(); + } + } + setState(4223); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldContext extends ParserRuleContext { + public FieldNameContext fieldName() { + return getRuleContext(FieldNameContext.class,0); + } + public TerminalNode COLON() { return getToken(GQL_20240412Parser.COLON, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public FieldContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_field; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterField(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitField(this); + } + } + + public final FieldContext field() throws RecognitionException { + FieldContext _localctx = new FieldContext(_ctx, getState()); + enterRule(_localctx, 948, RULE_field); + try { + enterOuterAlt(_localctx, 1); + { + setState(4224); + fieldName(); + setState(4225); + match(COLON); + setState(4226); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TruthValueContext extends ParserRuleContext { + public TerminalNode BOOLEAN_LITERAL() { return getToken(GQL_20240412Parser.BOOLEAN_LITERAL, 0); } + public TruthValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_truthValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTruthValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTruthValue(this); + } + } + + public final TruthValueContext truthValue() throws RecognitionException { + TruthValueContext _localctx = new TruthValueContext(_ctx, getState()); + enterRule(_localctx, 950, RULE_truthValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(4228); + match(BOOLEAN_LITERAL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericValueExpressionContext extends ParserRuleContext { + public Token sign; + public Token operator; + public List numericValueExpression() { + return getRuleContexts(NumericValueExpressionContext.class); + } + public NumericValueExpressionContext numericValueExpression(int i) { + return getRuleContext(NumericValueExpressionContext.class,i); + } + public TerminalNode PLUS_SIGN() { return getToken(GQL_20240412Parser.PLUS_SIGN, 0); } + public TerminalNode MINUS_SIGN() { return getToken(GQL_20240412Parser.MINUS_SIGN, 0); } + public ValueExpressionPrimaryContext valueExpressionPrimary() { + return getRuleContext(ValueExpressionPrimaryContext.class,0); + } + public NumericValueFunctionContext numericValueFunction() { + return getRuleContext(NumericValueFunctionContext.class,0); + } + public TerminalNode ASTERISK() { return getToken(GQL_20240412Parser.ASTERISK, 0); } + public TerminalNode SOLIDUS() { return getToken(GQL_20240412Parser.SOLIDUS, 0); } + public NumericValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumericValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumericValueExpression(this); + } + } + + public final NumericValueExpressionContext numericValueExpression() throws RecognitionException { + return numericValueExpression(0); + } + + private NumericValueExpressionContext numericValueExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + NumericValueExpressionContext _localctx = new NumericValueExpressionContext(_ctx, _parentState); + NumericValueExpressionContext _prevctx = _localctx; + int _startState = 952; + enterRecursionRule(_localctx, 952, RULE_numericValueExpression, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(4235); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MINUS_SIGN: + case PLUS_SIGN: + { + setState(4231); + ((NumericValueExpressionContext)_localctx).sign = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==MINUS_SIGN || _la==PLUS_SIGN) ) { + ((NumericValueExpressionContext)_localctx).sign = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4232); + numericValueExpression(5); + } + break; + case BOOLEAN_LITERAL: + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case BYTE_STRING_LITERAL: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + case ARRAY: + case AVG: + case CASE: + case CAST: + case COALESCE: + case COLLECT_LIST: + case COUNT: + case DATE: + case DATETIME: + case DURATION: + case ELEMENT_ID: + case GROUP: + case LET: + case LIST: + case MAX: + case MIN: + case NULL: + case NULLIF: + case PATH: + case PERCENTILE_CONT: + case PERCENTILE_DISC: + case RECORD: + case SESSION_USER: + case STDDEV_POP: + case STDDEV_SAMP: + case SUM: + case TIME: + case TIMESTAMP: + case VALUE: + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + case GENERAL_PARAMETER_REFERENCE: + case LEFT_BRACE: + case LEFT_BRACKET: + case LEFT_PAREN: + { + setState(4233); + valueExpressionPrimary(0); + } + break; + case ABS: + case ACOS: + case ASIN: + case ATAN: + case BYTE_LENGTH: + case CARDINALITY: + case CEIL: + case CEILING: + case CHAR_LENGTH: + case CHARACTER_LENGTH: + case COS: + case COSH: + case COT: + case DEGREES: + case EXP: + case FLOOR: + case LN: + case LOG: + case LOG10: + case MOD: + case OCTET_LENGTH: + case PATH_LENGTH: + case POWER: + case RADIANS: + case SIN: + case SINH: + case SIZE: + case SQRT: + case TAN: + case TANH: + { + setState(4234); + numericValueFunction(); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.LT(-1); + setState(4245); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,478,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(4243); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,477,_ctx) ) { + case 1: + { + _localctx = new NumericValueExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_numericValueExpression); + setState(4237); + if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)"); + setState(4238); + ((NumericValueExpressionContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==ASTERISK || _la==SOLIDUS) ) { + ((NumericValueExpressionContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4239); + numericValueExpression(5); + } + break; + case 2: + { + _localctx = new NumericValueExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_numericValueExpression); + setState(4240); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(4241); + ((NumericValueExpressionContext)_localctx).operator = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==MINUS_SIGN || _la==PLUS_SIGN) ) { + ((NumericValueExpressionContext)_localctx).operator = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4242); + numericValueExpression(4); + } + break; + } + } + } + setState(4247); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,478,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericValueFunctionContext extends ParserRuleContext { + public LengthExpressionContext lengthExpression() { + return getRuleContext(LengthExpressionContext.class,0); + } + public CardinalityExpressionContext cardinalityExpression() { + return getRuleContext(CardinalityExpressionContext.class,0); + } + public AbsoluteValueExpressionContext absoluteValueExpression() { + return getRuleContext(AbsoluteValueExpressionContext.class,0); + } + public ModulusExpressionContext modulusExpression() { + return getRuleContext(ModulusExpressionContext.class,0); + } + public TrigonometricFunctionContext trigonometricFunction() { + return getRuleContext(TrigonometricFunctionContext.class,0); + } + public GeneralLogarithmFunctionContext generalLogarithmFunction() { + return getRuleContext(GeneralLogarithmFunctionContext.class,0); + } + public CommonLogarithmContext commonLogarithm() { + return getRuleContext(CommonLogarithmContext.class,0); + } + public NaturalLogarithmContext naturalLogarithm() { + return getRuleContext(NaturalLogarithmContext.class,0); + } + public ExponentialFunctionContext exponentialFunction() { + return getRuleContext(ExponentialFunctionContext.class,0); + } + public PowerFunctionContext powerFunction() { + return getRuleContext(PowerFunctionContext.class,0); + } + public SquareRootContext squareRoot() { + return getRuleContext(SquareRootContext.class,0); + } + public FloorFunctionContext floorFunction() { + return getRuleContext(FloorFunctionContext.class,0); + } + public CeilingFunctionContext ceilingFunction() { + return getRuleContext(CeilingFunctionContext.class,0); + } + public NumericValueFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericValueFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumericValueFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumericValueFunction(this); + } + } + + public final NumericValueFunctionContext numericValueFunction() throws RecognitionException { + NumericValueFunctionContext _localctx = new NumericValueFunctionContext(_ctx, getState()); + enterRule(_localctx, 954, RULE_numericValueFunction); + try { + setState(4261); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BYTE_LENGTH: + case CHAR_LENGTH: + case CHARACTER_LENGTH: + case OCTET_LENGTH: + case PATH_LENGTH: + enterOuterAlt(_localctx, 1); + { + setState(4248); + lengthExpression(); + } + break; + case CARDINALITY: + case SIZE: + enterOuterAlt(_localctx, 2); + { + setState(4249); + cardinalityExpression(); + } + break; + case ABS: + enterOuterAlt(_localctx, 3); + { + setState(4250); + absoluteValueExpression(); + } + break; + case MOD: + enterOuterAlt(_localctx, 4); + { + setState(4251); + modulusExpression(); + } + break; + case ACOS: + case ASIN: + case ATAN: + case COS: + case COSH: + case COT: + case DEGREES: + case RADIANS: + case SIN: + case SINH: + case TAN: + case TANH: + enterOuterAlt(_localctx, 5); + { + setState(4252); + trigonometricFunction(); + } + break; + case LOG: + enterOuterAlt(_localctx, 6); + { + setState(4253); + generalLogarithmFunction(); + } + break; + case LOG10: + enterOuterAlt(_localctx, 7); + { + setState(4254); + commonLogarithm(); + } + break; + case LN: + enterOuterAlt(_localctx, 8); + { + setState(4255); + naturalLogarithm(); + } + break; + case EXP: + enterOuterAlt(_localctx, 9); + { + setState(4256); + exponentialFunction(); + } + break; + case POWER: + enterOuterAlt(_localctx, 10); + { + setState(4257); + powerFunction(); + } + break; + case SQRT: + enterOuterAlt(_localctx, 11); + { + setState(4258); + squareRoot(); + } + break; + case FLOOR: + enterOuterAlt(_localctx, 12); + { + setState(4259); + floorFunction(); + } + break; + case CEIL: + case CEILING: + enterOuterAlt(_localctx, 13); + { + setState(4260); + ceilingFunction(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LengthExpressionContext extends ParserRuleContext { + public CharLengthExpressionContext charLengthExpression() { + return getRuleContext(CharLengthExpressionContext.class,0); + } + public ByteLengthExpressionContext byteLengthExpression() { + return getRuleContext(ByteLengthExpressionContext.class,0); + } + public PathLengthExpressionContext pathLengthExpression() { + return getRuleContext(PathLengthExpressionContext.class,0); + } + public LengthExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lengthExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLengthExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLengthExpression(this); + } + } + + public final LengthExpressionContext lengthExpression() throws RecognitionException { + LengthExpressionContext _localctx = new LengthExpressionContext(_ctx, getState()); + enterRule(_localctx, 956, RULE_lengthExpression); + try { + setState(4266); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CHAR_LENGTH: + case CHARACTER_LENGTH: + enterOuterAlt(_localctx, 1); + { + setState(4263); + charLengthExpression(); + } + break; + case BYTE_LENGTH: + case OCTET_LENGTH: + enterOuterAlt(_localctx, 2); + { + setState(4264); + byteLengthExpression(); + } + break; + case PATH_LENGTH: + enterOuterAlt(_localctx, 3); + { + setState(4265); + pathLengthExpression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CardinalityExpressionContext extends ParserRuleContext { + public TerminalNode CARDINALITY() { return getToken(GQL_20240412Parser.CARDINALITY, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public CardinalityExpressionArgumentContext cardinalityExpressionArgument() { + return getRuleContext(CardinalityExpressionArgumentContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode SIZE() { return getToken(GQL_20240412Parser.SIZE, 0); } + public ListValueExpressionContext listValueExpression() { + return getRuleContext(ListValueExpressionContext.class,0); + } + public CardinalityExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_cardinalityExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCardinalityExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCardinalityExpression(this); + } + } + + public final CardinalityExpressionContext cardinalityExpression() throws RecognitionException { + CardinalityExpressionContext _localctx = new CardinalityExpressionContext(_ctx, getState()); + enterRule(_localctx, 958, RULE_cardinalityExpression); + try { + setState(4278); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CARDINALITY: + enterOuterAlt(_localctx, 1); + { + setState(4268); + match(CARDINALITY); + setState(4269); + match(LEFT_PAREN); + setState(4270); + cardinalityExpressionArgument(); + setState(4271); + match(RIGHT_PAREN); + } + break; + case SIZE: + enterOuterAlt(_localctx, 2); + { + setState(4273); + match(SIZE); + setState(4274); + match(LEFT_PAREN); + setState(4275); + listValueExpression(); + setState(4276); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CardinalityExpressionArgumentContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public CardinalityExpressionArgumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_cardinalityExpressionArgument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCardinalityExpressionArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCardinalityExpressionArgument(this); + } + } + + public final CardinalityExpressionArgumentContext cardinalityExpressionArgument() throws RecognitionException { + CardinalityExpressionArgumentContext _localctx = new CardinalityExpressionArgumentContext(_ctx, getState()); + enterRule(_localctx, 960, RULE_cardinalityExpressionArgument); + try { + enterOuterAlt(_localctx, 1); + { + setState(4280); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CharLengthExpressionContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public CharacterStringValueExpressionContext characterStringValueExpression() { + return getRuleContext(CharacterStringValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode CHAR_LENGTH() { return getToken(GQL_20240412Parser.CHAR_LENGTH, 0); } + public TerminalNode CHARACTER_LENGTH() { return getToken(GQL_20240412Parser.CHARACTER_LENGTH, 0); } + public CharLengthExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_charLengthExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCharLengthExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCharLengthExpression(this); + } + } + + public final CharLengthExpressionContext charLengthExpression() throws RecognitionException { + CharLengthExpressionContext _localctx = new CharLengthExpressionContext(_ctx, getState()); + enterRule(_localctx, 962, RULE_charLengthExpression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4282); + _la = _input.LA(1); + if ( !(_la==CHAR_LENGTH || _la==CHARACTER_LENGTH) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4283); + match(LEFT_PAREN); + setState(4284); + characterStringValueExpression(); + setState(4285); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ByteLengthExpressionContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ByteStringValueExpressionContext byteStringValueExpression() { + return getRuleContext(ByteStringValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode BYTE_LENGTH() { return getToken(GQL_20240412Parser.BYTE_LENGTH, 0); } + public TerminalNode OCTET_LENGTH() { return getToken(GQL_20240412Parser.OCTET_LENGTH, 0); } + public ByteLengthExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_byteLengthExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterByteLengthExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitByteLengthExpression(this); + } + } + + public final ByteLengthExpressionContext byteLengthExpression() throws RecognitionException { + ByteLengthExpressionContext _localctx = new ByteLengthExpressionContext(_ctx, getState()); + enterRule(_localctx, 964, RULE_byteLengthExpression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4287); + _la = _input.LA(1); + if ( !(_la==BYTE_LENGTH || _la==OCTET_LENGTH) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4288); + match(LEFT_PAREN); + setState(4289); + byteStringValueExpression(); + setState(4290); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathLengthExpressionContext extends ParserRuleContext { + public TerminalNode PATH_LENGTH() { return getToken(GQL_20240412Parser.PATH_LENGTH, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public PathValueExpressionContext pathValueExpression() { + return getRuleContext(PathValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public PathLengthExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathLengthExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathLengthExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathLengthExpression(this); + } + } + + public final PathLengthExpressionContext pathLengthExpression() throws RecognitionException { + PathLengthExpressionContext _localctx = new PathLengthExpressionContext(_ctx, getState()); + enterRule(_localctx, 966, RULE_pathLengthExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4292); + match(PATH_LENGTH); + setState(4293); + match(LEFT_PAREN); + setState(4294); + pathValueExpression(); + setState(4295); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AbsoluteValueExpressionContext extends ParserRuleContext { + public TerminalNode ABS() { return getToken(GQL_20240412Parser.ABS, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public AbsoluteValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_absoluteValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterAbsoluteValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitAbsoluteValueExpression(this); + } + } + + public final AbsoluteValueExpressionContext absoluteValueExpression() throws RecognitionException { + AbsoluteValueExpressionContext _localctx = new AbsoluteValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 968, RULE_absoluteValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4297); + match(ABS); + setState(4298); + match(LEFT_PAREN); + setState(4299); + valueExpression(0); + setState(4300); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ModulusExpressionContext extends ParserRuleContext { + public TerminalNode MOD() { return getToken(GQL_20240412Parser.MOD, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionDividendContext numericValueExpressionDividend() { + return getRuleContext(NumericValueExpressionDividendContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public NumericValueExpressionDivisorContext numericValueExpressionDivisor() { + return getRuleContext(NumericValueExpressionDivisorContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public ModulusExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_modulusExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterModulusExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitModulusExpression(this); + } + } + + public final ModulusExpressionContext modulusExpression() throws RecognitionException { + ModulusExpressionContext _localctx = new ModulusExpressionContext(_ctx, getState()); + enterRule(_localctx, 970, RULE_modulusExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4302); + match(MOD); + setState(4303); + match(LEFT_PAREN); + setState(4304); + numericValueExpressionDividend(); + setState(4305); + match(COMMA); + setState(4306); + numericValueExpressionDivisor(); + setState(4307); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericValueExpressionDividendContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public NumericValueExpressionDividendContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericValueExpressionDividend; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumericValueExpressionDividend(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumericValueExpressionDividend(this); + } + } + + public final NumericValueExpressionDividendContext numericValueExpressionDividend() throws RecognitionException { + NumericValueExpressionDividendContext _localctx = new NumericValueExpressionDividendContext(_ctx, getState()); + enterRule(_localctx, 972, RULE_numericValueExpressionDividend); + try { + enterOuterAlt(_localctx, 1); + { + setState(4309); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericValueExpressionDivisorContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public NumericValueExpressionDivisorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericValueExpressionDivisor; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumericValueExpressionDivisor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumericValueExpressionDivisor(this); + } + } + + public final NumericValueExpressionDivisorContext numericValueExpressionDivisor() throws RecognitionException { + NumericValueExpressionDivisorContext _localctx = new NumericValueExpressionDivisorContext(_ctx, getState()); + enterRule(_localctx, 974, RULE_numericValueExpressionDivisor); + try { + enterOuterAlt(_localctx, 1); + { + setState(4311); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrigonometricFunctionContext extends ParserRuleContext { + public TrigonometricFunctionNameContext trigonometricFunctionName() { + return getRuleContext(TrigonometricFunctionNameContext.class,0); + } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TrigonometricFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trigonometricFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrigonometricFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrigonometricFunction(this); + } + } + + public final TrigonometricFunctionContext trigonometricFunction() throws RecognitionException { + TrigonometricFunctionContext _localctx = new TrigonometricFunctionContext(_ctx, getState()); + enterRule(_localctx, 976, RULE_trigonometricFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4313); + trigonometricFunctionName(); + setState(4314); + match(LEFT_PAREN); + setState(4315); + numericValueExpression(0); + setState(4316); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrigonometricFunctionNameContext extends ParserRuleContext { + public TerminalNode SIN() { return getToken(GQL_20240412Parser.SIN, 0); } + public TerminalNode COS() { return getToken(GQL_20240412Parser.COS, 0); } + public TerminalNode TAN() { return getToken(GQL_20240412Parser.TAN, 0); } + public TerminalNode COT() { return getToken(GQL_20240412Parser.COT, 0); } + public TerminalNode SINH() { return getToken(GQL_20240412Parser.SINH, 0); } + public TerminalNode COSH() { return getToken(GQL_20240412Parser.COSH, 0); } + public TerminalNode TANH() { return getToken(GQL_20240412Parser.TANH, 0); } + public TerminalNode ASIN() { return getToken(GQL_20240412Parser.ASIN, 0); } + public TerminalNode ACOS() { return getToken(GQL_20240412Parser.ACOS, 0); } + public TerminalNode ATAN() { return getToken(GQL_20240412Parser.ATAN, 0); } + public TerminalNode DEGREES() { return getToken(GQL_20240412Parser.DEGREES, 0); } + public TerminalNode RADIANS() { return getToken(GQL_20240412Parser.RADIANS, 0); } + public TrigonometricFunctionNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trigonometricFunctionName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrigonometricFunctionName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrigonometricFunctionName(this); + } + } + + public final TrigonometricFunctionNameContext trigonometricFunctionName() throws RecognitionException { + TrigonometricFunctionNameContext _localctx = new TrigonometricFunctionNameContext(_ctx, getState()); + enterRule(_localctx, 978, RULE_trigonometricFunctionName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4318); + _la = _input.LA(1); + if ( !((((_la - 21)) & ~0x3f) == 0 && ((1L << (_la - 21)) & 18016322654833153L) != 0 || (((_la - 174)) & ~0x3f) == 0 && ((1L << (_la - 174)) & 3222011905L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneralLogarithmFunctionContext extends ParserRuleContext { + public TerminalNode LOG() { return getToken(GQL_20240412Parser.LOG, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public GeneralLogarithmBaseContext generalLogarithmBase() { + return getRuleContext(GeneralLogarithmBaseContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public GeneralLogarithmArgumentContext generalLogarithmArgument() { + return getRuleContext(GeneralLogarithmArgumentContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public GeneralLogarithmFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generalLogarithmFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGeneralLogarithmFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGeneralLogarithmFunction(this); + } + } + + public final GeneralLogarithmFunctionContext generalLogarithmFunction() throws RecognitionException { + GeneralLogarithmFunctionContext _localctx = new GeneralLogarithmFunctionContext(_ctx, getState()); + enterRule(_localctx, 980, RULE_generalLogarithmFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4320); + match(LOG); + setState(4321); + match(LEFT_PAREN); + setState(4322); + generalLogarithmBase(); + setState(4323); + match(COMMA); + setState(4324); + generalLogarithmArgument(); + setState(4325); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneralLogarithmBaseContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public GeneralLogarithmBaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generalLogarithmBase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGeneralLogarithmBase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGeneralLogarithmBase(this); + } + } + + public final GeneralLogarithmBaseContext generalLogarithmBase() throws RecognitionException { + GeneralLogarithmBaseContext _localctx = new GeneralLogarithmBaseContext(_ctx, getState()); + enterRule(_localctx, 982, RULE_generalLogarithmBase); + try { + enterOuterAlt(_localctx, 1); + { + setState(4327); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneralLogarithmArgumentContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public GeneralLogarithmArgumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generalLogarithmArgument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGeneralLogarithmArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGeneralLogarithmArgument(this); + } + } + + public final GeneralLogarithmArgumentContext generalLogarithmArgument() throws RecognitionException { + GeneralLogarithmArgumentContext _localctx = new GeneralLogarithmArgumentContext(_ctx, getState()); + enterRule(_localctx, 984, RULE_generalLogarithmArgument); + try { + enterOuterAlt(_localctx, 1); + { + setState(4329); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CommonLogarithmContext extends ParserRuleContext { + public TerminalNode LOG10() { return getToken(GQL_20240412Parser.LOG10, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public CommonLogarithmContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_commonLogarithm; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCommonLogarithm(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCommonLogarithm(this); + } + } + + public final CommonLogarithmContext commonLogarithm() throws RecognitionException { + CommonLogarithmContext _localctx = new CommonLogarithmContext(_ctx, getState()); + enterRule(_localctx, 986, RULE_commonLogarithm); + try { + enterOuterAlt(_localctx, 1); + { + setState(4331); + match(LOG10); + setState(4332); + match(LEFT_PAREN); + setState(4333); + numericValueExpression(0); + setState(4334); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NaturalLogarithmContext extends ParserRuleContext { + public TerminalNode LN() { return getToken(GQL_20240412Parser.LN, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public NaturalLogarithmContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_naturalLogarithm; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNaturalLogarithm(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNaturalLogarithm(this); + } + } + + public final NaturalLogarithmContext naturalLogarithm() throws RecognitionException { + NaturalLogarithmContext _localctx = new NaturalLogarithmContext(_ctx, getState()); + enterRule(_localctx, 988, RULE_naturalLogarithm); + try { + enterOuterAlt(_localctx, 1); + { + setState(4336); + match(LN); + setState(4337); + match(LEFT_PAREN); + setState(4338); + numericValueExpression(0); + setState(4339); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExponentialFunctionContext extends ParserRuleContext { + public TerminalNode EXP() { return getToken(GQL_20240412Parser.EXP, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public ExponentialFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exponentialFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterExponentialFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitExponentialFunction(this); + } + } + + public final ExponentialFunctionContext exponentialFunction() throws RecognitionException { + ExponentialFunctionContext _localctx = new ExponentialFunctionContext(_ctx, getState()); + enterRule(_localctx, 990, RULE_exponentialFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4341); + match(EXP); + setState(4342); + match(LEFT_PAREN); + setState(4343); + numericValueExpression(0); + setState(4344); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PowerFunctionContext extends ParserRuleContext { + public TerminalNode POWER() { return getToken(GQL_20240412Parser.POWER, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionBaseContext numericValueExpressionBase() { + return getRuleContext(NumericValueExpressionBaseContext.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public NumericValueExpressionExponentContext numericValueExpressionExponent() { + return getRuleContext(NumericValueExpressionExponentContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public PowerFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_powerFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPowerFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPowerFunction(this); + } + } + + public final PowerFunctionContext powerFunction() throws RecognitionException { + PowerFunctionContext _localctx = new PowerFunctionContext(_ctx, getState()); + enterRule(_localctx, 992, RULE_powerFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4346); + match(POWER); + setState(4347); + match(LEFT_PAREN); + setState(4348); + numericValueExpressionBase(); + setState(4349); + match(COMMA); + setState(4350); + numericValueExpressionExponent(); + setState(4351); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericValueExpressionBaseContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public NumericValueExpressionBaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericValueExpressionBase; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumericValueExpressionBase(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumericValueExpressionBase(this); + } + } + + public final NumericValueExpressionBaseContext numericValueExpressionBase() throws RecognitionException { + NumericValueExpressionBaseContext _localctx = new NumericValueExpressionBaseContext(_ctx, getState()); + enterRule(_localctx, 994, RULE_numericValueExpressionBase); + try { + enterOuterAlt(_localctx, 1); + { + setState(4353); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumericValueExpressionExponentContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public NumericValueExpressionExponentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numericValueExpressionExponent; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNumericValueExpressionExponent(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNumericValueExpressionExponent(this); + } + } + + public final NumericValueExpressionExponentContext numericValueExpressionExponent() throws RecognitionException { + NumericValueExpressionExponentContext _localctx = new NumericValueExpressionExponentContext(_ctx, getState()); + enterRule(_localctx, 996, RULE_numericValueExpressionExponent); + try { + enterOuterAlt(_localctx, 1); + { + setState(4355); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SquareRootContext extends ParserRuleContext { + public TerminalNode SQRT() { return getToken(GQL_20240412Parser.SQRT, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public SquareRootContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_squareRoot; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSquareRoot(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSquareRoot(this); + } + } + + public final SquareRootContext squareRoot() throws RecognitionException { + SquareRootContext _localctx = new SquareRootContext(_ctx, getState()); + enterRule(_localctx, 998, RULE_squareRoot); + try { + enterOuterAlt(_localctx, 1); + { + setState(4357); + match(SQRT); + setState(4358); + match(LEFT_PAREN); + setState(4359); + numericValueExpression(0); + setState(4360); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FloorFunctionContext extends ParserRuleContext { + public TerminalNode FLOOR() { return getToken(GQL_20240412Parser.FLOOR, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public FloorFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_floorFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFloorFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFloorFunction(this); + } + } + + public final FloorFunctionContext floorFunction() throws RecognitionException { + FloorFunctionContext _localctx = new FloorFunctionContext(_ctx, getState()); + enterRule(_localctx, 1000, RULE_floorFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4362); + match(FLOOR); + setState(4363); + match(LEFT_PAREN); + setState(4364); + numericValueExpression(0); + setState(4365); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CeilingFunctionContext extends ParserRuleContext { + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TerminalNode CEIL() { return getToken(GQL_20240412Parser.CEIL, 0); } + public TerminalNode CEILING() { return getToken(GQL_20240412Parser.CEILING, 0); } + public CeilingFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ceilingFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCeilingFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCeilingFunction(this); + } + } + + public final CeilingFunctionContext ceilingFunction() throws RecognitionException { + CeilingFunctionContext _localctx = new CeilingFunctionContext(_ctx, getState()); + enterRule(_localctx, 1002, RULE_ceilingFunction); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4367); + _la = _input.LA(1); + if ( !(_la==CEIL || _la==CEILING) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4368); + match(LEFT_PAREN); + setState(4369); + numericValueExpression(0); + setState(4370); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CharacterStringValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public CharacterStringValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_characterStringValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCharacterStringValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCharacterStringValueExpression(this); + } + } + + public final CharacterStringValueExpressionContext characterStringValueExpression() throws RecognitionException { + CharacterStringValueExpressionContext _localctx = new CharacterStringValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 1004, RULE_characterStringValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4372); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ByteStringValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public ByteStringValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_byteStringValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterByteStringValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitByteStringValueExpression(this); + } + } + + public final ByteStringValueExpressionContext byteStringValueExpression() throws RecognitionException { + ByteStringValueExpressionContext _localctx = new ByteStringValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 1006, RULE_byteStringValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4374); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrimOperandsContext extends ParserRuleContext { + public TrimCharacterOrByteStringSourceContext trimCharacterOrByteStringSource() { + return getRuleContext(TrimCharacterOrByteStringSourceContext.class,0); + } + public TerminalNode FROM() { return getToken(GQL_20240412Parser.FROM, 0); } + public TrimSpecificationContext trimSpecification() { + return getRuleContext(TrimSpecificationContext.class,0); + } + public TrimCharacterOrByteStringContext trimCharacterOrByteString() { + return getRuleContext(TrimCharacterOrByteStringContext.class,0); + } + public TrimOperandsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trimOperands; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrimOperands(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrimOperands(this); + } + } + + public final TrimOperandsContext trimOperands() throws RecognitionException { + TrimOperandsContext _localctx = new TrimOperandsContext(_ctx, getState()); + enterRule(_localctx, 1008, RULE_trimOperands); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4383); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,484,_ctx) ) { + case 1: + { + setState(4377); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BOTH || _la==LEADING || _la==TRAILING) { + { + setState(4376); + trimSpecification(); + } + } + + setState(4380); + _errHandler.sync(this); + _la = _input.LA(1); + if (((_la) & ~0x3f) == 0 && ((1L << _la) & 8762849302180528028L) != 0 || (((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 309341980913L) != 0 || (((_la - 129)) & ~0x3f) == 0 && ((1L << (_la - 129)) & -8011702113698201677L) != 0 || (((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & 26393111092643L) != 0 || (((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 1688849860263935L) != 0 || (((_la - 369)) & ~0x3f) == 0 && ((1L << (_la - 369)) & 151L) != 0) { + { + setState(4379); + trimCharacterOrByteString(); + } + } + + setState(4382); + match(FROM); + } + break; + } + setState(4385); + trimCharacterOrByteStringSource(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrimCharacterOrByteStringSourceContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TrimCharacterOrByteStringSourceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trimCharacterOrByteStringSource; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrimCharacterOrByteStringSource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrimCharacterOrByteStringSource(this); + } + } + + public final TrimCharacterOrByteStringSourceContext trimCharacterOrByteStringSource() throws RecognitionException { + TrimCharacterOrByteStringSourceContext _localctx = new TrimCharacterOrByteStringSourceContext(_ctx, getState()); + enterRule(_localctx, 1010, RULE_trimCharacterOrByteStringSource); + try { + enterOuterAlt(_localctx, 1); + { + setState(4387); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrimSpecificationContext extends ParserRuleContext { + public TerminalNode LEADING() { return getToken(GQL_20240412Parser.LEADING, 0); } + public TerminalNode TRAILING() { return getToken(GQL_20240412Parser.TRAILING, 0); } + public TerminalNode BOTH() { return getToken(GQL_20240412Parser.BOTH, 0); } + public TrimSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trimSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrimSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrimSpecification(this); + } + } + + public final TrimSpecificationContext trimSpecification() throws RecognitionException { + TrimSpecificationContext _localctx = new TrimSpecificationContext(_ctx, getState()); + enterRule(_localctx, 1012, RULE_trimSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4389); + _la = _input.LA(1); + if ( !(_la==BOTH || _la==LEADING || _la==TRAILING) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TrimCharacterOrByteStringContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public TrimCharacterOrByteStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_trimCharacterOrByteString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTrimCharacterOrByteString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTrimCharacterOrByteString(this); + } + } + + public final TrimCharacterOrByteStringContext trimCharacterOrByteString() throws RecognitionException { + TrimCharacterOrByteStringContext _localctx = new TrimCharacterOrByteStringContext(_ctx, getState()); + enterRule(_localctx, 1014, RULE_trimCharacterOrByteString); + try { + enterOuterAlt(_localctx, 1); + { + setState(4391); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NormalFormContext extends ParserRuleContext { + public TerminalNode NFC() { return getToken(GQL_20240412Parser.NFC, 0); } + public TerminalNode NFD() { return getToken(GQL_20240412Parser.NFD, 0); } + public TerminalNode NFKC() { return getToken(GQL_20240412Parser.NFKC, 0); } + public TerminalNode NFKD() { return getToken(GQL_20240412Parser.NFKD, 0); } + public NormalFormContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_normalForm; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNormalForm(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNormalForm(this); + } + } + + public final NormalFormContext normalForm() throws RecognitionException { + NormalFormContext _localctx = new NormalFormContext(_ctx, getState()); + enterRule(_localctx, 1016, RULE_normalForm); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4393); + _la = _input.LA(1); + if ( !((((_la - 296)) & ~0x3f) == 0 && ((1L << (_la - 296)) & 15L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StringLengthContext extends ParserRuleContext { + public NumericValueExpressionContext numericValueExpression() { + return getRuleContext(NumericValueExpressionContext.class,0); + } + public StringLengthContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_stringLength; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterStringLength(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitStringLength(this); + } + } + + public final StringLengthContext stringLength() throws RecognitionException { + StringLengthContext _localctx = new StringLengthContext(_ctx, getState()); + enterRule(_localctx, 1018, RULE_stringLength); + try { + enterOuterAlt(_localctx, 1); + { + setState(4395); + numericValueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public DatetimeValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeValueExpression(this); + } + } + + public final DatetimeValueExpressionContext datetimeValueExpression() throws RecognitionException { + DatetimeValueExpressionContext _localctx = new DatetimeValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 1020, RULE_datetimeValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4397); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeValueFunctionContext extends ParserRuleContext { + public DateFunctionContext dateFunction() { + return getRuleContext(DateFunctionContext.class,0); + } + public TimeFunctionContext timeFunction() { + return getRuleContext(TimeFunctionContext.class,0); + } + public DatetimeFunctionContext datetimeFunction() { + return getRuleContext(DatetimeFunctionContext.class,0); + } + public LocaltimeFunctionContext localtimeFunction() { + return getRuleContext(LocaltimeFunctionContext.class,0); + } + public LocaldatetimeFunctionContext localdatetimeFunction() { + return getRuleContext(LocaldatetimeFunctionContext.class,0); + } + public DatetimeValueFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeValueFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeValueFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeValueFunction(this); + } + } + + public final DatetimeValueFunctionContext datetimeValueFunction() throws RecognitionException { + DatetimeValueFunctionContext _localctx = new DatetimeValueFunctionContext(_ctx, getState()); + enterRule(_localctx, 1022, RULE_datetimeValueFunction); + try { + setState(4404); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CURRENT_DATE: + case DATE: + enterOuterAlt(_localctx, 1); + { + setState(4399); + dateFunction(); + } + break; + case CURRENT_TIME: + case ZONED_TIME: + enterOuterAlt(_localctx, 2); + { + setState(4400); + timeFunction(); + } + break; + case CURRENT_TIMESTAMP: + case ZONED_DATETIME: + enterOuterAlt(_localctx, 3); + { + setState(4401); + datetimeFunction(); + } + break; + case LOCAL_TIME: + enterOuterAlt(_localctx, 4); + { + setState(4402); + localtimeFunction(); + } + break; + case LOCAL_DATETIME: + case LOCAL_TIMESTAMP: + enterOuterAlt(_localctx, 5); + { + setState(4403); + localdatetimeFunction(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DateFunctionContext extends ParserRuleContext { + public TerminalNode CURRENT_DATE() { return getToken(GQL_20240412Parser.CURRENT_DATE, 0); } + public TerminalNode DATE() { return getToken(GQL_20240412Parser.DATE, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public DateFunctionParametersContext dateFunctionParameters() { + return getRuleContext(DateFunctionParametersContext.class,0); + } + public DateFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dateFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDateFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDateFunction(this); + } + } + + public final DateFunctionContext dateFunction() throws RecognitionException { + DateFunctionContext _localctx = new DateFunctionContext(_ctx, getState()); + enterRule(_localctx, 1024, RULE_dateFunction); + int _la; + try { + setState(4413); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CURRENT_DATE: + enterOuterAlt(_localctx, 1); + { + setState(4406); + match(CURRENT_DATE); + } + break; + case DATE: + enterOuterAlt(_localctx, 2); + { + setState(4407); + match(DATE); + setState(4408); + match(LEFT_PAREN); + setState(4410); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SINGLE_QUOTED_CHARACTER_SEQUENCE || _la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==RECORD || _la==LEFT_BRACE) { + { + setState(4409); + dateFunctionParameters(); + } + } + + setState(4412); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TimeFunctionContext extends ParserRuleContext { + public TerminalNode CURRENT_TIME() { return getToken(GQL_20240412Parser.CURRENT_TIME, 0); } + public TerminalNode ZONED_TIME() { return getToken(GQL_20240412Parser.ZONED_TIME, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TimeFunctionParametersContext timeFunctionParameters() { + return getRuleContext(TimeFunctionParametersContext.class,0); + } + public TimeFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_timeFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTimeFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTimeFunction(this); + } + } + + public final TimeFunctionContext timeFunction() throws RecognitionException { + TimeFunctionContext _localctx = new TimeFunctionContext(_ctx, getState()); + enterRule(_localctx, 1026, RULE_timeFunction); + int _la; + try { + setState(4422); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CURRENT_TIME: + enterOuterAlt(_localctx, 1); + { + setState(4415); + match(CURRENT_TIME); + } + break; + case ZONED_TIME: + enterOuterAlt(_localctx, 2); + { + setState(4416); + match(ZONED_TIME); + setState(4417); + match(LEFT_PAREN); + setState(4419); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SINGLE_QUOTED_CHARACTER_SEQUENCE || _la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==RECORD || _la==LEFT_BRACE) { + { + setState(4418); + timeFunctionParameters(); + } + } + + setState(4421); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocaltimeFunctionContext extends ParserRuleContext { + public TerminalNode LOCAL_TIME() { return getToken(GQL_20240412Parser.LOCAL_TIME, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TimeFunctionParametersContext timeFunctionParameters() { + return getRuleContext(TimeFunctionParametersContext.class,0); + } + public LocaltimeFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_localtimeFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLocaltimeFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLocaltimeFunction(this); + } + } + + public final LocaltimeFunctionContext localtimeFunction() throws RecognitionException { + LocaltimeFunctionContext _localctx = new LocaltimeFunctionContext(_ctx, getState()); + enterRule(_localctx, 1028, RULE_localtimeFunction); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4424); + match(LOCAL_TIME); + setState(4430); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,491,_ctx) ) { + case 1: + { + setState(4425); + match(LEFT_PAREN); + setState(4427); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SINGLE_QUOTED_CHARACTER_SEQUENCE || _la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==RECORD || _la==LEFT_BRACE) { + { + setState(4426); + timeFunctionParameters(); + } + } + + setState(4429); + match(RIGHT_PAREN); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeFunctionContext extends ParserRuleContext { + public TerminalNode CURRENT_TIMESTAMP() { return getToken(GQL_20240412Parser.CURRENT_TIMESTAMP, 0); } + public TerminalNode ZONED_DATETIME() { return getToken(GQL_20240412Parser.ZONED_DATETIME, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public DatetimeFunctionParametersContext datetimeFunctionParameters() { + return getRuleContext(DatetimeFunctionParametersContext.class,0); + } + public DatetimeFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeFunction(this); + } + } + + public final DatetimeFunctionContext datetimeFunction() throws RecognitionException { + DatetimeFunctionContext _localctx = new DatetimeFunctionContext(_ctx, getState()); + enterRule(_localctx, 1030, RULE_datetimeFunction); + int _la; + try { + setState(4439); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CURRENT_TIMESTAMP: + enterOuterAlt(_localctx, 1); + { + setState(4432); + match(CURRENT_TIMESTAMP); + } + break; + case ZONED_DATETIME: + enterOuterAlt(_localctx, 2); + { + setState(4433); + match(ZONED_DATETIME); + setState(4434); + match(LEFT_PAREN); + setState(4436); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SINGLE_QUOTED_CHARACTER_SEQUENCE || _la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==RECORD || _la==LEFT_BRACE) { + { + setState(4435); + datetimeFunctionParameters(); + } + } + + setState(4438); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocaldatetimeFunctionContext extends ParserRuleContext { + public TerminalNode LOCAL_TIMESTAMP() { return getToken(GQL_20240412Parser.LOCAL_TIMESTAMP, 0); } + public TerminalNode LOCAL_DATETIME() { return getToken(GQL_20240412Parser.LOCAL_DATETIME, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public DatetimeFunctionParametersContext datetimeFunctionParameters() { + return getRuleContext(DatetimeFunctionParametersContext.class,0); + } + public LocaldatetimeFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_localdatetimeFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLocaldatetimeFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLocaldatetimeFunction(this); + } + } + + public final LocaldatetimeFunctionContext localdatetimeFunction() throws RecognitionException { + LocaldatetimeFunctionContext _localctx = new LocaldatetimeFunctionContext(_ctx, getState()); + enterRule(_localctx, 1032, RULE_localdatetimeFunction); + int _la; + try { + setState(4448); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LOCAL_TIMESTAMP: + enterOuterAlt(_localctx, 1); + { + setState(4441); + match(LOCAL_TIMESTAMP); + } + break; + case LOCAL_DATETIME: + enterOuterAlt(_localctx, 2); + { + setState(4442); + match(LOCAL_DATETIME); + setState(4443); + match(LEFT_PAREN); + setState(4445); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SINGLE_QUOTED_CHARACTER_SEQUENCE || _la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==RECORD || _la==LEFT_BRACE) { + { + setState(4444); + datetimeFunctionParameters(); + } + } + + setState(4447); + match(RIGHT_PAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DateFunctionParametersContext extends ParserRuleContext { + public DateStringContext dateString() { + return getRuleContext(DateStringContext.class,0); + } + public RecordConstructorContext recordConstructor() { + return getRuleContext(RecordConstructorContext.class,0); + } + public DateFunctionParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dateFunctionParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDateFunctionParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDateFunctionParameters(this); + } + } + + public final DateFunctionParametersContext dateFunctionParameters() throws RecognitionException { + DateFunctionParametersContext _localctx = new DateFunctionParametersContext(_ctx, getState()); + enterRule(_localctx, 1034, RULE_dateFunctionParameters); + try { + setState(4452); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 1); + { + setState(4450); + dateString(); + } + break; + case RECORD: + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(4451); + recordConstructor(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TimeFunctionParametersContext extends ParserRuleContext { + public TimeStringContext timeString() { + return getRuleContext(TimeStringContext.class,0); + } + public RecordConstructorContext recordConstructor() { + return getRuleContext(RecordConstructorContext.class,0); + } + public TimeFunctionParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_timeFunctionParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTimeFunctionParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTimeFunctionParameters(this); + } + } + + public final TimeFunctionParametersContext timeFunctionParameters() throws RecognitionException { + TimeFunctionParametersContext _localctx = new TimeFunctionParametersContext(_ctx, getState()); + enterRule(_localctx, 1036, RULE_timeFunctionParameters); + try { + setState(4456); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 1); + { + setState(4454); + timeString(); + } + break; + case RECORD: + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(4455); + recordConstructor(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeFunctionParametersContext extends ParserRuleContext { + public DatetimeStringContext datetimeString() { + return getRuleContext(DatetimeStringContext.class,0); + } + public RecordConstructorContext recordConstructor() { + return getRuleContext(RecordConstructorContext.class,0); + } + public DatetimeFunctionParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeFunctionParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeFunctionParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeFunctionParameters(this); + } + } + + public final DatetimeFunctionParametersContext datetimeFunctionParameters() throws RecognitionException { + DatetimeFunctionParametersContext _localctx = new DatetimeFunctionParametersContext(_ctx, getState()); + enterRule(_localctx, 1038, RULE_datetimeFunctionParameters); + try { + setState(4460); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 1); + { + setState(4458); + datetimeString(); + } + break; + case RECORD: + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(4459); + recordConstructor(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DurationValueExpressionContext extends ParserRuleContext { + public ValueExpressionContext valueExpression() { + return getRuleContext(ValueExpressionContext.class,0); + } + public DurationValueExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_durationValueExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDurationValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDurationValueExpression(this); + } + } + + public final DurationValueExpressionContext durationValueExpression() throws RecognitionException { + DurationValueExpressionContext _localctx = new DurationValueExpressionContext(_ctx, getState()); + enterRule(_localctx, 1040, RULE_durationValueExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(4462); + valueExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeSubtractionContext extends ParserRuleContext { + public TerminalNode DURATION_BETWEEN() { return getToken(GQL_20240412Parser.DURATION_BETWEEN, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public DatetimeSubtractionParametersContext datetimeSubtractionParameters() { + return getRuleContext(DatetimeSubtractionParametersContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public TemporalDurationQualifierContext temporalDurationQualifier() { + return getRuleContext(TemporalDurationQualifierContext.class,0); + } + public DatetimeSubtractionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeSubtraction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeSubtraction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeSubtraction(this); + } + } + + public final DatetimeSubtractionContext datetimeSubtraction() throws RecognitionException { + DatetimeSubtractionContext _localctx = new DatetimeSubtractionContext(_ctx, getState()); + enterRule(_localctx, 1042, RULE_datetimeSubtraction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4464); + match(DURATION_BETWEEN); + setState(4465); + match(LEFT_PAREN); + setState(4466); + datetimeSubtractionParameters(); + setState(4467); + match(RIGHT_PAREN); + setState(4469); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,499,_ctx) ) { + case 1: + { + setState(4468); + temporalDurationQualifier(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeSubtractionParametersContext extends ParserRuleContext { + public DatetimeValueExpression1Context datetimeValueExpression1() { + return getRuleContext(DatetimeValueExpression1Context.class,0); + } + public TerminalNode COMMA() { return getToken(GQL_20240412Parser.COMMA, 0); } + public DatetimeValueExpression2Context datetimeValueExpression2() { + return getRuleContext(DatetimeValueExpression2Context.class,0); + } + public DatetimeSubtractionParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeSubtractionParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeSubtractionParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeSubtractionParameters(this); + } + } + + public final DatetimeSubtractionParametersContext datetimeSubtractionParameters() throws RecognitionException { + DatetimeSubtractionParametersContext _localctx = new DatetimeSubtractionParametersContext(_ctx, getState()); + enterRule(_localctx, 1044, RULE_datetimeSubtractionParameters); + try { + enterOuterAlt(_localctx, 1); + { + setState(4471); + datetimeValueExpression1(); + setState(4472); + match(COMMA); + setState(4473); + datetimeValueExpression2(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeValueExpression1Context extends ParserRuleContext { + public DatetimeValueExpressionContext datetimeValueExpression() { + return getRuleContext(DatetimeValueExpressionContext.class,0); + } + public DatetimeValueExpression1Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeValueExpression1; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeValueExpression1(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeValueExpression1(this); + } + } + + public final DatetimeValueExpression1Context datetimeValueExpression1() throws RecognitionException { + DatetimeValueExpression1Context _localctx = new DatetimeValueExpression1Context(_ctx, getState()); + enterRule(_localctx, 1046, RULE_datetimeValueExpression1); + try { + enterOuterAlt(_localctx, 1); + { + setState(4475); + datetimeValueExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeValueExpression2Context extends ParserRuleContext { + public DatetimeValueExpressionContext datetimeValueExpression() { + return getRuleContext(DatetimeValueExpressionContext.class,0); + } + public DatetimeValueExpression2Context(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeValueExpression2; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeValueExpression2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeValueExpression2(this); + } + } + + public final DatetimeValueExpression2Context datetimeValueExpression2() throws RecognitionException { + DatetimeValueExpression2Context _localctx = new DatetimeValueExpression2Context(_ctx, getState()); + enterRule(_localctx, 1048, RULE_datetimeValueExpression2); + try { + enterOuterAlt(_localctx, 1); + { + setState(4477); + datetimeValueExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DurationValueFunctionContext extends ParserRuleContext { + public DurationFunctionContext durationFunction() { + return getRuleContext(DurationFunctionContext.class,0); + } + public AbsoluteValueExpressionContext absoluteValueExpression() { + return getRuleContext(AbsoluteValueExpressionContext.class,0); + } + public DurationValueFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_durationValueFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDurationValueFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDurationValueFunction(this); + } + } + + public final DurationValueFunctionContext durationValueFunction() throws RecognitionException { + DurationValueFunctionContext _localctx = new DurationValueFunctionContext(_ctx, getState()); + enterRule(_localctx, 1050, RULE_durationValueFunction); + try { + setState(4481); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DURATION: + enterOuterAlt(_localctx, 1); + { + setState(4479); + durationFunction(); + } + break; + case ABS: + enterOuterAlt(_localctx, 2); + { + setState(4480); + absoluteValueExpression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DurationFunctionContext extends ParserRuleContext { + public TerminalNode DURATION() { return getToken(GQL_20240412Parser.DURATION, 0); } + public TerminalNode LEFT_PAREN() { return getToken(GQL_20240412Parser.LEFT_PAREN, 0); } + public DurationFunctionParametersContext durationFunctionParameters() { + return getRuleContext(DurationFunctionParametersContext.class,0); + } + public TerminalNode RIGHT_PAREN() { return getToken(GQL_20240412Parser.RIGHT_PAREN, 0); } + public DurationFunctionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_durationFunction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDurationFunction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDurationFunction(this); + } + } + + public final DurationFunctionContext durationFunction() throws RecognitionException { + DurationFunctionContext _localctx = new DurationFunctionContext(_ctx, getState()); + enterRule(_localctx, 1052, RULE_durationFunction); + try { + enterOuterAlt(_localctx, 1); + { + setState(4483); + match(DURATION); + setState(4484); + match(LEFT_PAREN); + setState(4485); + durationFunctionParameters(); + setState(4486); + match(RIGHT_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DurationFunctionParametersContext extends ParserRuleContext { + public DurationStringContext durationString() { + return getRuleContext(DurationStringContext.class,0); + } + public RecordConstructorContext recordConstructor() { + return getRuleContext(RecordConstructorContext.class,0); + } + public DurationFunctionParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_durationFunctionParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDurationFunctionParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDurationFunctionParameters(this); + } + } + + public final DurationFunctionParametersContext durationFunctionParameters() throws RecognitionException { + DurationFunctionParametersContext _localctx = new DurationFunctionParametersContext(_ctx, getState()); + enterRule(_localctx, 1054, RULE_durationFunctionParameters); + try { + setState(4490); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 1); + { + setState(4488); + durationString(); + } + break; + case RECORD: + case LEFT_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(4489); + recordConstructor(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ObjectNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ObjectNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_objectName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterObjectName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitObjectName(this); + } + } + + public final ObjectNameContext objectName() throws RecognitionException { + ObjectNameContext _localctx = new ObjectNameContext(_ctx, getState()); + enterRule(_localctx, 1056, RULE_objectName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4492); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ObjectNameOrBindingVariableContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public ObjectNameOrBindingVariableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_objectNameOrBindingVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterObjectNameOrBindingVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitObjectNameOrBindingVariable(this); + } + } + + public final ObjectNameOrBindingVariableContext objectNameOrBindingVariable() throws RecognitionException { + ObjectNameOrBindingVariableContext _localctx = new ObjectNameOrBindingVariableContext(_ctx, getState()); + enterRule(_localctx, 1058, RULE_objectNameOrBindingVariable); + try { + enterOuterAlt(_localctx, 1); + { + setState(4494); + regularIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DirectoryNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public DirectoryNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_directoryName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDirectoryName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDirectoryName(this); + } + } + + public final DirectoryNameContext directoryName() throws RecognitionException { + DirectoryNameContext _localctx = new DirectoryNameContext(_ctx, getState()); + enterRule(_localctx, 1060, RULE_directoryName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4496); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SchemaNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public SchemaNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_schemaName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSchemaName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSchemaName(this); + } + } + + public final SchemaNameContext schemaName() throws RecognitionException { + SchemaNameContext _localctx = new SchemaNameContext(_ctx, getState()); + enterRule(_localctx, 1062, RULE_schemaName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4498); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphNameContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public DelimitedGraphNameContext delimitedGraphName() { + return getRuleContext(DelimitedGraphNameContext.class,0); + } + public GraphNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphName(this); + } + } + + public final GraphNameContext graphName() throws RecognitionException { + GraphNameContext _localctx = new GraphNameContext(_ctx, getState()); + enterRule(_localctx, 1064, RULE_graphName); + try { + setState(4502); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(4500); + regularIdentifier(); + } + break; + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case ACCENT_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 2); + { + setState(4501); + delimitedGraphName(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DelimitedGraphNameContext extends ParserRuleContext { + public TerminalNode DOUBLE_QUOTED_CHARACTER_SEQUENCE() { return getToken(GQL_20240412Parser.DOUBLE_QUOTED_CHARACTER_SEQUENCE, 0); } + public TerminalNode ACCENT_QUOTED_CHARACTER_SEQUENCE() { return getToken(GQL_20240412Parser.ACCENT_QUOTED_CHARACTER_SEQUENCE, 0); } + public DelimitedGraphNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_delimitedGraphName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDelimitedGraphName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDelimitedGraphName(this); + } + } + + public final DelimitedGraphNameContext delimitedGraphName() throws RecognitionException { + DelimitedGraphNameContext _localctx = new DelimitedGraphNameContext(_ctx, getState()); + enterRule(_localctx, 1066, RULE_delimitedGraphName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4504); + _la = _input.LA(1); + if ( !(_la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==ACCENT_QUOTED_CHARACTER_SEQUENCE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GraphTypeNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public GraphTypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_graphTypeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGraphTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGraphTypeName(this); + } + } + + public final GraphTypeNameContext graphTypeName() throws RecognitionException { + GraphTypeNameContext _localctx = new GraphTypeNameContext(_ctx, getState()); + enterRule(_localctx, 1068, RULE_graphTypeName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4506); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeTypeNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public NodeTypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeTypeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeTypeName(this); + } + } + + public final NodeTypeNameContext nodeTypeName() throws RecognitionException { + NodeTypeNameContext _localctx = new NodeTypeNameContext(_ctx, getState()); + enterRule(_localctx, 1070, RULE_nodeTypeName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4508); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeTypeNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public EdgeTypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeTypeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeTypeName(this); + } + } + + public final EdgeTypeNameContext edgeTypeName() throws RecognitionException { + EdgeTypeNameContext _localctx = new EdgeTypeNameContext(_ctx, getState()); + enterRule(_localctx, 1072, RULE_edgeTypeName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4510); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingTableNameContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public DelimitedBindingTableNameContext delimitedBindingTableName() { + return getRuleContext(DelimitedBindingTableNameContext.class,0); + } + public BindingTableNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingTableName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingTableName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingTableName(this); + } + } + + public final BindingTableNameContext bindingTableName() throws RecognitionException { + BindingTableNameContext _localctx = new BindingTableNameContext(_ctx, getState()); + enterRule(_localctx, 1074, RULE_bindingTableName); + try { + setState(4514); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(4512); + regularIdentifier(); + } + break; + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case ACCENT_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 2); + { + setState(4513); + delimitedBindingTableName(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DelimitedBindingTableNameContext extends ParserRuleContext { + public TerminalNode DOUBLE_QUOTED_CHARACTER_SEQUENCE() { return getToken(GQL_20240412Parser.DOUBLE_QUOTED_CHARACTER_SEQUENCE, 0); } + public TerminalNode ACCENT_QUOTED_CHARACTER_SEQUENCE() { return getToken(GQL_20240412Parser.ACCENT_QUOTED_CHARACTER_SEQUENCE, 0); } + public DelimitedBindingTableNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_delimitedBindingTableName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDelimitedBindingTableName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDelimitedBindingTableName(this); + } + } + + public final DelimitedBindingTableNameContext delimitedBindingTableName() throws RecognitionException { + DelimitedBindingTableNameContext _localctx = new DelimitedBindingTableNameContext(_ctx, getState()); + enterRule(_localctx, 1076, RULE_delimitedBindingTableName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4516); + _la = _input.LA(1); + if ( !(_la==DOUBLE_QUOTED_CHARACTER_SEQUENCE || _la==ACCENT_QUOTED_CHARACTER_SEQUENCE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ProcedureNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ProcedureNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_procedureName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterProcedureName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitProcedureName(this); + } + } + + public final ProcedureNameContext procedureName() throws RecognitionException { + ProcedureNameContext _localctx = new ProcedureNameContext(_ctx, getState()); + enterRule(_localctx, 1078, RULE_procedureName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4518); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LabelNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public LabelNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_labelName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterLabelName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitLabelName(this); + } + } + + public final LabelNameContext labelName() throws RecognitionException { + LabelNameContext _localctx = new LabelNameContext(_ctx, getState()); + enterRule(_localctx, 1080, RULE_labelName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4520); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PropertyNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public PropertyNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPropertyName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPropertyName(this); + } + } + + public final PropertyNameContext propertyName() throws RecognitionException { + PropertyNameContext _localctx = new PropertyNameContext(_ctx, getState()); + enterRule(_localctx, 1082, RULE_propertyName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4522); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public FieldNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterFieldName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitFieldName(this); + } + } + + public final FieldNameContext fieldName() throws RecognitionException { + FieldNameContext _localctx = new FieldNameContext(_ctx, getState()); + enterRule(_localctx, 1084, RULE_fieldName); + try { + enterOuterAlt(_localctx, 1); + { + setState(4524); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementVariableContext extends ParserRuleContext { + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public ElementVariableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterElementVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitElementVariable(this); + } + } + + public final ElementVariableContext elementVariable() throws RecognitionException { + ElementVariableContext _localctx = new ElementVariableContext(_ctx, getState()); + enterRule(_localctx, 1086, RULE_elementVariable); + try { + enterOuterAlt(_localctx, 1); + { + setState(4526); + bindingVariable(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PathVariableContext extends ParserRuleContext { + public BindingVariableContext bindingVariable() { + return getRuleContext(BindingVariableContext.class,0); + } + public PathVariableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pathVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterPathVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitPathVariable(this); + } + } + + public final PathVariableContext pathVariable() throws RecognitionException { + PathVariableContext _localctx = new PathVariableContext(_ctx, getState()); + enterRule(_localctx, 1088, RULE_pathVariable); + try { + enterOuterAlt(_localctx, 1); + { + setState(4528); + bindingVariable(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SubpathVariableContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public SubpathVariableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_subpathVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterSubpathVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitSubpathVariable(this); + } + } + + public final SubpathVariableContext subpathVariable() throws RecognitionException { + SubpathVariableContext _localctx = new SubpathVariableContext(_ctx, getState()); + enterRule(_localctx, 1090, RULE_subpathVariable); + try { + enterOuterAlt(_localctx, 1); + { + setState(4530); + regularIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BindingVariableContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public BindingVariableContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bindingVariable; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterBindingVariable(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitBindingVariable(this); + } + } + + public final BindingVariableContext bindingVariable() throws RecognitionException { + BindingVariableContext _localctx = new BindingVariableContext(_ctx, getState()); + enterRule(_localctx, 1092, RULE_bindingVariable); + try { + enterOuterAlt(_localctx, 1); + { + setState(4532); + regularIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnsignedLiteralContext extends ParserRuleContext { + public UnsignedNumericLiteralContext unsignedNumericLiteral() { + return getRuleContext(UnsignedNumericLiteralContext.class,0); + } + public GeneralLiteralContext generalLiteral() { + return getRuleContext(GeneralLiteralContext.class,0); + } + public UnsignedLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unsignedLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterUnsignedLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitUnsignedLiteral(this); + } + } + + public final UnsignedLiteralContext unsignedLiteral() throws RecognitionException { + UnsignedLiteralContext _localctx = new UnsignedLiteralContext(_ctx, getState()); + enterRule(_localctx, 1094, RULE_unsignedLiteral); + try { + setState(4536); + _errHandler.sync(this); + switch (_input.LA(1)) { + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + enterOuterAlt(_localctx, 1); + { + setState(4534); + unsignedNumericLiteral(); + } + break; + case BOOLEAN_LITERAL: + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + case BYTE_STRING_LITERAL: + case ARRAY: + case DATE: + case DATETIME: + case DURATION: + case GROUP: + case LIST: + case NULL: + case RECORD: + case TIME: + case TIMESTAMP: + case LEFT_BRACE: + case LEFT_BRACKET: + enterOuterAlt(_localctx, 2); + { + setState(4535); + generalLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GeneralLiteralContext extends ParserRuleContext { + public TerminalNode BOOLEAN_LITERAL() { return getToken(GQL_20240412Parser.BOOLEAN_LITERAL, 0); } + public CharacterStringLiteralContext characterStringLiteral() { + return getRuleContext(CharacterStringLiteralContext.class,0); + } + public TerminalNode BYTE_STRING_LITERAL() { return getToken(GQL_20240412Parser.BYTE_STRING_LITERAL, 0); } + public TemporalLiteralContext temporalLiteral() { + return getRuleContext(TemporalLiteralContext.class,0); + } + public DurationLiteralContext durationLiteral() { + return getRuleContext(DurationLiteralContext.class,0); + } + public NullLiteralContext nullLiteral() { + return getRuleContext(NullLiteralContext.class,0); + } + public ListLiteralContext listLiteral() { + return getRuleContext(ListLiteralContext.class,0); + } + public RecordLiteralContext recordLiteral() { + return getRuleContext(RecordLiteralContext.class,0); + } + public GeneralLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generalLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterGeneralLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitGeneralLiteral(this); + } + } + + public final GeneralLiteralContext generalLiteral() throws RecognitionException { + GeneralLiteralContext _localctx = new GeneralLiteralContext(_ctx, getState()); + enterRule(_localctx, 1096, RULE_generalLiteral); + try { + setState(4546); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOLEAN_LITERAL: + enterOuterAlt(_localctx, 1); + { + setState(4538); + match(BOOLEAN_LITERAL); + } + break; + case SINGLE_QUOTED_CHARACTER_SEQUENCE: + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 2); + { + setState(4539); + characterStringLiteral(); + } + break; + case BYTE_STRING_LITERAL: + enterOuterAlt(_localctx, 3); + { + setState(4540); + match(BYTE_STRING_LITERAL); + } + break; + case DATE: + case DATETIME: + case TIME: + case TIMESTAMP: + enterOuterAlt(_localctx, 4); + { + setState(4541); + temporalLiteral(); + } + break; + case DURATION: + enterOuterAlt(_localctx, 5); + { + setState(4542); + durationLiteral(); + } + break; + case NULL: + enterOuterAlt(_localctx, 6); + { + setState(4543); + nullLiteral(); + } + break; + case ARRAY: + case GROUP: + case LIST: + case LEFT_BRACKET: + enterOuterAlt(_localctx, 7); + { + setState(4544); + listLiteral(); + } + break; + case RECORD: + case LEFT_BRACE: + enterOuterAlt(_localctx, 8); + { + setState(4545); + recordLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TemporalLiteralContext extends ParserRuleContext { + public DateLiteralContext dateLiteral() { + return getRuleContext(DateLiteralContext.class,0); + } + public TimeLiteralContext timeLiteral() { + return getRuleContext(TimeLiteralContext.class,0); + } + public DatetimeLiteralContext datetimeLiteral() { + return getRuleContext(DatetimeLiteralContext.class,0); + } + public TemporalLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_temporalLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTemporalLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTemporalLiteral(this); + } + } + + public final TemporalLiteralContext temporalLiteral() throws RecognitionException { + TemporalLiteralContext _localctx = new TemporalLiteralContext(_ctx, getState()); + enterRule(_localctx, 1098, RULE_temporalLiteral); + try { + setState(4551); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DATE: + enterOuterAlt(_localctx, 1); + { + setState(4548); + dateLiteral(); + } + break; + case TIME: + enterOuterAlt(_localctx, 2); + { + setState(4549); + timeLiteral(); + } + break; + case DATETIME: + case TIMESTAMP: + enterOuterAlt(_localctx, 3); + { + setState(4550); + datetimeLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DateLiteralContext extends ParserRuleContext { + public TerminalNode DATE() { return getToken(GQL_20240412Parser.DATE, 0); } + public DateStringContext dateString() { + return getRuleContext(DateStringContext.class,0); + } + public DateLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dateLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDateLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDateLiteral(this); + } + } + + public final DateLiteralContext dateLiteral() throws RecognitionException { + DateLiteralContext _localctx = new DateLiteralContext(_ctx, getState()); + enterRule(_localctx, 1100, RULE_dateLiteral); + try { + enterOuterAlt(_localctx, 1); + { + setState(4553); + match(DATE); + setState(4554); + dateString(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TimeLiteralContext extends ParserRuleContext { + public TerminalNode TIME() { return getToken(GQL_20240412Parser.TIME, 0); } + public TimeStringContext timeString() { + return getRuleContext(TimeStringContext.class,0); + } + public TimeLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_timeLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTimeLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTimeLiteral(this); + } + } + + public final TimeLiteralContext timeLiteral() throws RecognitionException { + TimeLiteralContext _localctx = new TimeLiteralContext(_ctx, getState()); + enterRule(_localctx, 1102, RULE_timeLiteral); + try { + enterOuterAlt(_localctx, 1); + { + setState(4556); + match(TIME); + setState(4557); + timeString(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeLiteralContext extends ParserRuleContext { + public DatetimeStringContext datetimeString() { + return getRuleContext(DatetimeStringContext.class,0); + } + public TerminalNode DATETIME() { return getToken(GQL_20240412Parser.DATETIME, 0); } + public TerminalNode TIMESTAMP() { return getToken(GQL_20240412Parser.TIMESTAMP, 0); } + public DatetimeLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeLiteral(this); + } + } + + public final DatetimeLiteralContext datetimeLiteral() throws RecognitionException { + DatetimeLiteralContext _localctx = new DatetimeLiteralContext(_ctx, getState()); + enterRule(_localctx, 1104, RULE_datetimeLiteral); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4559); + _la = _input.LA(1); + if ( !(_la==DATETIME || _la==TIMESTAMP) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(4560); + datetimeString(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ListLiteralContext extends ParserRuleContext { + public ListValueConstructorByEnumerationContext listValueConstructorByEnumeration() { + return getRuleContext(ListValueConstructorByEnumerationContext.class,0); + } + public ListLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterListLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitListLiteral(this); + } + } + + public final ListLiteralContext listLiteral() throws RecognitionException { + ListLiteralContext _localctx = new ListLiteralContext(_ctx, getState()); + enterRule(_localctx, 1106, RULE_listLiteral); + try { + enterOuterAlt(_localctx, 1); + { + setState(4562); + listValueConstructorByEnumeration(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordLiteralContext extends ParserRuleContext { + public RecordConstructorContext recordConstructor() { + return getRuleContext(RecordConstructorContext.class,0); + } + public RecordLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRecordLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRecordLiteral(this); + } + } + + public final RecordLiteralContext recordLiteral() throws RecognitionException { + RecordLiteralContext _localctx = new RecordLiteralContext(_ctx, getState()); + enterRule(_localctx, 1108, RULE_recordLiteral); + try { + enterOuterAlt(_localctx, 1); + { + setState(4564); + recordConstructor(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IdentifierContext extends ParserRuleContext { + public RegularIdentifierContext regularIdentifier() { + return getRuleContext(RegularIdentifierContext.class,0); + } + public TerminalNode DOUBLE_QUOTED_CHARACTER_SEQUENCE() { return getToken(GQL_20240412Parser.DOUBLE_QUOTED_CHARACTER_SEQUENCE, 0); } + public TerminalNode ACCENT_QUOTED_CHARACTER_SEQUENCE() { return getToken(GQL_20240412Parser.ACCENT_QUOTED_CHARACTER_SEQUENCE, 0); } + public IdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitIdentifier(this); + } + } + + public final IdentifierContext identifier() throws RecognitionException { + IdentifierContext _localctx = new IdentifierContext(_ctx, getState()); + enterRule(_localctx, 1110, RULE_identifier); + try { + setState(4569); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + case REGULAR_IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(4566); + regularIdentifier(); + } + break; + case DOUBLE_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 2); + { + setState(4567); + match(DOUBLE_QUOTED_CHARACTER_SEQUENCE); + } + break; + case ACCENT_QUOTED_CHARACTER_SEQUENCE: + enterOuterAlt(_localctx, 3); + { + setState(4568); + match(ACCENT_QUOTED_CHARACTER_SEQUENCE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RegularIdentifierContext extends ParserRuleContext { + public TerminalNode REGULAR_IDENTIFIER() { return getToken(GQL_20240412Parser.REGULAR_IDENTIFIER, 0); } + public NonReservedWordsContext nonReservedWords() { + return getRuleContext(NonReservedWordsContext.class,0); + } + public RegularIdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_regularIdentifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterRegularIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitRegularIdentifier(this); + } + } + + public final RegularIdentifierContext regularIdentifier() throws RecognitionException { + RegularIdentifierContext _localctx = new RegularIdentifierContext(_ctx, getState()); + enterRule(_localctx, 1112, RULE_regularIdentifier); + try { + setState(4573); + _errHandler.sync(this); + switch (_input.LA(1)) { + case REGULAR_IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(4571); + match(REGULAR_IDENTIFIER); + } + break; + case ACYCLIC: + case BINDING: + case BINDINGS: + case CONNECTING: + case DESTINATION: + case DIFFERENT: + case DIRECTED: + case EDGE: + case EDGES: + case ELEMENT: + case ELEMENTS: + case FIRST: + case GRAPH: + case GROUPS: + case KEEP: + case LABEL: + case LABELED: + case LABELS: + case LAST: + case NFC: + case NFD: + case NFKC: + case NFKD: + case NO: + case NODE: + case NORMALIZED: + case ONLY: + case ORDINALITY: + case PROPERTY: + case READ: + case RELATIONSHIP: + case RELATIONSHIPS: + case REPEATABLE: + case SHORTEST: + case SIMPLE: + case SOURCE: + case TABLE: + case TEMP: + case TO: + case TRAIL: + case TRANSACTION: + case TYPE: + case UNDIRECTED: + case VERTEX: + case WALK: + case WITHOUT: + case WRITE: + case ZONE: + enterOuterAlt(_localctx, 2); + { + setState(4572); + nonReservedWords(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TimeZoneStringContext extends ParserRuleContext { + public CharacterStringLiteralContext characterStringLiteral() { + return getRuleContext(CharacterStringLiteralContext.class,0); + } + public TimeZoneStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_timeZoneString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTimeZoneString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTimeZoneString(this); + } + } + + public final TimeZoneStringContext timeZoneString() throws RecognitionException { + TimeZoneStringContext _localctx = new TimeZoneStringContext(_ctx, getState()); + enterRule(_localctx, 1114, RULE_timeZoneString); + try { + enterOuterAlt(_localctx, 1); + { + setState(4575); + characterStringLiteral(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CharacterStringLiteralContext extends ParserRuleContext { + public TerminalNode SINGLE_QUOTED_CHARACTER_SEQUENCE() { return getToken(GQL_20240412Parser.SINGLE_QUOTED_CHARACTER_SEQUENCE, 0); } + public TerminalNode DOUBLE_QUOTED_CHARACTER_SEQUENCE() { return getToken(GQL_20240412Parser.DOUBLE_QUOTED_CHARACTER_SEQUENCE, 0); } + public CharacterStringLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_characterStringLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterCharacterStringLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitCharacterStringLiteral(this); + } + } + + public final CharacterStringLiteralContext characterStringLiteral() throws RecognitionException { + CharacterStringLiteralContext _localctx = new CharacterStringLiteralContext(_ctx, getState()); + enterRule(_localctx, 1116, RULE_characterStringLiteral); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4577); + _la = _input.LA(1); + if ( !(_la==SINGLE_QUOTED_CHARACTER_SEQUENCE || _la==DOUBLE_QUOTED_CHARACTER_SEQUENCE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnsignedNumericLiteralContext extends ParserRuleContext { + public ExactNumericLiteralContext exactNumericLiteral() { + return getRuleContext(ExactNumericLiteralContext.class,0); + } + public ApproximateNumericLiteralContext approximateNumericLiteral() { + return getRuleContext(ApproximateNumericLiteralContext.class,0); + } + public UnsignedNumericLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unsignedNumericLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterUnsignedNumericLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitUnsignedNumericLiteral(this); + } + } + + public final UnsignedNumericLiteralContext unsignedNumericLiteral() throws RecognitionException { + UnsignedNumericLiteralContext _localctx = new UnsignedNumericLiteralContext(_ctx, getState()); + enterRule(_localctx, 1118, RULE_unsignedNumericLiteral); + try { + setState(4581); + _errHandler.sync(this); + switch (_input.LA(1)) { + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + enterOuterAlt(_localctx, 1); + { + setState(4579); + exactNumericLiteral(); + } + break; + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX: + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX: + case UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX: + enterOuterAlt(_localctx, 2); + { + setState(4580); + approximateNumericLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExactNumericLiteralContext extends ParserRuleContext { + public TerminalNode UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX, 0); } + public TerminalNode UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX, 0); } + public TerminalNode UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX, 0); } + public TerminalNode UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX, 0); } + public UnsignedIntegerContext unsignedInteger() { + return getRuleContext(UnsignedIntegerContext.class,0); + } + public ExactNumericLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exactNumericLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterExactNumericLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitExactNumericLiteral(this); + } + } + + public final ExactNumericLiteralContext exactNumericLiteral() throws RecognitionException { + ExactNumericLiteralContext _localctx = new ExactNumericLiteralContext(_ctx, getState()); + enterRule(_localctx, 1120, RULE_exactNumericLiteral); + try { + setState(4588); + _errHandler.sync(this); + switch (_input.LA(1)) { + case UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + enterOuterAlt(_localctx, 1); + { + setState(4583); + match(UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX); + } + break; + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX: + enterOuterAlt(_localctx, 2); + { + setState(4584); + match(UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX); + } + break; + case UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX: + enterOuterAlt(_localctx, 3); + { + setState(4585); + match(UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX); + } + break; + case UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX: + enterOuterAlt(_localctx, 4); + { + setState(4586); + match(UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX); + } + break; + case UNSIGNED_DECIMAL_INTEGER: + case UNSIGNED_HEXADECIMAL_INTEGER: + case UNSIGNED_OCTAL_INTEGER: + case UNSIGNED_BINARY_INTEGER: + enterOuterAlt(_localctx, 5); + { + setState(4587); + unsignedInteger(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ApproximateNumericLiteralContext extends ParserRuleContext { + public TerminalNode UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX, 0); } + public TerminalNode UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX, 0); } + public TerminalNode UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX, 0); } + public TerminalNode UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX, 0); } + public ApproximateNumericLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_approximateNumericLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterApproximateNumericLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitApproximateNumericLiteral(this); + } + } + + public final ApproximateNumericLiteralContext approximateNumericLiteral() throws RecognitionException { + ApproximateNumericLiteralContext _localctx = new ApproximateNumericLiteralContext(_ctx, getState()); + enterRule(_localctx, 1122, RULE_approximateNumericLiteral); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4590); + _la = _input.LA(1); + if ( !(((_la) & ~0x3f) == 0 && ((1L << _la) & 42496L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnsignedIntegerContext extends ParserRuleContext { + public TerminalNode UNSIGNED_DECIMAL_INTEGER() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_INTEGER, 0); } + public TerminalNode UNSIGNED_HEXADECIMAL_INTEGER() { return getToken(GQL_20240412Parser.UNSIGNED_HEXADECIMAL_INTEGER, 0); } + public TerminalNode UNSIGNED_OCTAL_INTEGER() { return getToken(GQL_20240412Parser.UNSIGNED_OCTAL_INTEGER, 0); } + public TerminalNode UNSIGNED_BINARY_INTEGER() { return getToken(GQL_20240412Parser.UNSIGNED_BINARY_INTEGER, 0); } + public UnsignedIntegerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unsignedInteger; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterUnsignedInteger(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitUnsignedInteger(this); + } + } + + public final UnsignedIntegerContext unsignedInteger() throws RecognitionException { + UnsignedIntegerContext _localctx = new UnsignedIntegerContext(_ctx, getState()); + enterRule(_localctx, 1124, RULE_unsignedInteger); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4592); + _la = _input.LA(1); + if ( !(((_la) & ~0x3f) == 0 && ((1L << _la) & 983040L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class UnsignedDecimalIntegerContext extends ParserRuleContext { + public TerminalNode UNSIGNED_DECIMAL_INTEGER() { return getToken(GQL_20240412Parser.UNSIGNED_DECIMAL_INTEGER, 0); } + public UnsignedDecimalIntegerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unsignedDecimalInteger; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterUnsignedDecimalInteger(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitUnsignedDecimalInteger(this); + } + } + + public final UnsignedDecimalIntegerContext unsignedDecimalInteger() throws RecognitionException { + UnsignedDecimalIntegerContext _localctx = new UnsignedDecimalIntegerContext(_ctx, getState()); + enterRule(_localctx, 1126, RULE_unsignedDecimalInteger); + try { + enterOuterAlt(_localctx, 1); + { + setState(4594); + match(UNSIGNED_DECIMAL_INTEGER); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NullLiteralContext extends ParserRuleContext { + public TerminalNode NULL() { return getToken(GQL_20240412Parser.NULL, 0); } + public NullLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nullLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNullLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNullLiteral(this); + } + } + + public final NullLiteralContext nullLiteral() throws RecognitionException { + NullLiteralContext _localctx = new NullLiteralContext(_ctx, getState()); + enterRule(_localctx, 1128, RULE_nullLiteral); + try { + enterOuterAlt(_localctx, 1); + { + setState(4596); + match(NULL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DateStringContext extends ParserRuleContext { + public CharacterStringLiteralContext characterStringLiteral() { + return getRuleContext(CharacterStringLiteralContext.class,0); + } + public DateStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_dateString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDateString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDateString(this); + } + } + + public final DateStringContext dateString() throws RecognitionException { + DateStringContext _localctx = new DateStringContext(_ctx, getState()); + enterRule(_localctx, 1130, RULE_dateString); + try { + enterOuterAlt(_localctx, 1); + { + setState(4598); + characterStringLiteral(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TimeStringContext extends ParserRuleContext { + public CharacterStringLiteralContext characterStringLiteral() { + return getRuleContext(CharacterStringLiteralContext.class,0); + } + public TimeStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_timeString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterTimeString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitTimeString(this); + } + } + + public final TimeStringContext timeString() throws RecognitionException { + TimeStringContext _localctx = new TimeStringContext(_ctx, getState()); + enterRule(_localctx, 1132, RULE_timeString); + try { + enterOuterAlt(_localctx, 1); + { + setState(4600); + characterStringLiteral(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DatetimeStringContext extends ParserRuleContext { + public CharacterStringLiteralContext characterStringLiteral() { + return getRuleContext(CharacterStringLiteralContext.class,0); + } + public DatetimeStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_datetimeString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDatetimeString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDatetimeString(this); + } + } + + public final DatetimeStringContext datetimeString() throws RecognitionException { + DatetimeStringContext _localctx = new DatetimeStringContext(_ctx, getState()); + enterRule(_localctx, 1134, RULE_datetimeString); + try { + enterOuterAlt(_localctx, 1); + { + setState(4602); + characterStringLiteral(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DurationLiteralContext extends ParserRuleContext { + public TerminalNode DURATION() { return getToken(GQL_20240412Parser.DURATION, 0); } + public DurationStringContext durationString() { + return getRuleContext(DurationStringContext.class,0); + } + public DurationLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_durationLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDurationLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDurationLiteral(this); + } + } + + public final DurationLiteralContext durationLiteral() throws RecognitionException { + DurationLiteralContext _localctx = new DurationLiteralContext(_ctx, getState()); + enterRule(_localctx, 1136, RULE_durationLiteral); + try { + enterOuterAlt(_localctx, 1); + { + setState(4604); + match(DURATION); + setState(4605); + durationString(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DurationStringContext extends ParserRuleContext { + public CharacterStringLiteralContext characterStringLiteral() { + return getRuleContext(CharacterStringLiteralContext.class,0); + } + public DurationStringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_durationString; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterDurationString(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitDurationString(this); + } + } + + public final DurationStringContext durationString() throws RecognitionException { + DurationStringContext _localctx = new DurationStringContext(_ctx, getState()); + enterRule(_localctx, 1138, RULE_durationString); + try { + enterOuterAlt(_localctx, 1); + { + setState(4607); + characterStringLiteral(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NodeSynonymContext extends ParserRuleContext { + public TerminalNode NODE() { return getToken(GQL_20240412Parser.NODE, 0); } + public TerminalNode VERTEX() { return getToken(GQL_20240412Parser.VERTEX, 0); } + public NodeSynonymContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nodeSynonym; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNodeSynonym(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNodeSynonym(this); + } + } + + public final NodeSynonymContext nodeSynonym() throws RecognitionException { + NodeSynonymContext _localctx = new NodeSynonymContext(_ctx, getState()); + enterRule(_localctx, 1140, RULE_nodeSynonym); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4609); + _la = _input.LA(1); + if ( !(_la==NODE || _la==VERTEX) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgesSynonymContext extends ParserRuleContext { + public TerminalNode EDGES() { return getToken(GQL_20240412Parser.EDGES, 0); } + public TerminalNode RELATIONSHIPS() { return getToken(GQL_20240412Parser.RELATIONSHIPS, 0); } + public EdgesSynonymContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgesSynonym; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgesSynonym(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgesSynonym(this); + } + } + + public final EdgesSynonymContext edgesSynonym() throws RecognitionException { + EdgesSynonymContext _localctx = new EdgesSynonymContext(_ctx, getState()); + enterRule(_localctx, 1142, RULE_edgesSynonym); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4611); + _la = _input.LA(1); + if ( !(_la==EDGES || _la==RELATIONSHIPS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EdgeSynonymContext extends ParserRuleContext { + public TerminalNode EDGE() { return getToken(GQL_20240412Parser.EDGE, 0); } + public TerminalNode RELATIONSHIP() { return getToken(GQL_20240412Parser.RELATIONSHIP, 0); } + public EdgeSynonymContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_edgeSynonym; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterEdgeSynonym(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitEdgeSynonym(this); + } + } + + public final EdgeSynonymContext edgeSynonym() throws RecognitionException { + EdgeSynonymContext _localctx = new EdgeSynonymContext(_ctx, getState()); + enterRule(_localctx, 1144, RULE_edgeSynonym); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4613); + _la = _input.LA(1); + if ( !(_la==EDGE || _la==RELATIONSHIP) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NonReservedWordsContext extends ParserRuleContext { + public TerminalNode ACYCLIC() { return getToken(GQL_20240412Parser.ACYCLIC, 0); } + public TerminalNode BINDING() { return getToken(GQL_20240412Parser.BINDING, 0); } + public TerminalNode BINDINGS() { return getToken(GQL_20240412Parser.BINDINGS, 0); } + public TerminalNode CONNECTING() { return getToken(GQL_20240412Parser.CONNECTING, 0); } + public TerminalNode DESTINATION() { return getToken(GQL_20240412Parser.DESTINATION, 0); } + public TerminalNode DIFFERENT() { return getToken(GQL_20240412Parser.DIFFERENT, 0); } + public TerminalNode DIRECTED() { return getToken(GQL_20240412Parser.DIRECTED, 0); } + public TerminalNode EDGE() { return getToken(GQL_20240412Parser.EDGE, 0); } + public TerminalNode EDGES() { return getToken(GQL_20240412Parser.EDGES, 0); } + public TerminalNode ELEMENT() { return getToken(GQL_20240412Parser.ELEMENT, 0); } + public TerminalNode ELEMENTS() { return getToken(GQL_20240412Parser.ELEMENTS, 0); } + public TerminalNode FIRST() { return getToken(GQL_20240412Parser.FIRST, 0); } + public TerminalNode GRAPH() { return getToken(GQL_20240412Parser.GRAPH, 0); } + public TerminalNode GROUPS() { return getToken(GQL_20240412Parser.GROUPS, 0); } + public TerminalNode KEEP() { return getToken(GQL_20240412Parser.KEEP, 0); } + public TerminalNode LABEL() { return getToken(GQL_20240412Parser.LABEL, 0); } + public TerminalNode LABELED() { return getToken(GQL_20240412Parser.LABELED, 0); } + public TerminalNode LABELS() { return getToken(GQL_20240412Parser.LABELS, 0); } + public TerminalNode LAST() { return getToken(GQL_20240412Parser.LAST, 0); } + public TerminalNode NFC() { return getToken(GQL_20240412Parser.NFC, 0); } + public TerminalNode NFD() { return getToken(GQL_20240412Parser.NFD, 0); } + public TerminalNode NFKC() { return getToken(GQL_20240412Parser.NFKC, 0); } + public TerminalNode NFKD() { return getToken(GQL_20240412Parser.NFKD, 0); } + public TerminalNode NO() { return getToken(GQL_20240412Parser.NO, 0); } + public TerminalNode NODE() { return getToken(GQL_20240412Parser.NODE, 0); } + public TerminalNode NORMALIZED() { return getToken(GQL_20240412Parser.NORMALIZED, 0); } + public TerminalNode ONLY() { return getToken(GQL_20240412Parser.ONLY, 0); } + public TerminalNode ORDINALITY() { return getToken(GQL_20240412Parser.ORDINALITY, 0); } + public TerminalNode PROPERTY() { return getToken(GQL_20240412Parser.PROPERTY, 0); } + public TerminalNode READ() { return getToken(GQL_20240412Parser.READ, 0); } + public TerminalNode RELATIONSHIP() { return getToken(GQL_20240412Parser.RELATIONSHIP, 0); } + public TerminalNode RELATIONSHIPS() { return getToken(GQL_20240412Parser.RELATIONSHIPS, 0); } + public TerminalNode REPEATABLE() { return getToken(GQL_20240412Parser.REPEATABLE, 0); } + public TerminalNode SHORTEST() { return getToken(GQL_20240412Parser.SHORTEST, 0); } + public TerminalNode SIMPLE() { return getToken(GQL_20240412Parser.SIMPLE, 0); } + public TerminalNode SOURCE() { return getToken(GQL_20240412Parser.SOURCE, 0); } + public TerminalNode TABLE() { return getToken(GQL_20240412Parser.TABLE, 0); } + public TerminalNode TEMP() { return getToken(GQL_20240412Parser.TEMP, 0); } + public TerminalNode TO() { return getToken(GQL_20240412Parser.TO, 0); } + public TerminalNode TRAIL() { return getToken(GQL_20240412Parser.TRAIL, 0); } + public TerminalNode TRANSACTION() { return getToken(GQL_20240412Parser.TRANSACTION, 0); } + public TerminalNode TYPE() { return getToken(GQL_20240412Parser.TYPE, 0); } + public TerminalNode UNDIRECTED() { return getToken(GQL_20240412Parser.UNDIRECTED, 0); } + public TerminalNode VERTEX() { return getToken(GQL_20240412Parser.VERTEX, 0); } + public TerminalNode WALK() { return getToken(GQL_20240412Parser.WALK, 0); } + public TerminalNode WITHOUT() { return getToken(GQL_20240412Parser.WITHOUT, 0); } + public TerminalNode WRITE() { return getToken(GQL_20240412Parser.WRITE, 0); } + public TerminalNode ZONE() { return getToken(GQL_20240412Parser.ZONE, 0); } + public NonReservedWordsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nonReservedWords; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).enterNonReservedWords(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_20240412Listener ) ((GQL_20240412Listener)listener).exitNonReservedWords(this); + } + } + + public final NonReservedWordsContext nonReservedWords() throws RecognitionException { + NonReservedWordsContext _localctx = new NonReservedWordsContext(_ctx, getState()); + enterRule(_localctx, 1146, RULE_nonReservedWords); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(4615); + _la = _input.LA(1); + if ( !((((_la - 277)) & ~0x3f) == 0 && ((1L << (_la - 277)) & 281474976710655L) != 0) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 91: + return compositeQueryExpression_sempred((CompositeQueryExpressionContext)_localctx, predIndex); + case 213: + return labelExpression_sempred((LabelExpressionContext)_localctx, predIndex); + case 232: + return simplifiedTerm_sempred((SimplifiedTermContext)_localctx, predIndex); + case 233: + return simplifiedFactorLow_sempred((SimplifiedFactorLowContext)_localctx, predIndex); + case 336: + return valueType_sempred((ValueTypeContext)_localctx, predIndex); + case 409: + return valueExpression_sempred((ValueExpressionContext)_localctx, predIndex); + case 421: + return valueExpressionPrimary_sempred((ValueExpressionPrimaryContext)_localctx, predIndex); + case 476: + return numericValueExpression_sempred((NumericValueExpressionContext)_localctx, predIndex); + } + return true; + } + private boolean compositeQueryExpression_sempred(CompositeQueryExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 2); + } + return true; + } + private boolean labelExpression_sempred(LabelExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 1: + return precpred(_ctx, 5); + case 2: + return precpred(_ctx, 4); + } + return true; + } + private boolean simplifiedTerm_sempred(SimplifiedTermContext _localctx, int predIndex) { + switch (predIndex) { + case 3: + return precpred(_ctx, 1); + } + return true; + } + private boolean simplifiedFactorLow_sempred(SimplifiedFactorLowContext _localctx, int predIndex) { + switch (predIndex) { + case 4: + return precpred(_ctx, 1); + } + return true; + } + private boolean valueType_sempred(ValueTypeContext _localctx, int predIndex) { + switch (predIndex) { + case 5: + return precpred(_ctx, 1); + case 6: + return precpred(_ctx, 7); + } + return true; + } + private boolean valueExpression_sempred(ValueExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 7: + return precpred(_ctx, 14); + case 8: + return precpred(_ctx, 13); + case 9: + return precpred(_ctx, 12); + case 10: + return precpred(_ctx, 9); + case 11: + return precpred(_ctx, 8); + case 12: + return precpred(_ctx, 10); + case 13: + return precpred(_ctx, 7); + case 14: + return precpred(_ctx, 5); + } + return true; + } + private boolean valueExpressionPrimary_sempred(ValueExpressionPrimaryContext _localctx, int predIndex) { + switch (predIndex) { + case 15: + return precpred(_ctx, 7); + } + return true; + } + private boolean numericValueExpression_sempred(NumericValueExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 16: + return precpred(_ctx, 4); + case 17: + return precpred(_ctx, 3); + } + return true; + } + + private static final String _serializedATNSegment0 = + "\u0004\u0001\u0187\u120a\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001"+ + "\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004"+ + "\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007"+ + "\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b"+ + "\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007"+ + "\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007"+ + "\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007"+ + "\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007"+ + "\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007"+ + "\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007"+ + "\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007"+ + "\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007"+ + "\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007"+ + ",\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u0007"+ + "1\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u0007"+ + "6\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007"+ + ";\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007"+ + "@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007"+ + "E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007"+ + "J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007"+ + "O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007"+ + "T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007"+ + "Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007"+ + "^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007"+ + "c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007"+ + "h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007"+ + "m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007q\u0002r\u0007"+ + "r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007v\u0002w\u0007"+ + "w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007{\u0002|\u0007"+ + "|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002\u0080\u0007"+ + "\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002\u0083\u0007"+ + "\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002\u0086\u0007"+ + "\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002\u0089\u0007"+ + "\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b\u0002\u008c\u0007"+ + "\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e\u0002\u008f\u0007"+ + "\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091\u0002\u0092\u0007"+ + "\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094\u0002\u0095\u0007"+ + "\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097\u0002\u0098\u0007"+ + "\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a\u0002\u009b\u0007"+ + "\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d\u0002\u009e\u0007"+ + "\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0\u0002\u00a1\u0007"+ + "\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3\u0002\u00a4\u0007"+ + "\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6\u0002\u00a7\u0007"+ + "\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9\u0002\u00aa\u0007"+ + "\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac\u0002\u00ad\u0007"+ + "\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af\u0002\u00b0\u0007"+ + "\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2\u0002\u00b3\u0007"+ + "\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5\u0002\u00b6\u0007"+ + "\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8\u0002\u00b9\u0007"+ + "\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb\u0002\u00bc\u0007"+ + "\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be\u0002\u00bf\u0007"+ + "\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1\u0002\u00c2\u0007"+ + "\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4\u0002\u00c5\u0007"+ + "\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7\u0002\u00c8\u0007"+ + "\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca\u0002\u00cb\u0007"+ + "\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd\u0002\u00ce\u0007"+ + "\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0\u0002\u00d1\u0007"+ + "\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3\u0002\u00d4\u0007"+ + "\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6\u0002\u00d7\u0007"+ + "\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9\u0002\u00da\u0007"+ + "\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc\u0002\u00dd\u0007"+ + "\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df\u0002\u00e0\u0007"+ + "\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2\u0002\u00e3\u0007"+ + "\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5\u0002\u00e6\u0007"+ + "\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8\u0002\u00e9\u0007"+ + "\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb\u0002\u00ec\u0007"+ + "\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee\u0002\u00ef\u0007"+ + "\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1\u0002\u00f2\u0007"+ + "\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4\u0002\u00f5\u0007"+ + "\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7\u0002\u00f8\u0007"+ + "\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa\u0002\u00fb\u0007"+ + "\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd\u0002\u00fe\u0007"+ + "\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100\u0002\u0101\u0007"+ + "\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103\u0002\u0104\u0007"+ + "\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106\u0002\u0107\u0007"+ + "\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109\u0002\u010a\u0007"+ + "\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c\u0002\u010d\u0007"+ + "\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f\u0002\u0110\u0007"+ + "\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112\u0002\u0113\u0007"+ + "\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115\u0002\u0116\u0007"+ + "\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118\u0002\u0119\u0007"+ + "\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b\u0002\u011c\u0007"+ + "\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e\u0002\u011f\u0007"+ + "\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121\u0002\u0122\u0007"+ + "\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124\u0002\u0125\u0007"+ + "\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127\u0002\u0128\u0007"+ + "\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a\u0002\u012b\u0007"+ + "\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d\u0002\u012e\u0007"+ + "\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130\u0002\u0131\u0007"+ + "\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133\u0002\u0134\u0007"+ + "\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136\u0002\u0137\u0007"+ + "\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139\u0002\u013a\u0007"+ + "\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c\u0002\u013d\u0007"+ + "\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f\u0002\u0140\u0007"+ + "\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142\u0002\u0143\u0007"+ + "\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145\u0002\u0146\u0007"+ + "\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148\u0002\u0149\u0007"+ + "\u0149\u0002\u014a\u0007\u014a\u0002\u014b\u0007\u014b\u0002\u014c\u0007"+ + "\u014c\u0002\u014d\u0007\u014d\u0002\u014e\u0007\u014e\u0002\u014f\u0007"+ + "\u014f\u0002\u0150\u0007\u0150\u0002\u0151\u0007\u0151\u0002\u0152\u0007"+ + "\u0152\u0002\u0153\u0007\u0153\u0002\u0154\u0007\u0154\u0002\u0155\u0007"+ + "\u0155\u0002\u0156\u0007\u0156\u0002\u0157\u0007\u0157\u0002\u0158\u0007"+ + "\u0158\u0002\u0159\u0007\u0159\u0002\u015a\u0007\u015a\u0002\u015b\u0007"+ + "\u015b\u0002\u015c\u0007\u015c\u0002\u015d\u0007\u015d\u0002\u015e\u0007"+ + "\u015e\u0002\u015f\u0007\u015f\u0002\u0160\u0007\u0160\u0002\u0161\u0007"+ + "\u0161\u0002\u0162\u0007\u0162\u0002\u0163\u0007\u0163\u0002\u0164\u0007"+ + "\u0164\u0002\u0165\u0007\u0165\u0002\u0166\u0007\u0166\u0002\u0167\u0007"+ + "\u0167\u0002\u0168\u0007\u0168\u0002\u0169\u0007\u0169\u0002\u016a\u0007"+ + "\u016a\u0002\u016b\u0007\u016b\u0002\u016c\u0007\u016c\u0002\u016d\u0007"+ + "\u016d\u0002\u016e\u0007\u016e\u0002\u016f\u0007\u016f\u0002\u0170\u0007"+ + "\u0170\u0002\u0171\u0007\u0171\u0002\u0172\u0007\u0172\u0002\u0173\u0007"+ + "\u0173\u0002\u0174\u0007\u0174\u0002\u0175\u0007\u0175\u0002\u0176\u0007"+ + "\u0176\u0002\u0177\u0007\u0177\u0002\u0178\u0007\u0178\u0002\u0179\u0007"+ + "\u0179\u0002\u017a\u0007\u017a\u0002\u017b\u0007\u017b\u0002\u017c\u0007"+ + "\u017c\u0002\u017d\u0007\u017d\u0002\u017e\u0007\u017e\u0002\u017f\u0007"+ + "\u017f\u0002\u0180\u0007\u0180\u0002\u0181\u0007\u0181\u0002\u0182\u0007"+ + "\u0182\u0002\u0183\u0007\u0183\u0002\u0184\u0007\u0184\u0002\u0185\u0007"+ + "\u0185\u0002\u0186\u0007\u0186\u0002\u0187\u0007\u0187\u0002\u0188\u0007"+ + "\u0188\u0002\u0189\u0007\u0189\u0002\u018a\u0007\u018a\u0002\u018b\u0007"+ + "\u018b\u0002\u018c\u0007\u018c\u0002\u018d\u0007\u018d\u0002\u018e\u0007"+ + "\u018e\u0002\u018f\u0007\u018f\u0002\u0190\u0007\u0190\u0002\u0191\u0007"+ + "\u0191\u0002\u0192\u0007\u0192\u0002\u0193\u0007\u0193\u0002\u0194\u0007"+ + "\u0194\u0002\u0195\u0007\u0195\u0002\u0196\u0007\u0196\u0002\u0197\u0007"+ + "\u0197\u0002\u0198\u0007\u0198\u0002\u0199\u0007\u0199\u0002\u019a\u0007"+ + "\u019a\u0002\u019b\u0007\u019b\u0002\u019c\u0007\u019c\u0002\u019d\u0007"+ + "\u019d\u0002\u019e\u0007\u019e\u0002\u019f\u0007\u019f\u0002\u01a0\u0007"+ + "\u01a0\u0002\u01a1\u0007\u01a1\u0002\u01a2\u0007\u01a2\u0002\u01a3\u0007"+ + "\u01a3\u0002\u01a4\u0007\u01a4\u0002\u01a5\u0007\u01a5\u0002\u01a6\u0007"+ + "\u01a6\u0002\u01a7\u0007\u01a7\u0002\u01a8\u0007\u01a8\u0002\u01a9\u0007"+ + "\u01a9\u0002\u01aa\u0007\u01aa\u0002\u01ab\u0007\u01ab\u0002\u01ac\u0007"+ + "\u01ac\u0002\u01ad\u0007\u01ad\u0002\u01ae\u0007\u01ae\u0002\u01af\u0007"+ + "\u01af\u0002\u01b0\u0007\u01b0\u0002\u01b1\u0007\u01b1\u0002\u01b2\u0007"+ + "\u01b2\u0002\u01b3\u0007\u01b3\u0002\u01b4\u0007\u01b4\u0002\u01b5\u0007"+ + "\u01b5\u0002\u01b6\u0007\u01b6\u0002\u01b7\u0007\u01b7\u0002\u01b8\u0007"+ + "\u01b8\u0002\u01b9\u0007\u01b9\u0002\u01ba\u0007\u01ba\u0002\u01bb\u0007"+ + "\u01bb\u0002\u01bc\u0007\u01bc\u0002\u01bd\u0007\u01bd\u0002\u01be\u0007"+ + "\u01be\u0002\u01bf\u0007\u01bf\u0002\u01c0\u0007\u01c0\u0002\u01c1\u0007"+ + "\u01c1\u0002\u01c2\u0007\u01c2\u0002\u01c3\u0007\u01c3\u0002\u01c4\u0007"+ + "\u01c4\u0002\u01c5\u0007\u01c5\u0002\u01c6\u0007\u01c6\u0002\u01c7\u0007"+ + "\u01c7\u0002\u01c8\u0007\u01c8\u0002\u01c9\u0007\u01c9\u0002\u01ca\u0007"+ + "\u01ca\u0002\u01cb\u0007\u01cb\u0002\u01cc\u0007\u01cc\u0002\u01cd\u0007"+ + "\u01cd\u0002\u01ce\u0007\u01ce\u0002\u01cf\u0007\u01cf\u0002\u01d0\u0007"+ + "\u01d0\u0002\u01d1\u0007\u01d1\u0002\u01d2\u0007\u01d2\u0002\u01d3\u0007"+ + "\u01d3\u0002\u01d4\u0007\u01d4\u0002\u01d5\u0007\u01d5\u0002\u01d6\u0007"+ + "\u01d6\u0002\u01d7\u0007\u01d7\u0002\u01d8\u0007\u01d8\u0002\u01d9\u0007"+ + "\u01d9\u0002\u01da\u0007\u01da\u0002\u01db\u0007\u01db\u0002\u01dc\u0007"+ + "\u01dc\u0002\u01dd\u0007\u01dd\u0002\u01de\u0007\u01de\u0002\u01df\u0007"+ + "\u01df\u0002\u01e0\u0007\u01e0\u0002\u01e1\u0007\u01e1\u0002\u01e2\u0007"+ + "\u01e2\u0002\u01e3\u0007\u01e3\u0002\u01e4\u0007\u01e4\u0002\u01e5\u0007"+ + "\u01e5\u0002\u01e6\u0007\u01e6\u0002\u01e7\u0007\u01e7\u0002\u01e8\u0007"+ + "\u01e8\u0002\u01e9\u0007\u01e9\u0002\u01ea\u0007\u01ea\u0002\u01eb\u0007"+ + "\u01eb\u0002\u01ec\u0007\u01ec\u0002\u01ed\u0007\u01ed\u0002\u01ee\u0007"+ + "\u01ee\u0002\u01ef\u0007\u01ef\u0002\u01f0\u0007\u01f0\u0002\u01f1\u0007"+ + "\u01f1\u0002\u01f2\u0007\u01f2\u0002\u01f3\u0007\u01f3\u0002\u01f4\u0007"+ + "\u01f4\u0002\u01f5\u0007\u01f5\u0002\u01f6\u0007\u01f6\u0002\u01f7\u0007"+ + "\u01f7\u0002\u01f8\u0007\u01f8\u0002\u01f9\u0007\u01f9\u0002\u01fa\u0007"+ + "\u01fa\u0002\u01fb\u0007\u01fb\u0002\u01fc\u0007\u01fc\u0002\u01fd\u0007"+ + "\u01fd\u0002\u01fe\u0007\u01fe\u0002\u01ff\u0007\u01ff\u0002\u0200\u0007"+ + "\u0200\u0002\u0201\u0007\u0201\u0002\u0202\u0007\u0202\u0002\u0203\u0007"+ + "\u0203\u0002\u0204\u0007\u0204\u0002\u0205\u0007\u0205\u0002\u0206\u0007"+ + "\u0206\u0002\u0207\u0007\u0207\u0002\u0208\u0007\u0208\u0002\u0209\u0007"+ + "\u0209\u0002\u020a\u0007\u020a\u0002\u020b\u0007\u020b\u0002\u020c\u0007"+ + "\u020c\u0002\u020d\u0007\u020d\u0002\u020e\u0007\u020e\u0002\u020f\u0007"+ + "\u020f\u0002\u0210\u0007\u0210\u0002\u0211\u0007\u0211\u0002\u0212\u0007"+ + "\u0212\u0002\u0213\u0007\u0213\u0002\u0214\u0007\u0214\u0002\u0215\u0007"+ + "\u0215\u0002\u0216\u0007\u0216\u0002\u0217\u0007\u0217\u0002\u0218\u0007"+ + "\u0218\u0002\u0219\u0007\u0219\u0002\u021a\u0007\u021a\u0002\u021b\u0007"+ + "\u021b\u0002\u021c\u0007\u021c\u0002\u021d\u0007\u021d\u0002\u021e\u0007"+ + "\u021e\u0002\u021f\u0007\u021f\u0002\u0220\u0007\u0220\u0002\u0221\u0007"+ + "\u0221\u0002\u0222\u0007\u0222\u0002\u0223\u0007\u0223\u0002\u0224\u0007"+ + "\u0224\u0002\u0225\u0007\u0225\u0002\u0226\u0007\u0226\u0002\u0227\u0007"+ + "\u0227\u0002\u0228\u0007\u0228\u0002\u0229\u0007\u0229\u0002\u022a\u0007"+ + "\u022a\u0002\u022b\u0007\u022b\u0002\u022c\u0007\u022c\u0002\u022d\u0007"+ + "\u022d\u0002\u022e\u0007\u022e\u0002\u022f\u0007\u022f\u0002\u0230\u0007"+ + "\u0230\u0002\u0231\u0007\u0231\u0002\u0232\u0007\u0232\u0002\u0233\u0007"+ + "\u0233\u0002\u0234\u0007\u0234\u0002\u0235\u0007\u0235\u0002\u0236\u0007"+ + "\u0236\u0002\u0237\u0007\u0237\u0002\u0238\u0007\u0238\u0002\u0239\u0007"+ + "\u0239\u0002\u023a\u0007\u023a\u0002\u023b\u0007\u023b\u0002\u023c\u0007"+ + "\u023c\u0002\u023d\u0007\u023d\u0001\u0000\u0001\u0000\u0003\u0000\u047f"+ + "\b\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0003"+ + "\u0000\u0486\b\u0000\u0001\u0001\u0001\u0001\u0003\u0001\u048a\b\u0001"+ + "\u0001\u0002\u0004\u0002\u048d\b\u0002\u000b\u0002\f\u0002\u048e\u0001"+ + "\u0002\u0004\u0002\u0492\b\u0002\u000b\u0002\f\u0002\u0493\u0001\u0002"+ + "\u0005\u0002\u0497\b\u0002\n\u0002\f\u0002\u049a\t\u0002\u0003\u0002\u049c"+ + "\b\u0002\u0001\u0003\u0001\u0003\u0001\u0003\u0003\u0003\u04a1\b\u0003"+ + "\u0003\u0003\u04a3\b\u0003\u0001\u0003\u0001\u0003\u0003\u0003\u04a7\b"+ + "\u0003\u0001\u0003\u0003\u0003\u04aa\b\u0003\u0001\u0004\u0001\u0004\u0003"+ + "\u0004\u04ae\b\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001"+ + "\u0005\u0001\u0005\u0003\u0005\u04b6\b\u0005\u0001\u0006\u0001\u0006\u0001"+ + "\u0006\u0001\u0007\u0003\u0007\u04bc\b\u0007\u0001\u0007\u0001\u0007\u0001"+ + "\u0007\u0001\b\u0001\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\n\u0001\n"+ + "\u0001\n\u0003\n\u04ca\b\n\u0001\u000b\u0003\u000b\u04cd\b\u000b\u0001"+ + "\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0003\f\u04d4\b\f\u0001"+ + "\f\u0001\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\u000e"+ + "\u0001\u000e\u0001\u000e\u0003\u000e\u04e1\b\u000e\u0001\u000e\u0001\u000e"+ + "\u0001\u000f\u0001\u000f\u0001\u000f\u0003\u000f\u04e8\b\u000f\u0001\u0010"+ + "\u0003\u0010\u04eb\b\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0003\u0010"+ + "\u04f0\b\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0003\u0010"+ + "\u04f6\b\u0010\u0001\u0010\u0003\u0010\u04f9\b\u0010\u0001\u0011\u0001"+ + "\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001"+ + "\u0013\u0003\u0013\u0503\b\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0005"+ + "\u0014\u0508\b\u0014\n\u0014\f\u0014\u050b\t\u0014\u0001\u0015\u0001\u0015"+ + "\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0003\u0016\u0513\b\u0016"+ + "\u0001\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019"+ + "\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b"+ + "\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"+ + "\u0001\u001d\u0003\u001d\u0528\b\u001d\u0001\u001d\u0003\u001d\u052b\b"+ + "\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0004\u001e\u0530\b\u001e\u000b"+ + "\u001e\f\u001e\u0531\u0001\u001f\u0001\u001f\u0001\u001f\u0003\u001f\u0537"+ + "\b\u001f\u0001 \u0001 \u0005 \u053b\b \n \f \u053e\t \u0001!\u0001!\u0001"+ + "!\u0003!\u0543\b!\u0001\"\u0001\"\u0003\"\u0547\b\"\u0001\"\u0001\"\u0001"+ + "#\u0003#\u054c\b#\u0001#\u0001#\u0001#\u0001#\u0001$\u0003$\u0553\b$\u0001"+ + "$\u0003$\u0556\b$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001&\u0003&\u055e"+ + "\b&\u0001&\u0001&\u0001&\u0001&\u0001\'\u0003\'\u0565\b\'\u0001\'\u0003"+ + "\'\u0568\b\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001)\u0001)\u0001"+ + ")\u0001)\u0001*\u0003*\u0574\b*\u0001*\u0003*\u0577\b*\u0001*\u0001*\u0001"+ + "+\u0001+\u0001+\u0001,\u0001,\u0001,\u0001,\u0003,\u0582\b,\u0001-\u0001"+ + "-\u0001.\u0001.\u0001.\u0001.\u0003.\u058a\b.\u0001/\u0001/\u00010\u0001"+ + "0\u00010\u00010\u00030\u0592\b0\u00011\u00041\u0595\b1\u000b1\f1\u0596"+ + "\u00012\u00012\u00032\u059b\b2\u00013\u00013\u00013\u00013\u00013\u0001"+ + "3\u00033\u05a3\b3\u00014\u00014\u00014\u00014\u00014\u00034\u05aa\b4\u0001"+ + "4\u00014\u00015\u00015\u00015\u00015\u00035\u05b2\b5\u00015\u00015\u0001"+ + "6\u00016\u00036\u05b8\b6\u00016\u00016\u00016\u00016\u00036\u05be\b6\u0001"+ + "6\u00016\u00016\u00036\u05c3\b6\u00016\u00036\u05c6\b6\u00016\u00016\u0001"+ + "6\u00036\u05cb\b6\u00016\u00036\u05ce\b6\u00017\u00037\u05d1\b7\u0001"+ + "7\u00017\u00037\u05d5\b7\u00017\u00037\u05d8\b7\u00018\u00018\u00038\u05dc"+ + "\b8\u00018\u00018\u00038\u05e0\b8\u00018\u00038\u05e3\b8\u00018\u0003"+ + "8\u05e6\b8\u00018\u00038\u05e9\b8\u00019\u00019\u00019\u0001:\u0001:\u0001"+ + ":\u0001:\u0001:\u0001;\u0001;\u0003;\u05f5\b;\u0001;\u0001;\u0001;\u0003"+ + ";\u05fa\b;\u0001;\u0001;\u0001<\u0001<\u0003<\u0600\b<\u0001<\u0001<\u0001"+ + "<\u0001<\u0001<\u0003<\u0607\b<\u0001<\u0001<\u0001<\u0003<\u060c\b<\u0001"+ + "<\u0001<\u0003<\u0610\b<\u0001<\u0001<\u0001<\u0001=\u0003=\u0616\b=\u0001"+ + "=\u0001=\u0001=\u0003=\u061b\b=\u0001=\u0003=\u061e\b=\u0001>\u0001>\u0001"+ + ">\u0001>\u0001?\u0001?\u0003?\u0626\b?\u0001?\u0001?\u0001?\u0001?\u0003"+ + "?\u062c\b?\u0001?\u0001?\u0001@\u0001@\u0001A\u0001A\u0003A\u0634\bA\u0001"+ + "B\u0001B\u0003B\u0638\bB\u0001C\u0001C\u0001C\u0003C\u063d\bC\u0001D\u0001"+ + "D\u0001D\u0001E\u0001E\u0003E\u0644\bE\u0001F\u0001F\u0003F\u0648\bF\u0001"+ + "G\u0005G\u064b\bG\nG\fG\u064e\tG\u0001G\u0004G\u0651\bG\u000bG\fG\u0652"+ + "\u0001H\u0001H\u0003H\u0657\bH\u0001I\u0001I\u0001I\u0001I\u0003I\u065d"+ + "\bI\u0001J\u0001J\u0001J\u0001K\u0001K\u0001K\u0001L\u0001L\u0001L\u0005"+ + "L\u0668\bL\nL\fL\u066b\tL\u0001M\u0001M\u0001M\u0003M\u0670\bM\u0001N"+ + "\u0001N\u0001N\u0001N\u0001N\u0001N\u0001O\u0001O\u0001O\u0001O\u0003"+ + "O\u067c\bO\u0001O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001"+ + "Q\u0001R\u0001R\u0001R\u0005R\u068a\bR\nR\fR\u068d\tR\u0001S\u0001S\u0003"+ + "S\u0691\bS\u0001T\u0001T\u0001T\u0001T\u0001U\u0001U\u0001U\u0001U\u0001"+ + "V\u0003V\u069c\bV\u0001V\u0001V\u0001V\u0001W\u0001W\u0001W\u0005W\u06a4"+ + "\bW\nW\fW\u06a7\tW\u0001X\u0001X\u0001Y\u0001Y\u0001Z\u0001Z\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001[\u0005[\u06b6\b[\n[\f[\u06b9\t[\u0001"+ + "\\\u0001\\\u0003\\\u06bd\b\\\u0001]\u0001]\u0003]\u06c1\b]\u0001]\u0001"+ + "]\u0003]\u06c5\b]\u0001]\u0001]\u0003]\u06c9\b]\u0003]\u06cb\b]\u0001"+ + "^\u0001^\u0001_\u0001_\u0003_\u06d1\b_\u0001`\u0005`\u06d4\b`\n`\f`\u06d7"+ + "\t`\u0001`\u0001`\u0001`\u0001`\u0003`\u06dd\b`\u0001a\u0001a\u0001a\u0001"+ + "b\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001"+ + "e\u0003e\u06ed\be\u0001e\u0001e\u0003e\u06f1\be\u0001f\u0004f\u06f4\b"+ + "f\u000bf\ff\u06f5\u0001g\u0001g\u0003g\u06fa\bg\u0001h\u0001h\u0001h\u0001"+ + "h\u0001h\u0003h\u0701\bh\u0001i\u0001i\u0003i\u0705\bi\u0001j\u0001j\u0001"+ + "j\u0001k\u0001k\u0001k\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001"+ + "l\u0001l\u0001l\u0003l\u0716\bl\u0001m\u0004m\u0719\bm\u000bm\fm\u071a"+ + "\u0001n\u0001n\u0001o\u0001o\u0001o\u0003o\u0722\bo\u0001p\u0001p\u0001"+ + "p\u0001q\u0001q\u0001q\u0005q\u072a\bq\nq\fq\u072d\tq\u0001r\u0001r\u0001"+ + "r\u0001r\u0001r\u0003r\u0734\br\u0001s\u0001s\u0001s\u0003s\u0739\bs\u0001"+ + "t\u0001t\u0001t\u0001u\u0001u\u0001u\u0001v\u0001v\u0001w\u0001w\u0001"+ + "w\u0001w\u0001x\u0001x\u0003x\u0749\bx\u0001x\u0003x\u074c\bx\u0001x\u0001"+ + "x\u0003x\u0750\bx\u0001x\u0003x\u0753\bx\u0001y\u0001y\u0003y\u0757\b"+ + "y\u0001y\u0003y\u075a\by\u0001z\u0001z\u0001z\u0001{\u0003{\u0760\b{\u0001"+ + "{\u0001{\u0003{\u0764\b{\u0001{\u0003{\u0767\b{\u0001{\u0001{\u0003{\u076b"+ + "\b{\u0001|\u0001|\u0001|\u0005|\u0770\b|\n|\f|\u0773\t|\u0001}\u0001}"+ + "\u0003}\u0777\b}\u0001~\u0001~\u0001~\u0001\u007f\u0001\u007f\u0003\u007f"+ + "\u077e\b\u007f\u0001\u007f\u0001\u007f\u0003\u007f\u0782\b\u007f\u0001"+ + "\u007f\u0001\u007f\u0003\u007f\u0786\b\u007f\u0001\u007f\u0003\u007f\u0789"+ + "\b\u007f\u0001\u007f\u0003\u007f\u078c\b\u007f\u0001\u007f\u0003\u007f"+ + "\u078f\b\u007f\u0001\u007f\u0003\u007f\u0792\b\u007f\u0001\u007f\u0003"+ + "\u007f\u0795\b\u007f\u0003\u007f\u0797\b\u007f\u0001\u0080\u0001\u0080"+ + "\u0001\u0080\u0005\u0080\u079c\b\u0080\n\u0080\f\u0080\u079f\t\u0080\u0001"+ + "\u0081\u0001\u0081\u0003\u0081\u07a3\b\u0081\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0001"+ + "\u0084\u0003\u0084\u07ae\b\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0005"+ + "\u0085\u07b3\b\u0085\n\u0085\f\u0085\u07b6\t\u0085\u0001\u0086\u0001\u0086"+ + "\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0003\u0087"+ + "\u07bf\b\u0087\u0001\u0088\u0003\u0088\u07c2\b\u0088\u0001\u0088\u0001"+ + "\u0088\u0001\u0088\u0001\u0089\u0001\u0089\u0003\u0089\u07c9\b\u0089\u0001"+ + "\u008a\u0003\u008a\u07cc\b\u008a\u0001\u008a\u0001\u008a\u0001\u008b\u0001"+ + "\u008b\u0003\u008b\u07d2\b\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001"+ + "\u008c\u0001\u008c\u0005\u008c\u07d9\b\u008c\n\u008c\f\u008c\u07dc\t\u008c"+ + "\u0001\u008d\u0001\u008d\u0001\u008d\u0003\u008d\u07e1\b\u008d\u0001\u008d"+ + "\u0001\u008d\u0003\u008d\u07e5\b\u008d\u0001\u008e\u0001\u008e\u0001\u008e"+ + "\u0005\u008e\u07ea\b\u008e\n\u008e\f\u008e\u07ed\t\u008e\u0001\u008f\u0001"+ + "\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0091\u0001\u0091\u0001"+ + "\u0091\u0001\u0092\u0001\u0092\u0003\u0092\u07f9\b\u0092\u0001\u0093\u0001"+ + "\u0093\u0001\u0093\u0001\u0094\u0001\u0094\u0001\u0094\u0005\u0094\u0801"+ + "\b\u0094\n\u0094\f\u0094\u0804\t\u0094\u0001\u0094\u0001\u0094\u0003\u0094"+ + "\u0808\b\u0094\u0001\u0095\u0001\u0095\u0001\u0096\u0003\u0096\u080d\b"+ + "\u0096\u0001\u0096\u0001\u0096\u0003\u0096\u0811\b\u0096\u0001\u0096\u0003"+ + "\u0096\u0814\b\u0096\u0001\u0097\u0001\u0097\u0003\u0097\u0818\b\u0097"+ + "\u0001\u0098\u0001\u0098\u0001\u0098\u0001\u0099\u0001\u0099\u0001\u0099"+ + "\u0001\u009a\u0001\u009a\u0003\u009a\u0822\b\u009a\u0001\u009a\u0003\u009a"+ + "\u0825\b\u009a\u0001\u009b\u0001\u009b\u0003\u009b\u0829\b\u009b\u0001"+ + "\u009b\u0003\u009b\u082c\b\u009b\u0001\u009c\u0001\u009c\u0001\u009c\u0005"+ + "\u009c\u0831\b\u009c\n\u009c\f\u009c\u0834\t\u009c\u0001\u009d\u0003\u009d"+ + "\u0837\b\u009d\u0001\u009d\u0003\u009d\u083a\b\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009f\u0001\u009f\u0001"+ + "\u009f\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a2\u0005\u00a2\u084c\b\u00a2\n\u00a2\f\u00a2"+ + "\u084f\t\u00a2\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0005\u00a3"+ + "\u0855\b\u00a3\n\u00a3\f\u00a3\u0858\t\u00a3\u0001\u00a4\u0001\u00a4\u0003"+ + "\u00a4\u085c\b\u00a4\u0001\u00a4\u0001\u00a4\u0001\u00a5\u0001\u00a5\u0001"+ + "\u00a5\u0003\u00a5\u0863\b\u00a5\u0001\u00a6\u0001\u00a6\u0003\u00a6\u0867"+ + "\b\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a7\u0001\u00a7\u0003\u00a7\u086d"+ + "\b\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a8\u0001\u00a8\u0003\u00a8\u0873"+ + "\b\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a9\u0001\u00a9\u0003\u00a9\u0879"+ + "\b\u00a9\u0001\u00a9\u0003\u00a9\u087c\b\u00a9\u0001\u00a9\u0003\u00a9"+ + "\u087f\b\u00a9\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0003\u00aa\u0884\b"+ + "\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0003\u00aa\u0889\b\u00aa\u0001"+ + "\u00aa\u0003\u00aa\u088c\b\u00aa\u0001\u00ab\u0001\u00ab\u0003\u00ab\u0890"+ + "\b\u00ab\u0001\u00ac\u0001\u00ac\u0003\u00ac\u0894\b\u00ac\u0001\u00ad"+ + "\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0003\u00ae\u089b\b\u00ae"+ + "\u0001\u00af\u0001\u00af\u0003\u00af\u089f\b\u00af\u0001\u00af\u0003\u00af"+ + "\u08a2\b\u00af\u0001\u00b0\u0001\u00b0\u0001\u00b1\u0001\u00b1\u0003\u00b1"+ + "\u08a8\b\u00b1\u0001\u00b1\u0003\u00b1\u08ab\b\u00b1\u0001\u00b1\u0003"+ + "\u00b1\u08ae\b\u00b1\u0001\u00b2\u0001\u00b2\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b3\u0003\u00b3\u08b6\b\u00b3\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0003\u00b4\u08bb\b\u00b4\u0001\u00b4\u0003\u00b4\u08be\b\u00b4"+ + "\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0003\u00b5\u08c3\b\u00b5\u0001\u00b5"+ + "\u0003\u00b5\u08c6\b\u00b5\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0003\u00b6"+ + "\u08cb\b\u00b6\u0001\u00b6\u0003\u00b6\u08ce\b\u00b6\u0001\u00b7\u0001"+ + "\u00b7\u0003\u00b7\u08d2\b\u00b7\u0001\u00b7\u0003\u00b7\u08d5\b\u00b7"+ + "\u0001\u00b7\u0003\u00b7\u08d8\b\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b8"+ + "\u0001\u00b8\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0004\u00b9"+ + "\u08e2\b\u00b9\u000b\u00b9\f\u00b9\u08e3\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0004\u00b9\u08e9\b\u00b9\u000b\u00b9\f\u00b9\u08ea\u0003\u00b9"+ + "\u08ed\b\u00b9\u0001\u00ba\u0004\u00ba\u08f0\b\u00ba\u000b\u00ba\f\u00ba"+ + "\u08f1\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bb\u0001\u00bb\u0003\u00bb\u08fb\b\u00bb\u0001\u00bc\u0001\u00bc\u0001"+ + "\u00bc\u0003\u00bc\u0900\b\u00bc\u0001\u00bd\u0001\u00bd\u0003\u00bd\u0904"+ + "\b\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00bf\u0003"+ + "\u00bf\u090b\b\u00bf\u0001\u00bf\u0003\u00bf\u090e\b\u00bf\u0001\u00bf"+ + "\u0003\u00bf\u0911\b\u00bf\u0001\u00c0\u0003\u00c0\u0914\b\u00c0\u0001"+ + "\u00c0\u0001\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c3\u0001\u00c3\u0003\u00c3\u091f\b\u00c3\u0001\u00c4\u0001"+ + "\u00c4\u0001\u00c4\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0005\u00c6\u092b\b\u00c6\n\u00c6\f\u00c6"+ + "\u092e\t\u00c6\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c8"+ + "\u0001\u00c8\u0003\u00c8\u0936\b\u00c8\u0001\u00c9\u0001\u00c9\u0001\u00c9"+ + "\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0003\u00c9\u093f\b\u00c9"+ + "\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00cb\u0001\u00cb"+ + "\u0001\u00cb\u0001\u00cb\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc"+ + "\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00ce\u0001\u00ce"+ + "\u0001\u00ce\u0001\u00ce\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+ + "\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d1\u0001\u00d1"+ + "\u0001\u00d2\u0001\u00d2\u0003\u00d2\u0961\b\u00d2\u0001\u00d2\u0003\u00d2"+ + "\u0964\b\u00d2\u0001\u00d2\u0001\u00d2\u0003\u00d2\u0968\b\u00d2\u0001"+ + "\u00d2\u0001\u00d2\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001"+ + "\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0003\u00d5\u097b"+ + "\b\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0005\u00d5\u0983\b\u00d5\n\u00d5\f\u00d5\u0986\t\u00d5\u0001\u00d6"+ + "\u0001\u00d6\u0001\u00d7\u0001\u00d7\u0001\u00d8\u0001\u00d8\u0001\u00d8"+ + "\u0001\u00d8\u0003\u00d8\u0990\b\u00d8\u0001\u00d9\u0001\u00d9\u0001\u00d9"+ + "\u0001\u00d9\u0001\u00da\u0001\u00da\u0003\u00da\u0998\b\u00da\u0001\u00da"+ + "\u0001\u00da\u0003\u00da\u099c\b\u00da\u0001\u00da\u0001\u00da\u0001\u00db"+ + "\u0001\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd"+ + "\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0003\u00dd\u09ab\b\u00dd"+ + "\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00df\u0001\u00df"+ + "\u0001\u00df\u0001\u00df\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e0"+ + "\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e2\u0001\u00e2"+ + "\u0001\u00e2\u0001\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3"+ + "\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001\u00e5\u0001\u00e5"+ + "\u0001\u00e5\u0003\u00e5\u09cc\b\u00e5\u0001\u00e6\u0001\u00e6\u0001\u00e6"+ + "\u0001\u00e6\u0001\u00e6\u0005\u00e6\u09d3\b\u00e6\n\u00e6\f\u00e6\u09d6"+ + "\t\u00e6\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e7\u0005"+ + "\u00e7\u09dd\b\u00e7\n\u00e7\f\u00e7\u09e0\t\u00e7\u0001\u00e8\u0001\u00e8"+ + "\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0005\u00e8\u09e7\b\u00e8\n\u00e8"+ + "\f\u00e8\u09ea\t\u00e8\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9"+ + "\u0001\u00e9\u0001\u00e9\u0005\u00e9\u09f2\b\u00e9\n\u00e9\f\u00e9\u09f5"+ + "\t\u00e9\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0003\u00ea\u09fa\b\u00ea"+ + "\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ec"+ + "\u0001\u00ed\u0001\u00ed\u0003\u00ed\u0a04\b\u00ed\u0001\u00ee\u0001\u00ee"+ + "\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0003\u00ee"+ + "\u0a0d\b\u00ee\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00f0\u0001\u00f0"+ + "\u0001\u00f0\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001\u00f2"+ + "\u0001\u00f2\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f4"+ + "\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001\u00f5\u0001\u00f5"+ + "\u0001\u00f6\u0001\u00f6\u0003\u00f6\u0a28\b\u00f6\u0001\u00f7\u0001\u00f7"+ + "\u0001\u00f7\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8"+ + "\u0003\u00f8\u0a32\b\u00f8\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00fa"+ + "\u0001\u00fa\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0005\u00fb"+ + "\u0a3d\b\u00fb\n\u00fb\f\u00fb\u0a40\t\u00fb\u0001\u00fc\u0001\u00fc\u0003"+ + "\u00fc\u0a44\b\u00fc\u0001\u00fd\u0001\u00fd\u0001\u00fe\u0001\u00fe\u0001"+ + "\u00fe\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u0100\u0001"+ + "\u0100\u0001\u0100\u0005\u0100\u0a52\b\u0100\n\u0100\f\u0100\u0a55\t\u0100"+ + "\u0001\u0100\u0003\u0100\u0a58\b\u0100\u0001\u0101\u0001\u0101\u0001\u0102"+ + "\u0001\u0102\u0001\u0102\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103"+ + "\u0001\u0104\u0001\u0104\u0001\u0104\u0005\u0104\u0a66\b\u0104\n\u0104"+ + "\f\u0104\u0a69\t\u0104\u0001\u0105\u0001\u0105\u0003\u0105\u0a6d\b\u0105"+ + "\u0001\u0105\u0003\u0105\u0a70\b\u0105\u0001\u0106\u0001\u0106\u0001\u0107"+ + "\u0001\u0107\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0003\u0108"+ + "\u0a7a\b\u0108\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u010a\u0001\u010a"+ + "\u0001\u010a\u0001\u010b\u0001\u010b\u0001\u010c\u0001\u010c\u0001\u010c"+ + "\u0003\u010c\u0a87\b\u010c\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d"+ + "\u0003\u010d\u0a8d\b\u010d\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010f"+ + "\u0001\u010f\u0001\u010f\u0001\u010f\u0003\u010f\u0a96\b\u010f\u0001\u0110"+ + "\u0001\u0110\u0001\u0111\u0001\u0111\u0003\u0111\u0a9c\b\u0111\u0001\u0112"+ + "\u0001\u0112\u0001\u0112\u0005\u0112\u0aa1\b\u0112\n\u0112\f\u0112\u0aa4"+ + "\t\u0112\u0001\u0112\u0001\u0112\u0003\u0112\u0aa8\b\u0112\u0001\u0113"+ + "\u0001\u0113\u0001\u0113\u0004\u0113\u0aad\b\u0113\u000b\u0113\f\u0113"+ + "\u0aae\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001"+ + "\u0114\u0003\u0114\u0ab7\b\u0114\u0001\u0115\u0003\u0115\u0aba\b\u0115"+ + "\u0001\u0115\u0001\u0115\u0001\u0116\u0001\u0116\u0001\u0117\u0001\u0117"+ + "\u0003\u0117\u0ac2\b\u0117\u0001\u0118\u0003\u0118\u0ac5\b\u0118\u0001"+ + "\u0118\u0001\u0118\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001"+ + "\u0119\u0003\u0119\u0ace\b\u0119\u0001\u011a\u0001\u011a\u0003\u011a\u0ad2"+ + "\b\u011a\u0001\u011b\u0003\u011b\u0ad5\b\u011b\u0001\u011b\u0001\u011b"+ + "\u0001\u011c\u0001\u011c\u0003\u011c\u0adb\b\u011c\u0001\u011c\u0001\u011c"+ + "\u0001\u011c\u0005\u011c\u0ae0\b\u011c\n\u011c\f\u011c\u0ae3\t\u011c\u0001"+ + "\u011c\u0001\u011c\u0001\u011c\u0004\u011c\u0ae8\b\u011c\u000b\u011c\f"+ + "\u011c\u0ae9\u0003\u011c\u0aec\b\u011c\u0001\u011d\u0001\u011d\u0001\u011e"+ + "\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011f\u0001\u011f\u0001\u0120"+ + "\u0001\u0120\u0001\u0120\u0005\u0120\u0af9\b\u0120\n\u0120\f\u0120\u0afc"+ + "\t\u0120\u0001\u0121\u0001\u0121\u0003\u0121\u0b00\b\u0121\u0001\u0122"+ + "\u0001\u0122\u0003\u0122\u0b04\b\u0122\u0001\u0123\u0001\u0123\u0003\u0123"+ + "\u0b08\b\u0123\u0001\u0123\u0001\u0123\u0003\u0123\u0b0c\b\u0123\u0001"+ + "\u0123\u0001\u0123\u0003\u0123\u0b10\b\u0123\u0001\u0123\u0003\u0123\u0b13"+ + "\b\u0123\u0001\u0123\u0001\u0123\u0001\u0124\u0001\u0124\u0003\u0124\u0b19"+ + "\b\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0003\u0124\u0b1e\b\u0124"+ + "\u0001\u0125\u0001\u0125\u0003\u0125\u0b22\b\u0125\u0001\u0125\u0003\u0125"+ + "\u0b25\b\u0125\u0001\u0126\u0001\u0126\u0003\u0126\u0b29\b\u0126\u0001"+ + "\u0126\u0003\u0126\u0b2c\b\u0126\u0001\u0127\u0001\u0127\u0001\u0128\u0001"+ + "\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0003\u0128\u0b35\b\u0128\u0001"+ + "\u0129\u0003\u0129\u0b38\b\u0129\u0001\u0129\u0001\u0129\u0001\u012a\u0001"+ + "\u012a\u0001\u012b\u0001\u012b\u0001\u012c\u0001\u012c\u0003\u012c\u0b42"+ + "\b\u012c\u0001\u012d\u0003\u012d\u0b45\b\u012d\u0001\u012d\u0001\u012d"+ + "\u0003\u012d\u0b49\b\u012d\u0001\u012d\u0001\u012d\u0003\u012d\u0b4d\b"+ + "\u012d\u0001\u012d\u0001\u012d\u0003\u012d\u0b51\b\u012d\u0001\u012e\u0001"+ + "\u012e\u0001\u012e\u0003\u012e\u0b56\b\u012e\u0001\u012e\u0001\u012e\u0001"+ + "\u012e\u0001\u012f\u0001\u012f\u0003\u012f\u0b5d\b\u012f\u0001\u012f\u0003"+ + "\u012f\u0b60\b\u012f\u0001\u0130\u0001\u0130\u0003\u0130\u0b64\b\u0130"+ + "\u0001\u0130\u0003\u0130\u0b67\b\u0130\u0001\u0131\u0001\u0131\u0001\u0131"+ + "\u0001\u0131\u0001\u0131\u0003\u0131\u0b6e\b\u0131\u0001\u0132\u0003\u0132"+ + "\u0b71\b\u0132\u0001\u0132\u0001\u0132\u0001\u0133\u0001\u0133\u0001\u0134"+ + "\u0001\u0134\u0001\u0135\u0001\u0135\u0003\u0135\u0b7b\b\u0135\u0001\u0136"+ + "\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0137\u0001\u0137\u0001\u0137"+ + "\u0001\u0137\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0139"+ + "\u0001\u0139\u0001\u0139\u0001\u0139\u0001\u013a\u0001\u013a\u0001\u013a"+ + "\u0001\u013a\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013c"+ + "\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0001\u013c\u0003\u013c"+ + "\u0b9b\b\u013c\u0001\u013c\u0003\u013c\u0b9e\b\u013c\u0001\u013d\u0001"+ + "\u013d\u0001\u013d\u0001\u013d\u0001\u013d\u0001\u013d\u0003\u013d\u0ba6"+ + "\b\u013d\u0001\u013d\u0003\u013d\u0ba9\b\u013d\u0001\u013e\u0001\u013e"+ + "\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u0140\u0001\u0140\u0003\u0140"+ + "\u0bb2\b\u0140\u0001\u0141\u0001\u0141\u0003\u0141\u0bb6\b\u0141\u0001"+ + "\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0001\u0142\u0001"+ + "\u0143\u0001\u0143\u0001\u0143\u0001\u0143\u0001\u0143\u0001\u0143\u0001"+ + "\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001"+ + "\u0145\u0001\u0145\u0001\u0146\u0001\u0146\u0001\u0147\u0001\u0147\u0001"+ + "\u0148\u0001\u0148\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001"+ + "\u0149\u0001\u0149\u0001\u0149\u0003\u0149\u0bd9\b\u0149\u0001\u014a\u0001"+ + "\u014a\u0001\u014a\u0005\u014a\u0bde\b\u014a\n\u014a\f\u014a\u0be1\t\u014a"+ + "\u0001\u014b\u0001\u014b\u0003\u014b\u0be5\b\u014b\u0001\u014b\u0001\u014b"+ + "\u0001\u014c\u0001\u014c\u0001\u014c\u0005\u014c\u0bec\b\u014c\n\u014c"+ + "\f\u014c\u0bef\t\u014c\u0001\u014d\u0001\u014d\u0003\u014d\u0bf3\b\u014d"+ + "\u0001\u014d\u0001\u014d\u0001\u014e\u0001\u014e\u0001\u014f\u0003\u014f"+ + "\u0bfa\b\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u0150\u0001\u0150"+ + "\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ + "\u0001\u0150\u0001\u0150\u0001\u0150\u0003\u0150\u0c0a\b\u0150\u0001\u0150"+ + "\u0003\u0150\u0c0d\b\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ + "\u0001\u0150\u0003\u0150\u0c14\b\u0150\u0001\u0150\u0003\u0150\u0c17\b"+ + "\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0003\u0150\u0c1c\b\u0150\u0001"+ + "\u0150\u0003\u0150\u0c1f\b\u0150\u0001\u0150\u0003\u0150\u0c22\b\u0150"+ + "\u0001\u0150\u0001\u0150\u0001\u0150\u0003\u0150\u0c27\b\u0150\u0001\u0150"+ + "\u0001\u0150\u0003\u0150\u0c2b\b\u0150\u0001\u0150\u0001\u0150\u0001\u0150"+ + "\u0001\u0150\u0005\u0150\u0c31\b\u0150\n\u0150\f\u0150\u0c34\t\u0150\u0001"+ + "\u0150\u0001\u0150\u0003\u0150\u0c38\b\u0150\u0001\u0150\u0001\u0150\u0001"+ + "\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001"+ + "\u0150\u0003\u0150\u0c43\b\u0150\u0001\u0150\u0003\u0150\u0c46\b\u0150"+ + "\u0005\u0150\u0c48\b\u0150\n\u0150\f\u0150\u0c4b\t\u0150\u0001\u0151\u0001"+ + "\u0151\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001"+ + "\u0152\u0001\u0152\u0003\u0152\u0c56\b\u0152\u0001\u0153\u0001\u0153\u0003"+ + "\u0153\u0c5a\b\u0153\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0001"+ + "\u0154\u0003\u0154\u0c61\b\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0003"+ + "\u0154\u0c66\b\u0154\u0001\u0154\u0003\u0154\u0c69\b\u0154\u0001\u0154"+ + "\u0001\u0154\u0001\u0154\u0001\u0154\u0001\u0154\u0003\u0154\u0c70\b\u0154"+ + "\u0001\u0154\u0003\u0154\u0c73\b\u0154\u0001\u0154\u0001\u0154\u0001\u0154"+ + "\u0001\u0154\u0001\u0154\u0003\u0154\u0c7a\b\u0154\u0001\u0154\u0003\u0154"+ + "\u0c7d\b\u0154\u0003\u0154\u0c7f\b\u0154\u0001\u0155\u0001\u0155\u0001"+ + "\u0155\u0001\u0155\u0001\u0155\u0003\u0155\u0c86\b\u0155\u0001\u0155\u0001"+ + "\u0155\u0001\u0155\u0003\u0155\u0c8b\b\u0155\u0001\u0155\u0003\u0155\u0c8e"+ + "\b\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0003"+ + "\u0155\u0c95\b\u0155\u0001\u0155\u0003\u0155\u0c98\b\u0155\u0001\u0155"+ + "\u0001\u0155\u0001\u0155\u0001\u0155\u0001\u0155\u0003\u0155\u0c9f\b\u0155"+ + "\u0001\u0155\u0003\u0155\u0ca2\b\u0155\u0003\u0155\u0ca4\b\u0155\u0001"+ + "\u0156\u0001\u0156\u0001\u0157\u0001\u0157\u0001\u0158\u0001\u0158\u0001"+ + "\u0159\u0001\u0159\u0003\u0159\u0cae\b\u0159\u0001\u015a\u0001\u015a\u0003"+ + "\u015a\u0cb2\b\u015a\u0001\u015b\u0001\u015b\u0003\u015b\u0cb6\b\u015b"+ + "\u0001\u015c\u0001\u015c\u0003\u015c\u0cba\b\u015c\u0001\u015c\u0001\u015c"+ + "\u0003\u015c\u0cbe\b\u015c\u0001\u015c\u0001\u015c\u0003\u015c\u0cc2\b"+ + "\u015c\u0001\u015c\u0001\u015c\u0003\u015c\u0cc6\b\u015c\u0001\u015c\u0001"+ + "\u015c\u0003\u015c\u0cca\b\u015c\u0001\u015c\u0001\u015c\u0003\u015c\u0cce"+ + "\b\u015c\u0001\u015c\u0001\u015c\u0003\u015c\u0cd2\b\u015c\u0001\u015c"+ + "\u0001\u015c\u0001\u015c\u0001\u015c\u0001\u015c\u0003\u015c\u0cd9\b\u015c"+ + "\u0001\u015c\u0003\u015c\u0cdc\b\u015c\u0001\u015c\u0001\u015c\u0003\u015c"+ + "\u0ce0\b\u015c\u0001\u015c\u0003\u015c\u0ce3\b\u015c\u0001\u015c\u0003"+ + "\u015c\u0ce6\b\u015c\u0001\u015d\u0001\u015d\u0003\u015d\u0cea\b\u015d"+ + "\u0001\u015d\u0001\u015d\u0003\u015d\u0cee\b\u015d\u0001\u015d\u0001\u015d"+ + "\u0003\u015d\u0cf2\b\u015d\u0001\u015d\u0001\u015d\u0003\u015d\u0cf6\b"+ + "\u015d\u0001\u015d\u0001\u015d\u0003\u015d\u0cfa\b\u015d\u0001\u015d\u0001"+ + "\u015d\u0003\u015d\u0cfe\b\u015d\u0001\u015d\u0001\u015d\u0003\u015d\u0d02"+ + "\b\u015d\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d\u0001\u015d\u0003"+ + "\u015d\u0d09\b\u015d\u0001\u015d\u0003\u015d\u0d0c\b\u015d\u0001\u015d"+ + "\u0001\u015d\u0003\u015d\u0d10\b\u015d\u0001\u015d\u0001\u015d\u0003\u015d"+ + "\u0d14\b\u015d\u0001\u015e\u0001\u015e\u0003\u015e\u0d18\b\u015e\u0001"+ + "\u015e\u0001\u015e\u0003\u015e\u0d1c\b\u015e\u0001\u015e\u0001\u015e\u0003"+ + "\u015e\u0d20\b\u015e\u0001\u015e\u0001\u015e\u0003\u015e\u0d24\b\u015e"+ + "\u0001\u015e\u0001\u015e\u0003\u015e\u0d28\b\u015e\u0001\u015e\u0001\u015e"+ + "\u0003\u015e\u0d2c\b\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0003\u015e"+ + "\u0d31\b\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e\u0001\u015e"+ + "\u0003\u015e\u0d38\b\u015e\u0001\u015e\u0003\u015e\u0d3b\b\u015e\u0001"+ + "\u015e\u0001\u015e\u0001\u015e\u0003\u015e\u0d40\b\u015e\u0003\u015e\u0d42"+ + "\b\u015e\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0001\u015f\u0003"+ + "\u015f\u0d49\b\u015f\u0001\u015f\u0001\u015f\u0003\u015f\u0d4d\b\u015f"+ + "\u0003\u015f\u0d4f\b\u015f\u0001\u0160\u0001\u0160\u0001\u0161\u0001\u0161"+ + "\u0001\u0162\u0001\u0162\u0003\u0162\u0d57\b\u0162\u0001\u0162\u0001\u0162"+ + "\u0003\u0162\u0d5b\b\u0162\u0001\u0162\u0001\u0162\u0003\u0162\u0d5f\b"+ + "\u0162\u0001\u0162\u0001\u0162\u0003\u0162\u0d63\b\u0162\u0001\u0162\u0001"+ + "\u0162\u0003\u0162\u0d67\b\u0162\u0001\u0162\u0001\u0162\u0001\u0162\u0001"+ + "\u0162\u0001\u0162\u0003\u0162\u0d6e\b\u0162\u0001\u0162\u0001\u0162\u0003"+ + "\u0162\u0d72\b\u0162\u0001\u0162\u0003\u0162\u0d75\b\u0162\u0001\u0162"+ + "\u0001\u0162\u0003\u0162\u0d79\b\u0162\u0001\u0162\u0001\u0162\u0003\u0162"+ + "\u0d7d\b\u0162\u0001\u0162\u0003\u0162\u0d80\b\u0162\u0003\u0162\u0d82"+ + "\b\u0162\u0001\u0163\u0001\u0163\u0003\u0163\u0d86\b\u0163\u0001\u0164"+ + "\u0001\u0164\u0001\u0164\u0001\u0164\u0001\u0164\u0003\u0164\u0d8d\b\u0164"+ + "\u0001\u0165\u0001\u0165\u0001\u0165\u0003\u0165\u0d92\b\u0165\u0001\u0165"+ + "\u0001\u0165\u0001\u0165\u0001\u0165\u0001\u0165\u0003\u0165\u0d99\b\u0165"+ + "\u0003\u0165\u0d9b\b\u0165\u0001\u0166\u0001\u0166\u0001\u0166\u0003\u0166"+ + "\u0da0\b\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0001\u0166\u0003\u0166"+ + "\u0da6\b\u0166\u0001\u0166\u0003\u0166\u0da9\b\u0166\u0003\u0166\u0dab"+ + "\b\u0166\u0001\u0167\u0001\u0167\u0003\u0167\u0daf\b\u0167\u0001\u0168"+ + "\u0001\u0168\u0001\u0168\u0003\u0168\u0db4\b\u0168\u0001\u0168\u0001\u0168"+ + "\u0001\u0168\u0001\u0168\u0001\u0168\u0003\u0168\u0dbb\b\u0168\u0003\u0168"+ + "\u0dbd\b\u0168\u0001\u0169\u0001\u0169\u0001\u0169\u0003\u0169\u0dc2\b"+ + "\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0003"+ + "\u0169\u0dc9\b\u0169\u0003\u0169\u0dcb\b\u0169\u0001\u016a\u0001\u016a"+ + "\u0001\u016a\u0001\u016a\u0001\u016a\u0003\u016a\u0dd2\b\u016a\u0001\u016b"+ + "\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016b\u0003\u016b"+ + "\u0dda\b\u016b\u0001\u016c\u0001\u016c\u0001\u016c\u0001\u016c\u0003\u016c"+ + "\u0de0\b\u016c\u0001\u016d\u0001\u016d\u0003\u016d\u0de4\b\u016d\u0001"+ + "\u016e\u0001\u016e\u0001\u016f\u0001\u016f\u0001\u016f\u0003\u016f\u0deb"+ + "\b\u016f\u0001\u0170\u0001\u0170\u0003\u0170\u0def\b\u0170\u0001\u0171"+ + "\u0003\u0171\u0df2\b\u0171\u0001\u0171\u0001\u0171\u0001\u0171\u0003\u0171"+ + "\u0df7\b\u0171\u0001\u0172\u0001\u0172\u0003\u0172\u0dfb\b\u0172\u0001"+ + "\u0172\u0001\u0172\u0003\u0172\u0dff\b\u0172\u0001\u0173\u0001\u0173\u0003"+ + "\u0173\u0e03\b\u0173\u0001\u0174\u0001\u0174\u0003\u0174\u0e07\b\u0174"+ + "\u0001\u0175\u0001\u0175\u0003\u0175\u0e0b\b\u0175\u0001\u0176\u0003\u0176"+ + "\u0e0e\b\u0176\u0001\u0176\u0001\u0176\u0003\u0176\u0e12\b\u0176\u0001"+ + "\u0177\u0001\u0177\u0003\u0177\u0e16\b\u0177\u0001\u0178\u0001\u0178\u0003"+ + "\u0178\u0e1a\b\u0178\u0001\u0179\u0003\u0179\u0e1d\b\u0179\u0001\u0179"+ + "\u0001\u0179\u0003\u0179\u0e21\b\u0179\u0001\u017a\u0001\u017a\u0003\u017a"+ + "\u0e25\b\u017a\u0001\u017b\u0003\u017b\u0e28\b\u017b\u0001\u017b\u0001"+ + "\u017b\u0001\u017c\u0001\u017c\u0001\u017d\u0003\u017d\u0e2f\b\u017d\u0001"+ + "\u017d\u0001\u017d\u0003\u017d\u0e33\b\u017d\u0001\u017d\u0003\u017d\u0e36"+ + "\b\u017d\u0001\u017d\u0001\u017d\u0003\u017d\u0e3a\b\u017d\u0003\u017d"+ + "\u0e3c\b\u017d\u0001\u017e\u0001\u017e\u0003\u017e\u0e40\b\u017e\u0001"+ + "\u017e\u0001\u017e\u0001\u017f\u0001\u017f\u0001\u017f\u0005\u017f\u0e47"+ + "\b\u017f\n\u017f\f\u017f\u0e4a\t\u017f\u0001\u0180\u0001\u0180\u0001\u0180"+ + "\u0001\u0181\u0001\u0181\u0003\u0181\u0e51\b\u0181\u0001\u0181\u0001\u0181"+ + "\u0001\u0182\u0001\u0182\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183"+ + "\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183\u0001\u0183\u0003\u0183"+ + "\u0e60\b\u0183\u0001\u0184\u0001\u0184\u0001\u0184\u0001\u0185\u0001\u0185"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186\u0001\u0186"+ + "\u0003\u0186\u0e79\b\u0186\u0001\u0187\u0001\u0187\u0001\u0187\u0001\u0188"+ + "\u0001\u0188\u0003\u0188\u0e80\b\u0188\u0001\u0188\u0001\u0188\u0001\u0189"+ + "\u0001\u0189\u0001\u0189\u0001\u018a\u0001\u018a\u0003\u018a\u0e89\b\u018a"+ + "\u0001\u018a\u0001\u018a\u0001\u018a\u0001\u018b\u0001\u018b\u0003\u018b"+ + "\u0e90\b\u018b\u0001\u018b\u0003\u018b\u0e93\b\u018b\u0001\u018b\u0001"+ + "\u018b\u0001\u018c\u0001\u018c\u0001\u018c\u0001\u018d\u0001\u018d\u0003"+ + "\u018d\u0e9c\b\u018d\u0001\u018d\u0001\u018d\u0001\u018e\u0001\u018e\u0001"+ + "\u018e\u0001\u018f\u0001\u018f\u0001\u018f\u0001\u0190\u0001\u0190\u0003"+ + "\u0190\u0ea8\b\u0190\u0001\u0190\u0001\u0190\u0003\u0190\u0eac\b\u0190"+ + "\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191\u0001\u0191"+ + "\u0003\u0191\u0eb4\b\u0191\u0001\u0192\u0001\u0192\u0001\u0193\u0001\u0193"+ + "\u0003\u0193\u0eba\b\u0193\u0001\u0193\u0001\u0193\u0001\u0193\u0001\u0193"+ + "\u0001\u0194\u0001\u0194\u0003\u0194\u0ec2\b\u0194\u0001\u0194\u0001\u0194"+ + "\u0001\u0194\u0001\u0194\u0001\u0195\u0001\u0195\u0001\u0196\u0001\u0196"+ + "\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0001\u0196\u0005\u0196"+ + "\u0ed1\b\u0196\n\u0196\f\u0196\u0ed4\t\u0196\u0001\u0196\u0001\u0196\u0001"+ + "\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001\u0197\u0001"+ + "\u0197\u0005\u0197\u0edf\b\u0197\n\u0197\f\u0197\u0ee2\t\u0197\u0001\u0197"+ + "\u0001\u0197\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198\u0001\u0198"+ + "\u0001\u0198\u0001\u0198\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199"+ + "\u0001\u0199\u0001\u0199\u0001\u0199\u0003\u0199\u0ef4\b\u0199\u0001\u0199"+ + "\u0001\u0199\u0001\u0199\u0003\u0199\u0ef9\b\u0199\u0001\u0199\u0001\u0199"+ + "\u0001\u0199\u0001\u0199\u0003\u0199\u0eff\b\u0199\u0001\u0199\u0001\u0199"+ + "\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199"+ + "\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199"+ + "\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199\u0003\u0199\u0f13\b\u0199"+ + "\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199\u0001\u0199\u0005\u0199"+ + "\u0f1a\b\u0199\n\u0199\f\u0199\u0f1d\t\u0199\u0001\u019a\u0001\u019a\u0001"+ + "\u019a\u0001\u019a\u0001\u019a\u0001\u019a\u0003\u019a\u0f25\b\u019a\u0001"+ + "\u019b\u0001\u019b\u0001\u019c\u0001\u019c\u0001\u019c\u0001\u019c\u0001"+ + "\u019c\u0003\u019c\u0f2e\b\u019c\u0001\u019d\u0001\u019d\u0001\u019d\u0001"+ + "\u019d\u0001\u019d\u0001\u019d\u0001\u019d\u0001\u019e\u0001\u019e\u0001"+ + "\u019e\u0001\u019e\u0001\u019e\u0001\u019f\u0001\u019f\u0001\u019f\u0001"+ + "\u019f\u0001\u019f\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a0\u0001"+ + "\u01a0\u0003\u01a0\u0f46\b\u01a0\u0001\u01a0\u0001\u01a0\u0001\u01a1\u0001"+ + "\u01a1\u0001\u01a1\u0001\u01a1\u0001\u01a1\u0003\u01a1\u0f4f\b\u01a1\u0001"+ + "\u01a1\u0001\u01a1\u0001\u01a2\u0001\u01a2\u0001\u01a3\u0001\u01a3\u0001"+ + "\u01a4\u0001\u01a4\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001"+ + "\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0001"+ + "\u01a5\u0003\u01a5\u0f64\b\u01a5\u0001\u01a5\u0001\u01a5\u0001\u01a5\u0005"+ + "\u01a5\u0f69\b\u01a5\n\u01a5\f\u01a5\u0f6c\t\u01a5\u0001\u01a6\u0001\u01a6"+ + "\u0001\u01a6\u0001\u01a6\u0001\u01a7\u0001\u01a7\u0003\u01a7\u0f74\b\u01a7"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0003\u01a8\u0f82\b\u01a8\u0001\u01a9\u0001\u01a9\u0003\u01a9\u0f86\b"+ + "\u01a9\u0001\u01aa\u0001\u01aa\u0003\u01aa\u0f8a\b\u01aa\u0001\u01ab\u0001"+ + "\u01ab\u0003\u01ab\u0f8e\b\u01ab\u0001\u01ac\u0001\u01ac\u0001\u01ad\u0001"+ + "\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ad\u0001\u01ae\u0001"+ + "\u01ae\u0001\u01ae\u0001\u01af\u0001\u01af\u0003\u01af\u0f9d\b\u01af\u0001"+ + "\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001"+ + "\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0001\u01b0\u0004"+ + "\u01b0\u0fab\b\u01b0\u000b\u01b0\f\u01b0\u0fac\u0001\u01b0\u0001\u01b0"+ + "\u0003\u01b0\u0fb1\b\u01b0\u0001\u01b1\u0001\u01b1\u0003\u01b1\u0fb5\b"+ + "\u01b1\u0001\u01b2\u0001\u01b2\u0001\u01b2\u0004\u01b2\u0fba\b\u01b2\u000b"+ + "\u01b2\f\u01b2\u0fbb\u0001\u01b2\u0003\u01b2\u0fbf\b\u01b2\u0001\u01b2"+ + "\u0001\u01b2\u0001\u01b3\u0001\u01b3\u0004\u01b3\u0fc5\b\u01b3\u000b\u01b3"+ + "\f\u01b3\u0fc6\u0001\u01b3\u0003\u01b3\u0fca\b\u01b3\u0001\u01b3\u0001"+ + "\u01b3\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001\u01b4\u0001"+ + "\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b5\u0001\u01b6\u0001"+ + "\u01b6\u0001\u01b6\u0001\u01b7\u0001\u01b7\u0003\u01b7\u0fdd\b\u01b7\u0001"+ + "\u01b8\u0001\u01b8\u0001\u01b8\u0005\u01b8\u0fe2\b\u01b8\n\u01b8\f\u01b8"+ + "\u0fe5\t\u01b8\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9"+ + "\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0001\u01b9\u0003\u01b9\u0ff0\b\u01b9"+ + "\u0001\u01ba\u0001\u01ba\u0003\u01ba\u0ff4\b\u01ba\u0001\u01bb\u0001\u01bb"+ + "\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc\u0001\u01bc"+ + "\u0001\u01bc\u0001\u01bd\u0001\u01bd\u0003\u01bd\u1001\b\u01bd\u0001\u01be"+ + "\u0001\u01be\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf\u0001\u01bf"+ + "\u0001\u01bf\u0003\u01bf\u100b\b\u01bf\u0001\u01c0\u0001\u01c0\u0001\u01c0"+ + "\u0003\u01c0\u1010\b\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c0\u0001\u01c1"+ + "\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1\u0001\u01c1"+ + "\u0001\u01c2\u0001\u01c2\u0001\u01c3\u0001\u01c3\u0001\u01c4\u0001\u01c4"+ + "\u0001\u01c5\u0003\u01c5\u1023\b\u01c5\u0001\u01c5\u0001\u01c5\u0001\u01c6"+ + "\u0001\u01c6\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c7\u0001\u01c7"+ + "\u0001\u01c8\u0001\u01c8\u0001\u01c9\u0001\u01c9\u0001\u01ca\u0001\u01ca"+ + "\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cb\u0001\u01cc"+ + "\u0001\u01cc\u0005\u01cc\u103b\b\u01cc\n\u01cc\f\u01cc\u103e\t\u01cc\u0001"+ + "\u01cd\u0001\u01cd\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001\u01ce\u0001"+ + "\u01ce\u0001\u01cf\u0001\u01cf\u0001\u01d0\u0001\u01d0\u0003\u01d0\u104b"+ + "\b\u01d0\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001\u01d1\u0001"+ + "\u01d1\u0001\u01d1\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001\u01d2\u0001"+ + "\u01d2\u0001\u01d3\u0001\u01d3\u0001\u01d4\u0003\u01d4\u105c\b\u01d4\u0001"+ + "\u01d4\u0001\u01d4\u0003\u01d4\u1060\b\u01d4\u0001\u01d4\u0001\u01d4\u0001"+ + "\u01d5\u0001\u01d5\u0001\u01d5\u0005\u01d5\u1067\b\u01d5\n\u01d5\f\u01d5"+ + "\u106a\t\u01d5\u0001\u01d6\u0001\u01d6\u0001\u01d7\u0003\u01d7\u106f\b"+ + "\u01d7\u0001\u01d7\u0001\u01d7\u0001\u01d8\u0001\u01d8\u0003\u01d8\u1075"+ + "\b\u01d8\u0001\u01d8\u0001\u01d8\u0001\u01d9\u0001\u01d9\u0001\u01d9\u0005"+ + "\u01d9\u107c\b\u01d9\n\u01d9\f\u01d9\u107f\t\u01d9\u0001\u01da\u0001\u01da"+ + "\u0001\u01da\u0001\u01da\u0001\u01db\u0001\u01db\u0001\u01dc\u0001\u01dc"+ + "\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0003\u01dc\u108c\b\u01dc\u0001\u01dc"+ + "\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0001\u01dc\u0005\u01dc"+ + "\u1094\b\u01dc\n\u01dc\f\u01dc\u1097\t\u01dc\u0001\u01dd\u0001\u01dd\u0001"+ + "\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001"+ + "\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0001\u01dd\u0003\u01dd\u10a6"+ + "\b\u01dd\u0001\u01de\u0001\u01de\u0001\u01de\u0003\u01de\u10ab\b\u01de"+ + "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df"+ + "\u0001\u01df\u0001\u01df\u0001\u01df\u0001\u01df\u0003\u01df\u10b7\b\u01df"+ + "\u0001\u01e0\u0001\u01e0\u0001\u01e1\u0001\u01e1\u0001\u01e1\u0001\u01e1"+ + "\u0001\u01e1\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e2\u0001\u01e2"+ + "\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e3\u0001\u01e4"+ + "\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e4\u0001\u01e5\u0001\u01e5"+ + "\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e5\u0001\u01e6"+ + "\u0001\u01e6\u0001\u01e7\u0001\u01e7\u0001\u01e8\u0001\u01e8\u0001\u01e8"+ + "\u0001\u01e8\u0001\u01e8\u0001\u01e9\u0001\u01e9\u0001\u01ea\u0001\u01ea"+ + "\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01ea\u0001\u01eb"+ + "\u0001\u01eb\u0001\u01ec\u0001\u01ec\u0001\u01ed\u0001\u01ed\u0001\u01ed"+ + "\u0001\u01ed\u0001\u01ed\u0001\u01ee\u0001\u01ee\u0001\u01ee\u0001\u01ee"+ + "\u0001\u01ee\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef\u0001\u01ef"+ + "\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0\u0001\u01f0"+ + "\u0001\u01f0\u0001\u01f1\u0001\u01f1\u0001\u01f2\u0001\u01f2\u0001\u01f3"+ + "\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f3\u0001\u01f4\u0001\u01f4"+ + "\u0001\u01f4\u0001\u01f4\u0001\u01f4\u0001\u01f5\u0001\u01f5\u0001\u01f5"+ + "\u0001\u01f5\u0001\u01f5\u0001\u01f6\u0001\u01f6\u0001\u01f7\u0001\u01f7"+ + "\u0001\u01f8\u0003\u01f8\u111a\b\u01f8\u0001\u01f8\u0003\u01f8\u111d\b"+ + "\u01f8\u0001\u01f8\u0003\u01f8\u1120\b\u01f8\u0001\u01f8\u0001\u01f8\u0001"+ + "\u01f9\u0001\u01f9\u0001\u01fa\u0001\u01fa\u0001\u01fb\u0001\u01fb\u0001"+ + "\u01fc\u0001\u01fc\u0001\u01fd\u0001\u01fd\u0001\u01fe\u0001\u01fe\u0001"+ + "\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0001\u01ff\u0003\u01ff\u1135"+ + "\b\u01ff\u0001\u0200\u0001\u0200\u0001\u0200\u0001\u0200\u0003\u0200\u113b"+ + "\b\u0200\u0001\u0200\u0003\u0200\u113e\b\u0200\u0001\u0201\u0001\u0201"+ + "\u0001\u0201\u0001\u0201\u0003\u0201\u1144\b\u0201\u0001\u0201\u0003\u0201"+ + "\u1147\b\u0201\u0001\u0202\u0001\u0202\u0001\u0202\u0003\u0202\u114c\b"+ + "\u0202\u0001\u0202\u0003\u0202\u114f\b\u0202\u0001\u0203\u0001\u0203\u0001"+ + "\u0203\u0001\u0203\u0003\u0203\u1155\b\u0203\u0001\u0203\u0003\u0203\u1158"+ + "\b\u0203\u0001\u0204\u0001\u0204\u0001\u0204\u0001\u0204\u0003\u0204\u115e"+ + "\b\u0204\u0001\u0204\u0003\u0204\u1161\b\u0204\u0001\u0205\u0001\u0205"+ + "\u0003\u0205\u1165\b\u0205\u0001\u0206\u0001\u0206\u0003\u0206\u1169\b"+ + "\u0206\u0001\u0207\u0001\u0207\u0003\u0207\u116d\b\u0207\u0001\u0208\u0001"+ + "\u0208\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0001\u0209\u0003"+ + "\u0209\u1176\b\u0209\u0001\u020a\u0001\u020a\u0001\u020a\u0001\u020a\u0001"+ + "\u020b\u0001\u020b\u0001\u020c\u0001\u020c\u0001\u020d\u0001\u020d\u0003"+ + "\u020d\u1182\b\u020d\u0001\u020e\u0001\u020e\u0001\u020e\u0001\u020e\u0001"+ + "\u020e\u0001\u020f\u0001\u020f\u0003\u020f\u118b\b\u020f\u0001\u0210\u0001"+ + "\u0210\u0001\u0211\u0001\u0211\u0001\u0212\u0001\u0212\u0001\u0213\u0001"+ + "\u0213\u0001\u0214\u0001\u0214\u0003\u0214\u1197\b\u0214\u0001\u0215\u0001"+ + "\u0215\u0001\u0216\u0001\u0216\u0001\u0217\u0001\u0217\u0001\u0218\u0001"+ + "\u0218\u0001\u0219\u0001\u0219\u0003\u0219\u11a3\b\u0219\u0001\u021a\u0001"+ + "\u021a\u0001\u021b\u0001\u021b\u0001\u021c\u0001\u021c\u0001\u021d\u0001"+ + "\u021d\u0001\u021e\u0001\u021e\u0001\u021f\u0001\u021f\u0001\u0220\u0001"+ + "\u0220\u0001\u0221\u0001\u0221\u0001\u0222\u0001\u0222\u0001\u0223\u0001"+ + "\u0223\u0003\u0223\u11b9\b\u0223\u0001\u0224\u0001\u0224\u0001\u0224\u0001"+ + "\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0001\u0224\u0003\u0224\u11c3"+ + "\b\u0224\u0001\u0225\u0001\u0225\u0001\u0225\u0003\u0225\u11c8\b\u0225"+ + "\u0001\u0226\u0001\u0226\u0001\u0226\u0001\u0227\u0001\u0227\u0001\u0227"+ + "\u0001\u0228\u0001\u0228\u0001\u0228\u0001\u0229\u0001\u0229\u0001\u022a"+ + "\u0001\u022a\u0001\u022b\u0001\u022b\u0001\u022b\u0003\u022b\u11da\b\u022b"+ + "\u0001\u022c\u0001\u022c\u0003\u022c\u11de\b\u022c\u0001\u022d\u0001\u022d"+ + "\u0001\u022e\u0001\u022e\u0001\u022f\u0001\u022f\u0003\u022f\u11e6\b\u022f"+ + "\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0230\u0001\u0230\u0003\u0230"+ + "\u11ed\b\u0230\u0001\u0231\u0001\u0231\u0001\u0232\u0001\u0232\u0001\u0233"+ + "\u0001\u0233\u0001\u0234\u0001\u0234\u0001\u0235\u0001\u0235\u0001\u0236"+ + "\u0001\u0236\u0001\u0237\u0001\u0237\u0001\u0238\u0001\u0238\u0001\u0238"+ + "\u0001\u0239\u0001\u0239\u0001\u023a\u0001\u023a\u0001\u023b\u0001\u023b"+ + "\u0001\u023c\u0001\u023c\u0001\u023d\u0001\u023d\u0001\u023d\u0000\b\u00b6"+ + "\u01aa\u01d0\u01d2\u02a0\u0332\u034a\u03b8\u023e\u0000\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"+ + "\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0"+ + "\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8"+ + "\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100"+ + "\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118"+ + "\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130"+ + "\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148"+ + "\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160"+ + "\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178"+ + "\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c\u018e\u0190"+ + "\u0192\u0194\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8"+ + "\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0"+ + "\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8"+ + "\u01da\u01dc\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f0"+ + "\u01f2\u01f4\u01f6\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208"+ + "\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220"+ + "\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u0234\u0236\u0238"+ + "\u023a\u023c\u023e\u0240\u0242\u0244\u0246\u0248\u024a\u024c\u024e\u0250"+ + "\u0252\u0254\u0256\u0258\u025a\u025c\u025e\u0260\u0262\u0264\u0266\u0268"+ + "\u026a\u026c\u026e\u0270\u0272\u0274\u0276\u0278\u027a\u027c\u027e\u0280"+ + "\u0282\u0284\u0286\u0288\u028a\u028c\u028e\u0290\u0292\u0294\u0296\u0298"+ + "\u029a\u029c\u029e\u02a0\u02a2\u02a4\u02a6\u02a8\u02aa\u02ac\u02ae\u02b0"+ + "\u02b2\u02b4\u02b6\u02b8\u02ba\u02bc\u02be\u02c0\u02c2\u02c4\u02c6\u02c8"+ + "\u02ca\u02cc\u02ce\u02d0\u02d2\u02d4\u02d6\u02d8\u02da\u02dc\u02de\u02e0"+ + "\u02e2\u02e4\u02e6\u02e8\u02ea\u02ec\u02ee\u02f0\u02f2\u02f4\u02f6\u02f8"+ + "\u02fa\u02fc\u02fe\u0300\u0302\u0304\u0306\u0308\u030a\u030c\u030e\u0310"+ + "\u0312\u0314\u0316\u0318\u031a\u031c\u031e\u0320\u0322\u0324\u0326\u0328"+ + "\u032a\u032c\u032e\u0330\u0332\u0334\u0336\u0338\u033a\u033c\u033e\u0340"+ + "\u0342\u0344\u0346\u0348\u034a\u034c\u034e\u0350\u0352\u0354\u0356\u0358"+ + "\u035a\u035c\u035e\u0360\u0362\u0364\u0366\u0368\u036a\u036c\u036e\u0370"+ + "\u0372\u0374\u0376\u0378\u037a\u037c\u037e\u0380\u0382\u0384\u0386\u0388"+ + "\u038a\u038c\u038e\u0390\u0392\u0394\u0396\u0398\u039a\u039c\u039e\u03a0"+ + "\u03a2\u03a4\u03a6\u03a8\u03aa\u03ac\u03ae\u03b0\u03b2\u03b4\u03b6\u03b8"+ + "\u03ba\u03bc\u03be\u03c0\u03c2\u03c4\u03c6\u03c8\u03ca\u03cc\u03ce\u03d0"+ + "\u03d2\u03d4\u03d6\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8"+ + "\u03ea\u03ec\u03ee\u03f0\u03f2\u03f4\u03f6\u03f8\u03fa\u03fc\u03fe\u0400"+ + "\u0402\u0404\u0406\u0408\u040a\u040c\u040e\u0410\u0412\u0414\u0416\u0418"+ + "\u041a\u041c\u041e\u0420\u0422\u0424\u0426\u0428\u042a\u042c\u042e\u0430"+ + "\u0432\u0434\u0436\u0438\u043a\u043c\u043e\u0440\u0442\u0444\u0446\u0448"+ + "\u044a\u044c\u044e\u0450\u0452\u0454\u0456\u0458\u045a\u045c\u045e\u0460"+ + "\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478"+ + "\u047a\u0000-\u0002\u000055\u00a5\u00a5\u0001\u0000AB\u0002\u0000OO\u0096"+ + "\u0096\u0002\u0000\u009f\u009f\u0130\u0130\u0004\u0000\u0115\u0115\u0137"+ + "\u0137\u013c\u013c\u0141\u0141\u0002\u0000\u00a6\u00a6\u00a8\u00a8\u0002"+ + "\u0000ff\u0122\u0122\u0002\u0000\u007f\u007f\u0168\u0168\u0006\u0000\u0150"+ + "\u0151\u0154\u0154\u015b\u015b\u0164\u0164\u0175\u0175\u0180\u0180\u0002"+ + "\u0000\u001c\u001dMN\u0002\u0000\u009f\u009f\u00c3\u00c3\u0003\u0000C"+ + "Cjj\u0177\u0177\u0001\u0000hi\u0002\u0000\u011b\u011b\u013f\u013f\u0002"+ + "\u0000\u013b\u013b\u015b\u015b\u0002\u0000\u013b\u013b\u0180\u0180\u0002"+ + "\u0000\u00d3\u00d3\u014c\u014c\u0001\u0000%&\u0001\u0000IJ\u0002\u0000"+ + "\u001a\u001a\u0085\u0085\u0006\u0000\u014f\u014f\u0157\u0157\u015a\u015a"+ + "\u016d\u016d\u016f\u016f\u0174\u0174\u0002\u0000\u0175\u0175\u0178\u0178"+ + "\u0002\u0000\u0167\u0167\u017f\u017f\u0002\u0000\u00a1\u00a1\u00e8\u00e8"+ + "\u0002\u0000\u0081\u0081\u00b5\u00b5\u0002\u0000\u008d\u008d\u00de\u00de"+ + "\u0003\u0000((\u008e\u008e\u00b7\u00b7\u0006\u0000!!88>>\u0090\u0091\u00c8"+ + "\u00c9\u00cb\u00cb\u0002\u0000\u0016\u0016PP\u0001\u0000\u00a9\u00aa\u0001"+ + "\u000034\u0002\u0000**\u009d\u009d\b\u0000\u0015\u0015\u001e\u001e ;"+ + "=KK\u00ae\u00ae\u00c0\u00c1\u00cc\u00cd\u0001\u000001\u0003\u0000\'\'"+ + "\u0080\u0080\u00d1\u00d1\u0001\u0000\u0128\u012b\u0001\u0000\u0004\u0005"+ + "\u0002\u0000GG\u00d0\u00d0\u0001\u0000\u0003\u0004\u0003\u0000\t\n\r\r"+ + "\u000f\u000f\u0001\u0000\u0010\u0013\u0002\u0000\u012d\u012d\u0140\u0140"+ + "\u0002\u0000\u011d\u011d\u0134\u0134\u0002\u0000\u011c\u011c\u0133\u0133"+ + "\u0001\u0000\u0115\u0144\u1289\u0000\u0485\u0001\u0000\u0000\u0000\u0002"+ + "\u0489\u0001\u0000\u0000\u0000\u0004\u049b\u0001\u0000\u0000\u0000\u0006"+ + "\u04a9\u0001\u0000\u0000\u0000\b\u04ad\u0001\u0000\u0000\u0000\n\u04af"+ + "\u0001\u0000\u0000\u0000\f\u04b7\u0001\u0000\u0000\u0000\u000e\u04bb\u0001"+ + "\u0000\u0000\u0000\u0010\u04c0\u0001\u0000\u0000\u0000\u0012\u04c4\u0001"+ + "\u0000\u0000\u0000\u0014\u04c9\u0001\u0000\u0000\u0000\u0016\u04cc\u0001"+ + "\u0000\u0000\u0000\u0018\u04d3\u0001\u0000\u0000\u0000\u001a\u04d9\u0001"+ + "\u0000\u0000\u0000\u001c\u04e0\u0001\u0000\u0000\u0000\u001e\u04e4\u0001"+ + "\u0000\u0000\u0000 \u04f8\u0001\u0000\u0000\u0000\"\u04fa\u0001\u0000"+ + "\u0000\u0000$\u04fd\u0001\u0000\u0000\u0000&\u04ff\u0001\u0000\u0000\u0000"+ + "(\u0504\u0001\u0000\u0000\u0000*\u050c\u0001\u0000\u0000\u0000,\u0512"+ + "\u0001\u0000\u0000\u0000.\u0514\u0001\u0000\u0000\u00000\u0516\u0001\u0000"+ + "\u0000\u00002\u0518\u0001\u0000\u0000\u00004\u051c\u0001\u0000\u0000\u0000"+ + "6\u051e\u0001\u0000\u0000\u00008\u0522\u0001\u0000\u0000\u0000:\u0527"+ + "\u0001\u0000\u0000\u0000<\u052f\u0001\u0000\u0000\u0000>\u0536\u0001\u0000"+ + "\u0000\u0000@\u0538\u0001\u0000\u0000\u0000B\u0542\u0001\u0000\u0000\u0000"+ + "D\u0544\u0001\u0000\u0000\u0000F\u054b\u0001\u0000\u0000\u0000H\u0555"+ + "\u0001\u0000\u0000\u0000J\u0559\u0001\u0000\u0000\u0000L\u055d\u0001\u0000"+ + "\u0000\u0000N\u0567\u0001\u0000\u0000\u0000P\u056b\u0001\u0000\u0000\u0000"+ + "R\u056e\u0001\u0000\u0000\u0000T\u0576\u0001\u0000\u0000\u0000V\u057a"+ + "\u0001\u0000\u0000\u0000X\u0581\u0001\u0000\u0000\u0000Z\u0583\u0001\u0000"+ + "\u0000\u0000\\\u0589\u0001\u0000\u0000\u0000^\u058b\u0001\u0000\u0000"+ + "\u0000`\u0591\u0001\u0000\u0000\u0000b\u0594\u0001\u0000\u0000\u0000d"+ + "\u059a\u0001\u0000\u0000\u0000f\u05a2\u0001\u0000\u0000\u0000h\u05a4\u0001"+ + "\u0000\u0000\u0000j\u05ad\u0001\u0000\u0000\u0000l\u05b5\u0001\u0000\u0000"+ + "\u0000n\u05d0\u0001\u0000\u0000\u0000p\u05e8\u0001\u0000\u0000\u0000r"+ + "\u05ea\u0001\u0000\u0000\u0000t\u05ed\u0001\u0000\u0000\u0000v\u05f2\u0001"+ + "\u0000\u0000\u0000x\u05fd\u0001\u0000\u0000\u0000z\u061d\u0001\u0000\u0000"+ + "\u0000|\u061f\u0001\u0000\u0000\u0000~\u0623\u0001\u0000\u0000\u0000\u0080"+ + "\u062f\u0001\u0000\u0000\u0000\u0082\u0633\u0001\u0000\u0000\u0000\u0084"+ + "\u0637\u0001\u0000\u0000\u0000\u0086\u0639\u0001\u0000\u0000\u0000\u0088"+ + "\u063e\u0001\u0000\u0000\u0000\u008a\u0643\u0001\u0000\u0000\u0000\u008c"+ + "\u0645\u0001\u0000\u0000\u0000\u008e\u064c\u0001\u0000\u0000\u0000\u0090"+ + "\u0656\u0001\u0000\u0000\u0000\u0092\u065c\u0001\u0000\u0000\u0000\u0094"+ + "\u065e\u0001\u0000\u0000\u0000\u0096\u0661\u0001\u0000\u0000\u0000\u0098"+ + "\u0664\u0001\u0000\u0000\u0000\u009a\u066f\u0001\u0000\u0000\u0000\u009c"+ + "\u0671\u0001\u0000\u0000\u0000\u009e\u0677\u0001\u0000\u0000\u0000\u00a0"+ + "\u067f\u0001\u0000\u0000\u0000\u00a2\u0683\u0001\u0000\u0000\u0000\u00a4"+ + "\u0686\u0001\u0000\u0000\u0000\u00a6\u0690\u0001\u0000\u0000\u0000\u00a8"+ + "\u0692\u0001\u0000\u0000\u0000\u00aa\u0696\u0001\u0000\u0000\u0000\u00ac"+ + "\u069b\u0001\u0000\u0000\u0000\u00ae\u06a0\u0001\u0000\u0000\u0000\u00b0"+ + "\u06a8\u0001\u0000\u0000\u0000\u00b2\u06aa\u0001\u0000\u0000\u0000\u00b4"+ + "\u06ac\u0001\u0000\u0000\u0000\u00b6\u06ae\u0001\u0000\u0000\u0000\u00b8"+ + "\u06bc\u0001\u0000\u0000\u0000\u00ba\u06ca\u0001\u0000\u0000\u0000\u00bc"+ + "\u06cc\u0001\u0000\u0000\u0000\u00be\u06d0\u0001\u0000\u0000\u0000\u00c0"+ + "\u06dc\u0001\u0000\u0000\u0000\u00c2\u06de\u0001\u0000\u0000\u0000\u00c4"+ + "\u06e1\u0001\u0000\u0000\u0000\u00c6\u06e5\u0001\u0000\u0000\u0000\u00c8"+ + "\u06e8\u0001\u0000\u0000\u0000\u00ca\u06f0\u0001\u0000\u0000\u0000\u00cc"+ + "\u06f3\u0001\u0000\u0000\u0000\u00ce\u06f9\u0001\u0000\u0000\u0000\u00d0"+ + "\u0700\u0001\u0000\u0000\u0000\u00d2\u0704\u0001\u0000\u0000\u0000\u00d4"+ + "\u0706\u0001\u0000\u0000\u0000\u00d6\u0709\u0001\u0000\u0000\u0000\u00d8"+ + "\u0715\u0001\u0000\u0000\u0000\u00da\u0718\u0001\u0000\u0000\u0000\u00dc"+ + "\u071c\u0001\u0000\u0000\u0000\u00de\u071e\u0001\u0000\u0000\u0000\u00e0"+ + "\u0723\u0001\u0000\u0000\u0000\u00e2\u0726\u0001\u0000\u0000\u0000\u00e4"+ + "\u0733\u0001\u0000\u0000\u0000\u00e6\u0735\u0001\u0000\u0000\u0000\u00e8"+ + "\u073a\u0001\u0000\u0000\u0000\u00ea\u073d\u0001\u0000\u0000\u0000\u00ec"+ + "\u0740\u0001\u0000\u0000\u0000\u00ee\u0742\u0001\u0000\u0000\u0000\u00f0"+ + "\u0752\u0001\u0000\u0000\u0000\u00f2\u0759\u0001\u0000\u0000\u0000\u00f4"+ + "\u075b\u0001\u0000\u0000\u0000\u00f6\u076a\u0001\u0000\u0000\u0000\u00f8"+ + "\u076c\u0001\u0000\u0000\u0000\u00fa\u0774\u0001\u0000\u0000\u0000\u00fc"+ + "\u0778\u0001\u0000\u0000\u0000\u00fe\u077b\u0001\u0000\u0000\u0000\u0100"+ + "\u0798\u0001\u0000\u0000\u0000\u0102\u07a0\u0001\u0000\u0000\u0000\u0104"+ + "\u07a4\u0001\u0000\u0000\u0000\u0106\u07a7\u0001\u0000\u0000\u0000\u0108"+ + "\u07aa\u0001\u0000\u0000\u0000\u010a\u07af\u0001\u0000\u0000\u0000\u010c"+ + "\u07b7\u0001\u0000\u0000\u0000\u010e\u07be\u0001\u0000\u0000\u0000\u0110"+ + "\u07c1\u0001\u0000\u0000\u0000\u0112\u07c8\u0001\u0000\u0000\u0000\u0114"+ + "\u07cb\u0001\u0000\u0000\u0000\u0116\u07cf\u0001\u0000\u0000\u0000\u0118"+ + "\u07d5\u0001\u0000\u0000\u0000\u011a\u07dd\u0001\u0000\u0000\u0000\u011c"+ + "\u07e6\u0001\u0000\u0000\u0000\u011e\u07ee\u0001\u0000\u0000\u0000\u0120"+ + "\u07f0\u0001\u0000\u0000\u0000\u0122\u07f3\u0001\u0000\u0000\u0000\u0124"+ + "\u07f6\u0001\u0000\u0000\u0000\u0126\u07fa\u0001\u0000\u0000\u0000\u0128"+ + "\u0807\u0001\u0000\u0000\u0000\u012a\u0809\u0001\u0000\u0000\u0000\u012c"+ + "\u080c\u0001\u0000\u0000\u0000\u012e\u0817\u0001\u0000\u0000\u0000\u0130"+ + "\u0819\u0001\u0000\u0000\u0000\u0132\u081c\u0001\u0000\u0000\u0000\u0134"+ + "\u0824\u0001\u0000\u0000\u0000\u0136\u082b\u0001\u0000\u0000\u0000\u0138"+ + "\u082d\u0001\u0000\u0000\u0000\u013a\u0836\u0001\u0000\u0000\u0000\u013c"+ + "\u083d\u0001\u0000\u0000\u0000\u013e\u0840\u0001\u0000\u0000\u0000\u0140"+ + "\u0843\u0001\u0000\u0000\u0000\u0142\u0846\u0001\u0000\u0000\u0000\u0144"+ + "\u0848\u0001\u0000\u0000\u0000\u0146\u0850\u0001\u0000\u0000\u0000\u0148"+ + "\u0859\u0001\u0000\u0000\u0000\u014a\u0862\u0001\u0000\u0000\u0000\u014c"+ + "\u0864\u0001\u0000\u0000\u0000\u014e\u086a\u0001\u0000\u0000\u0000\u0150"+ + "\u0870\u0001\u0000\u0000\u0000\u0152\u087e\u0001\u0000\u0000\u0000\u0154"+ + "\u088b\u0001\u0000\u0000\u0000\u0156\u088f\u0001\u0000\u0000\u0000\u0158"+ + "\u0891\u0001\u0000\u0000\u0000\u015a\u0895\u0001\u0000\u0000\u0000\u015c"+ + "\u089a\u0001\u0000\u0000\u0000\u015e\u089c\u0001\u0000\u0000\u0000\u0160"+ + "\u08a3\u0001\u0000\u0000\u0000\u0162\u08a5\u0001\u0000\u0000\u0000\u0164"+ + "\u08af\u0001\u0000\u0000\u0000\u0166\u08b5\u0001\u0000\u0000\u0000\u0168"+ + "\u08b7\u0001\u0000\u0000\u0000\u016a\u08bf\u0001\u0000\u0000\u0000\u016c"+ + "\u08c7\u0001\u0000\u0000\u0000\u016e\u08cf\u0001\u0000\u0000\u0000\u0170"+ + "\u08db\u0001\u0000\u0000\u0000\u0172\u08ec\u0001\u0000\u0000\u0000\u0174"+ + "\u08ef\u0001\u0000\u0000\u0000\u0176\u08fa\u0001\u0000\u0000\u0000\u0178"+ + "\u08ff\u0001\u0000\u0000\u0000\u017a\u0903\u0001\u0000\u0000\u0000\u017c"+ + "\u0905\u0001\u0000\u0000\u0000\u017e\u090a\u0001\u0000\u0000\u0000\u0180"+ + "\u0913\u0001\u0000\u0000\u0000\u0182\u0917\u0001\u0000\u0000\u0000\u0184"+ + "\u091a\u0001\u0000\u0000\u0000\u0186\u091e\u0001\u0000\u0000\u0000\u0188"+ + "\u0920\u0001\u0000\u0000\u0000\u018a\u0923\u0001\u0000\u0000\u0000\u018c"+ + "\u0927\u0001\u0000\u0000\u0000\u018e\u092f\u0001\u0000\u0000\u0000\u0190"+ + "\u0935\u0001\u0000\u0000\u0000\u0192\u093e\u0001\u0000\u0000\u0000\u0194"+ + "\u0940\u0001\u0000\u0000\u0000\u0196\u0944\u0001\u0000\u0000\u0000\u0198"+ + "\u0948\u0001\u0000\u0000\u0000\u019a\u094c\u0001\u0000\u0000\u0000\u019c"+ + "\u0950\u0001\u0000\u0000\u0000\u019e\u0954\u0001\u0000\u0000\u0000\u01a0"+ + "\u0958\u0001\u0000\u0000\u0000\u01a2\u095c\u0001\u0000\u0000\u0000\u01a4"+ + "\u095e\u0001\u0000\u0000\u0000\u01a6\u096b\u0001\u0000\u0000\u0000\u01a8"+ + "\u096e\u0001\u0000\u0000\u0000\u01aa\u097a\u0001\u0000\u0000\u0000\u01ac"+ + "\u0987\u0001\u0000\u0000\u0000\u01ae\u0989\u0001\u0000\u0000\u0000\u01b0"+ + "\u098f\u0001\u0000\u0000\u0000\u01b2\u0991\u0001\u0000\u0000\u0000\u01b4"+ + "\u0995\u0001\u0000\u0000\u0000\u01b6\u099f\u0001\u0000\u0000\u0000\u01b8"+ + "\u09a1\u0001\u0000\u0000\u0000\u01ba\u09aa\u0001\u0000\u0000\u0000\u01bc"+ + "\u09ac\u0001\u0000\u0000\u0000\u01be\u09b0\u0001\u0000\u0000\u0000\u01c0"+ + "\u09b4\u0001\u0000\u0000\u0000\u01c2\u09b8\u0001\u0000\u0000\u0000\u01c4"+ + "\u09bc\u0001\u0000\u0000\u0000\u01c6\u09c0\u0001\u0000\u0000\u0000\u01c8"+ + "\u09c4\u0001\u0000\u0000\u0000\u01ca\u09cb\u0001\u0000\u0000\u0000\u01cc"+ + "\u09cd\u0001\u0000\u0000\u0000\u01ce\u09d7\u0001\u0000\u0000\u0000\u01d0"+ + "\u09e1\u0001\u0000\u0000\u0000\u01d2\u09eb\u0001\u0000\u0000\u0000\u01d4"+ + "\u09f9\u0001\u0000\u0000\u0000\u01d6\u09fb\u0001\u0000\u0000\u0000\u01d8"+ + "\u09fe\u0001\u0000\u0000\u0000\u01da\u0a03\u0001\u0000\u0000\u0000\u01dc"+ + "\u0a0c\u0001\u0000\u0000\u0000\u01de\u0a0e\u0001\u0000\u0000\u0000\u01e0"+ + "\u0a11\u0001\u0000\u0000\u0000\u01e2\u0a14\u0001\u0000\u0000\u0000\u01e4"+ + "\u0a17\u0001\u0000\u0000\u0000\u01e6\u0a1a\u0001\u0000\u0000\u0000\u01e8"+ + "\u0a1e\u0001\u0000\u0000\u0000\u01ea\u0a22\u0001\u0000\u0000\u0000\u01ec"+ + "\u0a27\u0001\u0000\u0000\u0000\u01ee\u0a29\u0001\u0000\u0000\u0000\u01f0"+ + "\u0a31\u0001\u0000\u0000\u0000\u01f2\u0a33\u0001\u0000\u0000\u0000\u01f4"+ + "\u0a36\u0001\u0000\u0000\u0000\u01f6\u0a39\u0001\u0000\u0000\u0000\u01f8"+ + "\u0a41\u0001\u0000\u0000\u0000\u01fa\u0a45\u0001\u0000\u0000\u0000\u01fc"+ + "\u0a47\u0001\u0000\u0000\u0000\u01fe\u0a4a\u0001\u0000\u0000\u0000\u0200"+ + "\u0a57\u0001\u0000\u0000\u0000\u0202\u0a59\u0001\u0000\u0000\u0000\u0204"+ + "\u0a5b\u0001\u0000\u0000\u0000\u0206\u0a5e\u0001\u0000\u0000\u0000\u0208"+ + "\u0a62\u0001\u0000\u0000\u0000\u020a\u0a6a\u0001\u0000\u0000\u0000\u020c"+ + "\u0a71\u0001\u0000\u0000\u0000\u020e\u0a73\u0001\u0000\u0000\u0000\u0210"+ + "\u0a79\u0001\u0000\u0000\u0000\u0212\u0a7b\u0001\u0000\u0000\u0000\u0214"+ + "\u0a7e\u0001\u0000\u0000\u0000\u0216\u0a81\u0001\u0000\u0000\u0000\u0218"+ + "\u0a86\u0001\u0000\u0000\u0000\u021a\u0a8c\u0001\u0000\u0000\u0000\u021c"+ + "\u0a8e\u0001\u0000\u0000\u0000\u021e\u0a95\u0001\u0000\u0000\u0000\u0220"+ + "\u0a97\u0001\u0000\u0000\u0000\u0222\u0a99\u0001\u0000\u0000\u0000\u0224"+ + "\u0a9d\u0001\u0000\u0000\u0000\u0226\u0aac\u0001\u0000\u0000\u0000\u0228"+ + "\u0ab6\u0001\u0000\u0000\u0000\u022a\u0ab9\u0001\u0000\u0000\u0000\u022c"+ + "\u0abd\u0001\u0000\u0000\u0000\u022e\u0ac1\u0001\u0000\u0000\u0000\u0230"+ + "\u0ac4\u0001\u0000\u0000\u0000\u0232\u0acd\u0001\u0000\u0000\u0000\u0234"+ + "\u0ad1\u0001\u0000\u0000\u0000\u0236\u0ad4\u0001\u0000\u0000\u0000\u0238"+ + "\u0aeb\u0001\u0000\u0000\u0000\u023a\u0aed\u0001\u0000\u0000\u0000\u023c"+ + "\u0aef\u0001\u0000\u0000\u0000\u023e\u0af3\u0001\u0000\u0000\u0000\u0240"+ + "\u0af5\u0001\u0000\u0000\u0000\u0242\u0aff\u0001\u0000\u0000\u0000\u0244"+ + "\u0b03\u0001\u0000\u0000\u0000\u0246\u0b0b\u0001\u0000\u0000\u0000\u0248"+ + "\u0b16\u0001\u0000\u0000\u0000\u024a\u0b24\u0001\u0000\u0000\u0000\u024c"+ + "\u0b2b\u0001\u0000\u0000\u0000\u024e\u0b2d\u0001\u0000\u0000\u0000\u0250"+ + "\u0b34\u0001\u0000\u0000\u0000\u0252\u0b37\u0001\u0000\u0000\u0000\u0254"+ + "\u0b3b\u0001\u0000\u0000\u0000\u0256\u0b3d\u0001\u0000\u0000\u0000\u0258"+ + "\u0b41\u0001\u0000\u0000\u0000\u025a\u0b4c\u0001\u0000\u0000\u0000\u025c"+ + "\u0b52\u0001\u0000\u0000\u0000\u025e\u0b5f\u0001\u0000\u0000\u0000\u0260"+ + "\u0b66\u0001\u0000\u0000\u0000\u0262\u0b6d\u0001\u0000\u0000\u0000\u0264"+ + "\u0b70\u0001\u0000\u0000\u0000\u0266\u0b74\u0001\u0000\u0000\u0000\u0268"+ + "\u0b76\u0001\u0000\u0000\u0000\u026a\u0b7a\u0001\u0000\u0000\u0000\u026c"+ + "\u0b7c\u0001\u0000\u0000\u0000\u026e\u0b80\u0001\u0000\u0000\u0000\u0270"+ + "\u0b84\u0001\u0000\u0000\u0000\u0272\u0b88\u0001\u0000\u0000\u0000\u0274"+ + "\u0b8c\u0001\u0000\u0000\u0000\u0276\u0b90\u0001\u0000\u0000\u0000\u0278"+ + "\u0b9d\u0001\u0000\u0000\u0000\u027a\u0ba8\u0001\u0000\u0000\u0000\u027c"+ + "\u0baa\u0001\u0000\u0000\u0000\u027e\u0bac\u0001\u0000\u0000\u0000\u0280"+ + "\u0bb1\u0001\u0000\u0000\u0000\u0282\u0bb5\u0001\u0000\u0000\u0000\u0284"+ + "\u0bb7\u0001\u0000\u0000\u0000\u0286\u0bbd\u0001\u0000\u0000\u0000\u0288"+ + "\u0bc3\u0001\u0000\u0000\u0000\u028a\u0bc9\u0001\u0000\u0000\u0000\u028c"+ + "\u0bcb\u0001\u0000\u0000\u0000\u028e\u0bcd\u0001\u0000\u0000\u0000\u0290"+ + "\u0bcf\u0001\u0000\u0000\u0000\u0292\u0bd8\u0001\u0000\u0000\u0000\u0294"+ + "\u0bda\u0001\u0000\u0000\u0000\u0296\u0be2\u0001\u0000\u0000\u0000\u0298"+ + "\u0be8\u0001\u0000\u0000\u0000\u029a\u0bf0\u0001\u0000\u0000\u0000\u029c"+ + "\u0bf6\u0001\u0000\u0000\u0000\u029e\u0bf9\u0001\u0000\u0000\u0000\u02a0"+ + "\u0c37\u0001\u0000\u0000\u0000\u02a2\u0c4c\u0001\u0000\u0000\u0000\u02a4"+ + "\u0c55\u0001\u0000\u0000\u0000\u02a6\u0c57\u0001\u0000\u0000\u0000\u02a8"+ + "\u0c7e\u0001\u0000\u0000\u0000\u02aa\u0ca3\u0001\u0000\u0000\u0000\u02ac"+ + "\u0ca5\u0001\u0000\u0000\u0000\u02ae\u0ca7\u0001\u0000\u0000\u0000\u02b0"+ + "\u0ca9\u0001\u0000\u0000\u0000\u02b2\u0cad\u0001\u0000\u0000\u0000\u02b4"+ + "\u0cb1\u0001\u0000\u0000\u0000\u02b6\u0cb5\u0001\u0000\u0000\u0000\u02b8"+ + "\u0ce5\u0001\u0000\u0000\u0000\u02ba\u0d13\u0001\u0000\u0000\u0000\u02bc"+ + "\u0d41\u0001\u0000\u0000\u0000\u02be\u0d43\u0001\u0000\u0000\u0000\u02c0"+ + "\u0d50\u0001\u0000\u0000\u0000\u02c2\u0d52\u0001\u0000\u0000\u0000\u02c4"+ + "\u0d81\u0001\u0000\u0000\u0000\u02c6\u0d85\u0001\u0000\u0000\u0000\u02c8"+ + "\u0d8c\u0001\u0000\u0000\u0000\u02ca\u0d9a\u0001\u0000\u0000\u0000\u02cc"+ + "\u0daa\u0001\u0000\u0000\u0000\u02ce\u0dac\u0001\u0000\u0000\u0000\u02d0"+ + "\u0dbc\u0001\u0000\u0000\u0000\u02d2\u0dca\u0001\u0000\u0000\u0000\u02d4"+ + "\u0dcc\u0001\u0000\u0000\u0000\u02d6\u0dd9\u0001\u0000\u0000\u0000\u02d8"+ + "\u0ddf\u0001\u0000\u0000\u0000\u02da\u0de3\u0001\u0000\u0000\u0000\u02dc"+ + "\u0de5\u0001\u0000\u0000\u0000\u02de\u0dea\u0001\u0000\u0000\u0000\u02e0"+ + "\u0dee\u0001\u0000\u0000\u0000\u02e2\u0df1\u0001\u0000\u0000\u0000\u02e4"+ + "\u0df8\u0001\u0000\u0000\u0000\u02e6\u0e00\u0001\u0000\u0000\u0000\u02e8"+ + "\u0e06\u0001\u0000\u0000\u0000\u02ea\u0e08\u0001\u0000\u0000\u0000\u02ec"+ + "\u0e0d\u0001\u0000\u0000\u0000\u02ee\u0e15\u0001\u0000\u0000\u0000\u02f0"+ + "\u0e17\u0001\u0000\u0000\u0000\u02f2\u0e1c\u0001\u0000\u0000\u0000\u02f4"+ + "\u0e22\u0001\u0000\u0000\u0000\u02f6\u0e27\u0001\u0000\u0000\u0000\u02f8"+ + "\u0e2b\u0001\u0000\u0000\u0000\u02fa\u0e3b\u0001\u0000\u0000\u0000\u02fc"+ + "\u0e3d\u0001\u0000\u0000\u0000\u02fe\u0e43\u0001\u0000\u0000\u0000\u0300"+ + "\u0e4b\u0001\u0000\u0000\u0000\u0302\u0e4e\u0001\u0000\u0000\u0000\u0304"+ + "\u0e54\u0001\u0000\u0000\u0000\u0306\u0e5f\u0001\u0000\u0000\u0000\u0308"+ + "\u0e61\u0001\u0000\u0000\u0000\u030a\u0e64\u0001\u0000\u0000\u0000\u030c"+ + "\u0e66\u0001\u0000\u0000\u0000\u030e\u0e7a\u0001\u0000\u0000\u0000\u0310"+ + "\u0e7d\u0001\u0000\u0000\u0000\u0312\u0e83\u0001\u0000\u0000\u0000\u0314"+ + "\u0e86\u0001\u0000\u0000\u0000\u0316\u0e8d\u0001\u0000\u0000\u0000\u0318"+ + "\u0e96\u0001\u0000\u0000\u0000\u031a\u0e99\u0001\u0000\u0000\u0000\u031c"+ + "\u0e9f\u0001\u0000\u0000\u0000\u031e\u0ea2\u0001\u0000\u0000\u0000\u0320"+ + "\u0eab\u0001\u0000\u0000\u0000\u0322\u0eb3\u0001\u0000\u0000\u0000\u0324"+ + "\u0eb5\u0001\u0000\u0000\u0000\u0326\u0eb7\u0001\u0000\u0000\u0000\u0328"+ + "\u0ebf\u0001\u0000\u0000\u0000\u032a\u0ec7\u0001\u0000\u0000\u0000\u032c"+ + "\u0ec9\u0001\u0000\u0000\u0000\u032e\u0ed7\u0001\u0000\u0000\u0000\u0330"+ + "\u0ee5\u0001\u0000\u0000\u0000\u0332\u0efe\u0001\u0000\u0000\u0000\u0334"+ + "\u0f24\u0001\u0000\u0000\u0000\u0336\u0f26\u0001\u0000\u0000\u0000\u0338"+ + "\u0f2d\u0001\u0000\u0000\u0000\u033a\u0f2f\u0001\u0000\u0000\u0000\u033c"+ + "\u0f36\u0001\u0000\u0000\u0000\u033e\u0f3b\u0001\u0000\u0000\u0000\u0340"+ + "\u0f40\u0001\u0000\u0000\u0000\u0342\u0f49\u0001\u0000\u0000\u0000\u0344"+ + "\u0f52\u0001\u0000\u0000\u0000\u0346\u0f54\u0001\u0000\u0000\u0000\u0348"+ + "\u0f56\u0001\u0000\u0000\u0000\u034a\u0f63\u0001\u0000\u0000\u0000\u034c"+ + "\u0f6d\u0001\u0000\u0000\u0000\u034e\u0f73\u0001\u0000\u0000\u0000\u0350"+ + "\u0f81\u0001\u0000\u0000\u0000\u0352\u0f85\u0001\u0000\u0000\u0000\u0354"+ + "\u0f89\u0001\u0000\u0000\u0000\u0356\u0f8d\u0001\u0000\u0000\u0000\u0358"+ + "\u0f8f\u0001\u0000\u0000\u0000\u035a\u0f91\u0001\u0000\u0000\u0000\u035c"+ + "\u0f97\u0001\u0000\u0000\u0000\u035e\u0f9c\u0001\u0000\u0000\u0000\u0360"+ + "\u0fb0\u0001\u0000\u0000\u0000\u0362\u0fb4\u0001\u0000\u0000\u0000\u0364"+ + "\u0fb6\u0001\u0000\u0000\u0000\u0366\u0fc2\u0001\u0000\u0000\u0000\u0368"+ + "\u0fcd\u0001\u0000\u0000\u0000\u036a\u0fd2\u0001\u0000\u0000\u0000\u036c"+ + "\u0fd7\u0001\u0000\u0000\u0000\u036e\u0fdc\u0001\u0000\u0000\u0000\u0370"+ + "\u0fde\u0001\u0000\u0000\u0000\u0372\u0fef\u0001\u0000\u0000\u0000\u0374"+ + "\u0ff3\u0001\u0000\u0000\u0000\u0376\u0ff5\u0001\u0000\u0000\u0000\u0378"+ + "\u0ff7\u0001\u0000\u0000\u0000\u037a\u1000\u0001\u0000\u0000\u0000\u037c"+ + "\u1002\u0001\u0000\u0000\u0000\u037e\u100a\u0001\u0000\u0000\u0000\u0380"+ + "\u100c\u0001\u0000\u0000\u0000\u0382\u1014\u0001\u0000\u0000\u0000\u0384"+ + "\u101b\u0001\u0000\u0000\u0000\u0386\u101d\u0001\u0000\u0000\u0000\u0388"+ + "\u101f\u0001\u0000\u0000\u0000\u038a\u1022\u0001\u0000\u0000\u0000\u038c"+ + "\u1026\u0001\u0000\u0000\u0000\u038e\u1028\u0001\u0000\u0000\u0000\u0390"+ + "\u102d\u0001\u0000\u0000\u0000\u0392\u102f\u0001\u0000\u0000\u0000\u0394"+ + "\u1031\u0001\u0000\u0000\u0000\u0396\u1033\u0001\u0000\u0000\u0000\u0398"+ + "\u1038\u0001\u0000\u0000\u0000\u039a\u103f\u0001\u0000\u0000\u0000\u039c"+ + "\u1041\u0001\u0000\u0000\u0000\u039e\u1046\u0001\u0000\u0000\u0000\u03a0"+ + "\u104a\u0001\u0000\u0000\u0000\u03a2\u104c\u0001\u0000\u0000\u0000\u03a4"+ + "\u1053\u0001\u0000\u0000\u0000\u03a6\u1058\u0001\u0000\u0000\u0000\u03a8"+ + "\u105b\u0001\u0000\u0000\u0000\u03aa\u1063\u0001\u0000\u0000\u0000\u03ac"+ + "\u106b\u0001\u0000\u0000\u0000\u03ae\u106e\u0001\u0000\u0000\u0000\u03b0"+ + "\u1072\u0001\u0000\u0000\u0000\u03b2\u1078\u0001\u0000\u0000\u0000\u03b4"+ + "\u1080\u0001\u0000\u0000\u0000\u03b6\u1084\u0001\u0000\u0000\u0000\u03b8"+ + "\u108b\u0001\u0000\u0000\u0000\u03ba\u10a5\u0001\u0000\u0000\u0000\u03bc"+ + "\u10aa\u0001\u0000\u0000\u0000\u03be\u10b6\u0001\u0000\u0000\u0000\u03c0"+ + "\u10b8\u0001\u0000\u0000\u0000\u03c2\u10ba\u0001\u0000\u0000\u0000\u03c4"+ + "\u10bf\u0001\u0000\u0000\u0000\u03c6\u10c4\u0001\u0000\u0000\u0000\u03c8"+ + "\u10c9\u0001\u0000\u0000\u0000\u03ca\u10ce\u0001\u0000\u0000\u0000\u03cc"+ + "\u10d5\u0001\u0000\u0000\u0000\u03ce\u10d7\u0001\u0000\u0000\u0000\u03d0"+ + "\u10d9\u0001\u0000\u0000\u0000\u03d2\u10de\u0001\u0000\u0000\u0000\u03d4"+ + "\u10e0\u0001\u0000\u0000\u0000\u03d6\u10e7\u0001\u0000\u0000\u0000\u03d8"+ + "\u10e9\u0001\u0000\u0000\u0000\u03da\u10eb\u0001\u0000\u0000\u0000\u03dc"+ + "\u10f0\u0001\u0000\u0000\u0000\u03de\u10f5\u0001\u0000\u0000\u0000\u03e0"+ + "\u10fa\u0001\u0000\u0000\u0000\u03e2\u1101\u0001\u0000\u0000\u0000\u03e4"+ + "\u1103\u0001\u0000\u0000\u0000\u03e6\u1105\u0001\u0000\u0000\u0000\u03e8"+ + "\u110a\u0001\u0000\u0000\u0000\u03ea\u110f\u0001\u0000\u0000\u0000\u03ec"+ + "\u1114\u0001\u0000\u0000\u0000\u03ee\u1116\u0001\u0000\u0000\u0000\u03f0"+ + "\u111f\u0001\u0000\u0000\u0000\u03f2\u1123\u0001\u0000\u0000\u0000\u03f4"+ + "\u1125\u0001\u0000\u0000\u0000\u03f6\u1127\u0001\u0000\u0000\u0000\u03f8"+ + "\u1129\u0001\u0000\u0000\u0000\u03fa\u112b\u0001\u0000\u0000\u0000\u03fc"+ + "\u112d\u0001\u0000\u0000\u0000\u03fe\u1134\u0001\u0000\u0000\u0000\u0400"+ + "\u113d\u0001\u0000\u0000\u0000\u0402\u1146\u0001\u0000\u0000\u0000\u0404"+ + "\u1148\u0001\u0000\u0000\u0000\u0406\u1157\u0001\u0000\u0000\u0000\u0408"+ + "\u1160\u0001\u0000\u0000\u0000\u040a\u1164\u0001\u0000\u0000\u0000\u040c"+ + "\u1168\u0001\u0000\u0000\u0000\u040e\u116c\u0001\u0000\u0000\u0000\u0410"+ + "\u116e\u0001\u0000\u0000\u0000\u0412\u1170\u0001\u0000\u0000\u0000\u0414"+ + "\u1177\u0001\u0000\u0000\u0000\u0416\u117b\u0001\u0000\u0000\u0000\u0418"+ + "\u117d\u0001\u0000\u0000\u0000\u041a\u1181\u0001\u0000\u0000\u0000\u041c"+ + "\u1183\u0001\u0000\u0000\u0000\u041e\u118a\u0001\u0000\u0000\u0000\u0420"+ + "\u118c\u0001\u0000\u0000\u0000\u0422\u118e\u0001\u0000\u0000\u0000\u0424"+ + "\u1190\u0001\u0000\u0000\u0000\u0426\u1192\u0001\u0000\u0000\u0000\u0428"+ + "\u1196\u0001\u0000\u0000\u0000\u042a\u1198\u0001\u0000\u0000\u0000\u042c"+ + "\u119a\u0001\u0000\u0000\u0000\u042e\u119c\u0001\u0000\u0000\u0000\u0430"+ + "\u119e\u0001\u0000\u0000\u0000\u0432\u11a2\u0001\u0000\u0000\u0000\u0434"+ + "\u11a4\u0001\u0000\u0000\u0000\u0436\u11a6\u0001\u0000\u0000\u0000\u0438"+ + "\u11a8\u0001\u0000\u0000\u0000\u043a\u11aa\u0001\u0000\u0000\u0000\u043c"+ + "\u11ac\u0001\u0000\u0000\u0000\u043e\u11ae\u0001\u0000\u0000\u0000\u0440"+ + "\u11b0\u0001\u0000\u0000\u0000\u0442\u11b2\u0001\u0000\u0000\u0000\u0444"+ + "\u11b4\u0001\u0000\u0000\u0000\u0446\u11b8\u0001\u0000\u0000\u0000\u0448"+ + "\u11c2\u0001\u0000\u0000\u0000\u044a\u11c7\u0001\u0000\u0000\u0000\u044c"+ + "\u11c9\u0001\u0000\u0000\u0000\u044e\u11cc\u0001\u0000\u0000\u0000\u0450"+ + "\u11cf\u0001\u0000\u0000\u0000\u0452\u11d2\u0001\u0000\u0000\u0000\u0454"+ + "\u11d4\u0001\u0000\u0000\u0000\u0456\u11d9\u0001\u0000\u0000\u0000\u0458"+ + "\u11dd\u0001\u0000\u0000\u0000\u045a\u11df\u0001\u0000\u0000\u0000\u045c"+ + "\u11e1\u0001\u0000\u0000\u0000\u045e\u11e5\u0001\u0000\u0000\u0000\u0460"+ + "\u11ec\u0001\u0000\u0000\u0000\u0462\u11ee\u0001\u0000\u0000\u0000\u0464"+ + "\u11f0\u0001\u0000\u0000\u0000\u0466\u11f2\u0001\u0000\u0000\u0000\u0468"+ + "\u11f4\u0001\u0000\u0000\u0000\u046a\u11f6\u0001\u0000\u0000\u0000\u046c"+ + "\u11f8\u0001\u0000\u0000\u0000\u046e\u11fa\u0001\u0000\u0000\u0000\u0470"+ + "\u11fc\u0001\u0000\u0000\u0000\u0472\u11ff\u0001\u0000\u0000\u0000\u0474"+ + "\u1201\u0001\u0000\u0000\u0000\u0476\u1203\u0001\u0000\u0000\u0000\u0478"+ + "\u1205\u0001\u0000\u0000\u0000\u047a\u1207\u0001\u0000\u0000\u0000\u047c"+ + "\u047e\u0003\u0002\u0001\u0000\u047d\u047f\u0003\"\u0011\u0000\u047e\u047d"+ + "\u0001\u0000\u0000\u0000\u047e\u047f\u0001\u0000\u0000\u0000\u047f\u0480"+ + "\u0001\u0000\u0000\u0000\u0480\u0481\u0005\u0000\u0000\u0001\u0481\u0486"+ + "\u0001\u0000\u0000\u0000\u0482\u0483\u0003\"\u0011\u0000\u0483\u0484\u0005"+ + "\u0000\u0000\u0001\u0484\u0486\u0001\u0000\u0000\u0000\u0485\u047c\u0001"+ + "\u0000\u0000\u0000\u0485\u0482\u0001\u0000\u0000\u0000\u0486\u0001\u0001"+ + "\u0000\u0000\u0000\u0487\u048a\u0003\u0004\u0002\u0000\u0488\u048a\u0003"+ + "\u0006\u0003\u0000\u0489\u0487\u0001\u0000\u0000\u0000\u0489\u0488\u0001"+ + "\u0000\u0000\u0000\u048a\u0003\u0001\u0000\u0000\u0000\u048b\u048d\u0003"+ + "\u001e\u000f\u0000\u048c\u048b\u0001\u0000\u0000\u0000\u048d\u048e\u0001"+ + "\u0000\u0000\u0000\u048e\u048c\u0001\u0000\u0000\u0000\u048e\u048f\u0001"+ + "\u0000\u0000\u0000\u048f\u049c\u0001\u0000\u0000\u0000\u0490\u0492\u0003"+ + "\n\u0005\u0000\u0491\u0490\u0001\u0000\u0000\u0000\u0492\u0493\u0001\u0000"+ + "\u0000\u0000\u0493\u0491\u0001\u0000\u0000\u0000\u0493\u0494\u0001\u0000"+ + "\u0000\u0000\u0494\u0498\u0001\u0000\u0000\u0000\u0495\u0497\u0003\u001e"+ + "\u000f\u0000\u0496\u0495\u0001\u0000\u0000\u0000\u0497\u049a\u0001\u0000"+ + "\u0000\u0000\u0498\u0496\u0001\u0000\u0000\u0000\u0498\u0499\u0001\u0000"+ + "\u0000\u0000\u0499\u049c\u0001\u0000\u0000\u0000\u049a\u0498\u0001\u0000"+ + "\u0000\u0000\u049b\u048c\u0001\u0000\u0000\u0000\u049b\u0491\u0001\u0000"+ + "\u0000\u0000\u049c\u0005\u0001\u0000\u0000\u0000\u049d\u04a2\u0003&\u0013"+ + "\u0000\u049e\u04a0\u00034\u001a\u0000\u049f\u04a1\u0003\b\u0004\u0000"+ + "\u04a0\u049f\u0001\u0000\u0000\u0000\u04a0\u04a1\u0001\u0000\u0000\u0000"+ + "\u04a1\u04a3\u0001\u0000\u0000\u0000\u04a2\u049e\u0001\u0000\u0000\u0000"+ + "\u04a2\u04a3\u0001\u0000\u0000\u0000\u04a3\u04aa\u0001\u0000\u0000\u0000"+ + "\u04a4\u04a6\u00034\u001a\u0000\u04a5\u04a7\u0003\b\u0004\u0000\u04a6"+ + "\u04a5\u0001\u0000\u0000\u0000\u04a6\u04a7\u0001\u0000\u0000\u0000\u04a7"+ + "\u04aa\u0001\u0000\u0000\u0000\u04a8\u04aa\u0003\b\u0004\u0000\u04a9\u049d"+ + "\u0001\u0000\u0000\u0000\u04a9\u04a4\u0001\u0000\u0000\u0000\u04a9\u04a8"+ + "\u0001\u0000\u0000\u0000\u04aa\u0007\u0001\u0000\u0000\u0000\u04ab\u04ae"+ + "\u0003.\u0017\u0000\u04ac\u04ae\u00030\u0018\u0000\u04ad\u04ab\u0001\u0000"+ + "\u0000\u0000\u04ad\u04ac\u0001\u0000\u0000\u0000\u04ae\t\u0001\u0000\u0000"+ + "\u0000\u04af\u04b0\u0005\u00bc\u0000\u0000\u04b0\u04b5\u0005\u00be\u0000"+ + "\u0000\u04b1\u04b6\u0003\f\u0006\u0000\u04b2\u04b6\u0003\u000e\u0007\u0000"+ + "\u04b3\u04b6\u0003\u0010\b\u0000\u04b4\u04b6\u0003\u0014\n\u0000\u04b5"+ + "\u04b1\u0001\u0000\u0000\u0000\u04b5\u04b2\u0001\u0000\u0000\u0000\u04b5"+ + "\u04b3\u0001\u0000\u0000\u0000\u04b5\u04b4\u0001\u0000\u0000\u0000\u04b6"+ + "\u000b\u0001\u0000\u0000\u0000\u04b7\u04b8\u0005\u00b9\u0000\u0000\u04b8"+ + "\u04b9\u0003\u0218\u010c\u0000\u04b9\r\u0001\u0000\u0000\u0000\u04ba\u04bc"+ + "\u0005\u0131\u0000\u0000\u04bb\u04ba\u0001\u0000\u0000\u0000\u04bb\u04bc"+ + "\u0001\u0000\u0000\u0000\u04bc\u04bd\u0001\u0000\u0000\u0000\u04bd\u04be"+ + "\u0005\u0121\u0000\u0000\u04be\u04bf\u0003X,\u0000\u04bf\u000f\u0001\u0000"+ + "\u0000\u0000\u04c0\u04c1\u0005\u00cf\u0000\u0000\u04c1\u04c2\u0005\u0144"+ + "\u0000\u0000\u04c2\u04c3\u0003\u0012\t\u0000\u04c3\u0011\u0001\u0000\u0000"+ + "\u0000\u04c4\u04c5\u0003\u045a\u022d\u0000\u04c5\u0013\u0001\u0000\u0000"+ + "\u0000\u04c6\u04ca\u0003\u0016\u000b\u0000\u04c7\u04ca\u0003\u0018\f\u0000"+ + "\u04c8\u04ca\u0003\u001a\r\u0000\u04c9\u04c6\u0001\u0000\u0000\u0000\u04c9"+ + "\u04c7\u0001\u0000\u0000\u0000\u04c9\u04c8\u0001\u0000\u0000\u0000\u04ca"+ + "\u0015\u0001\u0000\u0000\u0000\u04cb\u04cd\u0005\u0131\u0000\u0000\u04cc"+ + "\u04cb\u0001\u0000\u0000\u0000\u04cc\u04cd\u0001\u0000\u0000\u0000\u04cd"+ + "\u04ce\u0001\u0000\u0000\u0000\u04ce\u04cf\u0005\u0121\u0000\u0000\u04cf"+ + "\u04d0\u0003\u001c\u000e\u0000\u04d0\u04d1\u0003H$\u0000\u04d1\u0017\u0001"+ + "\u0000\u0000\u0000\u04d2\u04d4\u0005\u0116\u0000\u0000\u04d3\u04d2\u0001"+ + "\u0000\u0000\u0000\u04d3\u04d4\u0001\u0000\u0000\u0000\u04d4\u04d5\u0001"+ + "\u0000\u0000\u0000\u04d5\u04d6\u0005\u0139\u0000\u0000\u04d6\u04d7\u0003"+ + "\u001c\u000e\u0000\u04d7\u04d8\u0003N\'\u0000\u04d8\u0019\u0001\u0000"+ + "\u0000\u0000\u04d9\u04da\u0005\u00e1\u0000\u0000\u04da\u04db\u0003\u001c"+ + "\u000e\u0000\u04db\u04dc\u0003T*\u0000\u04dc\u001b\u0001\u0000\u0000\u0000"+ + "\u04dd\u04de\u0005l\u0000\u0000\u04de\u04df\u0005\u0098\u0000\u0000\u04df"+ + "\u04e1\u0005Y\u0000\u0000\u04e0\u04dd\u0001\u0000\u0000\u0000\u04e0\u04e1"+ + "\u0001\u0000\u0000\u0000\u04e1\u04e2\u0001\u0000\u0000\u0000\u04e2\u04e3"+ + "\u0003$\u0012\u0000\u04e3\u001d\u0001\u0000\u0000\u0000\u04e4\u04e5\u0005"+ + "\u00bc\u0000\u0000\u04e5\u04e7\u0005\u00b3\u0000\u0000\u04e6\u04e8\u0003"+ + " \u0010\u0000\u04e7\u04e6\u0001\u0000\u0000\u0000\u04e7\u04e8\u0001\u0000"+ + "\u0000\u0000\u04e8\u001f\u0001\u0000\u0000\u0000\u04e9\u04eb\u0005\u0016"+ + "\u0000\u0000\u04ea\u04e9\u0001\u0000\u0000\u0000\u04ea\u04eb\u0001\u0000"+ + "\u0000\u0000\u04eb\u04ec\u0001\u0000\u0000\u0000\u04ec\u04f9\u0007\u0000"+ + "\u0000\u0000\u04ed\u04f9\u0005\u00b9\u0000\u0000\u04ee\u04f0\u0005\u0131"+ + "\u0000\u0000\u04ef\u04ee\u0001\u0000\u0000\u0000\u04ef\u04f0\u0001\u0000"+ + "\u0000\u0000\u04f0\u04f1\u0001\u0000\u0000\u0000\u04f1\u04f9\u0005\u0121"+ + "\u0000\u0000\u04f2\u04f3\u0005\u00cf\u0000\u0000\u04f3\u04f9\u0005\u0144"+ + "\u0000\u0000\u04f4\u04f6\u0005\u00a4\u0000\u0000\u04f5\u04f4\u0001\u0000"+ + "\u0000\u0000\u04f5\u04f6\u0001\u0000\u0000\u0000\u04f6\u04f7\u0001\u0000"+ + "\u0000\u0000\u04f7\u04f9\u0003$\u0012\u0000\u04f8\u04ea\u0001\u0000\u0000"+ + "\u0000\u04f8\u04ed\u0001\u0000\u0000\u0000\u04f8\u04ef\u0001\u0000\u0000"+ + "\u0000\u04f8\u04f2\u0001\u0000\u0000\u0000\u04f8\u04f5\u0001\u0000\u0000"+ + "\u0000\u04f9!\u0001\u0000\u0000\u0000\u04fa\u04fb\u0005\u00bc\u0000\u0000"+ + "\u04fb\u04fc\u00056\u0000\u0000\u04fc#\u0001\u0000\u0000\u0000\u04fd\u04fe"+ + "\u0005\u0147\u0000\u0000\u04fe%\u0001\u0000\u0000\u0000\u04ff\u0500\u0005"+ + "\u00c7\u0000\u0000\u0500\u0502\u0005\u013d\u0000\u0000\u0501\u0503\u0003"+ + "(\u0014\u0000\u0502\u0501\u0001\u0000\u0000\u0000\u0502\u0503\u0001\u0000"+ + "\u0000\u0000\u0503\'\u0001\u0000\u0000\u0000\u0504\u0509\u0003*\u0015"+ + "\u0000\u0505\u0506\u0005\u0169\u0000\u0000\u0506\u0508\u0003*\u0015\u0000"+ + "\u0507\u0505\u0001\u0000\u0000\u0000\u0508\u050b\u0001\u0000\u0000\u0000"+ + "\u0509\u0507\u0001\u0000\u0000\u0000\u0509\u050a\u0001\u0000\u0000\u0000"+ + "\u050a)\u0001\u0000\u0000\u0000\u050b\u0509\u0001\u0000\u0000\u0000\u050c"+ + "\u050d\u0003,\u0016\u0000\u050d+\u0001\u0000\u0000\u0000\u050e\u050f\u0005"+ + "\u0132\u0000\u0000\u050f\u0513\u0005\u012f\u0000\u0000\u0510\u0511\u0005"+ + "\u0132\u0000\u0000\u0511\u0513\u0005\u0143\u0000\u0000\u0512\u050e\u0001"+ + "\u0000\u0000\u0000\u0512\u0510\u0001\u0000\u0000\u0000\u0513-\u0001\u0000"+ + "\u0000\u0000\u0514\u0515\u0005\u00b6\u0000\u0000\u0515/\u0001\u0000\u0000"+ + "\u0000\u0516\u0517\u00059\u0000\u0000\u05171\u0001\u0000\u0000\u0000\u0518"+ + "\u0519\u0005\u0171\u0000\u0000\u0519\u051a\u00034\u001a\u0000\u051a\u051b"+ + "\u0005\u017c\u0000\u0000\u051b3\u0001\u0000\u0000\u0000\u051c\u051d\u0003"+ + ":\u001d\u0000\u051d5\u0001\u0000\u0000\u0000\u051e\u051f\u0005\u0171\u0000"+ + "\u0000\u051f\u0520\u0003:\u001d\u0000\u0520\u0521\u0005\u017c\u0000\u0000"+ + "\u05217\u0001\u0000\u0000\u0000\u0522\u0523\u0005\u0171\u0000\u0000\u0523"+ + "\u0524\u0003:\u001d\u0000\u0524\u0525\u0005\u017c\u0000\u0000\u05259\u0001"+ + "\u0000\u0000\u0000\u0526\u0528\u0003\u0120\u0090\u0000\u0527\u0526\u0001"+ + "\u0000\u0000\u0000\u0527\u0528\u0001\u0000\u0000\u0000\u0528\u052a\u0001"+ + "\u0000\u0000\u0000\u0529\u052b\u0003<\u001e\u0000\u052a\u0529\u0001\u0000"+ + "\u0000\u0000\u052a\u052b\u0001\u0000\u0000\u0000\u052b\u052c\u0001\u0000"+ + "\u0000\u0000\u052c\u052d\u0003@ \u0000\u052d;\u0001\u0000\u0000\u0000"+ + "\u052e\u0530\u0003>\u001f\u0000\u052f\u052e\u0001\u0000\u0000\u0000\u0530"+ + "\u0531\u0001\u0000\u0000\u0000\u0531\u052f\u0001\u0000\u0000\u0000\u0531"+ + "\u0532\u0001\u0000\u0000\u0000\u0532=\u0001\u0000\u0000\u0000\u0533\u0537"+ + "\u0003F#\u0000\u0534\u0537\u0003L&\u0000\u0535\u0537\u0003R)\u0000\u0536"+ + "\u0533\u0001\u0000\u0000\u0000\u0536\u0534\u0001\u0000\u0000\u0000\u0536"+ + "\u0535\u0001\u0000\u0000\u0000\u0537?\u0001\u0000\u0000\u0000\u0538\u053c"+ + "\u0003B!\u0000\u0539\u053b\u0003D\"\u0000\u053a\u0539\u0001\u0000\u0000"+ + "\u0000\u053b\u053e\u0001\u0000\u0000\u0000\u053c\u053a\u0001\u0000\u0000"+ + "\u0000\u053c\u053d\u0001\u0000\u0000\u0000\u053dA\u0001\u0000\u0000\u0000"+ + "\u053e\u053c\u0001\u0000\u0000\u0000\u053f\u0543\u0003b1\u0000\u0540\u0543"+ + "\u0003\u0082A\u0000\u0541\u0543\u0003\u00b4Z\u0000\u0542\u053f\u0001\u0000"+ + "\u0000\u0000\u0542\u0540\u0001\u0000\u0000\u0000\u0542\u0541\u0001\u0000"+ + "\u0000\u0000\u0543C\u0001\u0000\u0000\u0000\u0544\u0546\u0005\u0095\u0000"+ + "\u0000\u0545\u0547\u0003\u01f4\u00fa\u0000\u0546\u0545\u0001\u0000\u0000"+ + "\u0000\u0546\u0547\u0001\u0000\u0000\u0000\u0547\u0548\u0001\u0000\u0000"+ + "\u0000\u0548\u0549\u0003B!\u0000\u0549E\u0001\u0000\u0000\u0000\u054a"+ + "\u054c\u0005\u0131\u0000\u0000\u054b\u054a\u0001\u0000\u0000\u0000\u054b"+ + "\u054c\u0001\u0000\u0000\u0000\u054c\u054d\u0001\u0000\u0000\u0000\u054d"+ + "\u054e\u0005\u0121\u0000\u0000\u054e\u054f\u0003\u0444\u0222\u0000\u054f"+ + "\u0550\u0003H$\u0000\u0550G\u0001\u0000\u0000\u0000\u0551\u0553\u0003"+ + "\u02a2\u0151\u0000\u0552\u0551\u0001\u0000\u0000\u0000\u0552\u0553\u0001"+ + "\u0000\u0000\u0000\u0553\u0554\u0001\u0000\u0000\u0000\u0554\u0556\u0003"+ + "\u02e0\u0170\u0000\u0555\u0552\u0001\u0000\u0000\u0000\u0555\u0556\u0001"+ + "\u0000\u0000\u0000\u0556\u0557\u0001\u0000\u0000\u0000\u0557\u0558\u0003"+ + "J%\u0000\u0558I\u0001\u0000\u0000\u0000\u0559\u055a\u0005\u016d\u0000"+ + "\u0000\u055a\u055b\u0003X,\u0000\u055bK\u0001\u0000\u0000\u0000\u055c"+ + "\u055e\u0005\u0116\u0000\u0000\u055d\u055c\u0001\u0000\u0000\u0000\u055d"+ + "\u055e\u0001\u0000\u0000\u0000\u055e\u055f\u0001\u0000\u0000\u0000\u055f"+ + "\u0560\u0005\u0139\u0000\u0000\u0560\u0561\u0003\u0444\u0222\u0000\u0561"+ + "\u0562\u0003N\'\u0000\u0562M\u0001\u0000\u0000\u0000\u0563\u0565\u0003"+ + "\u02a2\u0151\u0000\u0564\u0563\u0001\u0000\u0000\u0000\u0564\u0565\u0001"+ + "\u0000\u0000\u0000\u0565\u0566\u0001\u0000\u0000\u0000\u0566\u0568\u0003"+ + "\u02e6\u0173\u0000\u0567\u0564\u0001\u0000\u0000\u0000\u0567\u0568\u0001"+ + "\u0000\u0000\u0000\u0568\u0569\u0001\u0000\u0000\u0000\u0569\u056a\u0003"+ + "P(\u0000\u056aO\u0001\u0000\u0000\u0000\u056b\u056c\u0005\u016d\u0000"+ + "\u0000\u056c\u056d\u0003\\.\u0000\u056dQ\u0001\u0000\u0000\u0000\u056e"+ + "\u056f\u0005\u00e1\u0000\u0000\u056f\u0570\u0003\u0444\u0222\u0000\u0570"+ + "\u0571\u0003T*\u0000\u0571S\u0001\u0000\u0000\u0000\u0572\u0574\u0003"+ + "\u02a2\u0151\u0000\u0573\u0572\u0001\u0000\u0000\u0000\u0573\u0574\u0001"+ + "\u0000\u0000\u0000\u0574\u0575\u0001\u0000\u0000\u0000\u0575\u0577\u0003"+ + "\u02a0\u0150\u0000\u0576\u0573\u0001\u0000\u0000\u0000\u0576\u0577\u0001"+ + "\u0000\u0000\u0000\u0577\u0578\u0001\u0000\u0000\u0000\u0578\u0579\u0003"+ + "V+\u0000\u0579U\u0001\u0000\u0000\u0000\u057a\u057b\u0005\u016d\u0000"+ + "\u0000\u057b\u057c\u0003\u0332\u0199\u0000\u057cW\u0001\u0000\u0000\u0000"+ + "\u057d\u0582\u0003`0\u0000\u057e\u0582\u0003\u0228\u0114\u0000\u057f\u0582"+ + "\u0003\u0422\u0211\u0000\u0580\u0582\u0003Z-\u0000\u0581\u057d\u0001\u0000"+ + "\u0000\u0000\u0581\u057e\u0001\u0000\u0000\u0000\u0581\u057f\u0001\u0000"+ + "\u0000\u0000\u0581\u0580\u0001\u0000\u0000\u0000\u0582Y\u0001\u0000\u0000"+ + "\u0000\u0583\u0584\u0007\u0001\u0000\u0000\u0584[\u0001\u0000\u0000\u0000"+ + "\u0585\u058a\u0003^/\u0000\u0586\u058a\u0003`0\u0000\u0587\u058a\u0003"+ + "\u0232\u0119\u0000\u0588\u058a\u0003\u0422\u0211\u0000\u0589\u0585\u0001"+ + "\u0000\u0000\u0000\u0589\u0586\u0001\u0000\u0000\u0000\u0589\u0587\u0001"+ + "\u0000\u0000\u0000\u0589\u0588\u0001\u0000\u0000\u0000\u058a]\u0001\u0000"+ + "\u0000\u0000\u058b\u058c\u00038\u001c\u0000\u058c_\u0001\u0000\u0000\u0000"+ + "\u058d\u058e\u0005\u00e4\u0000\u0000\u058e\u0592\u0003\u034a\u01a5\u0000"+ + "\u058f\u0592\u0003\u034c\u01a6\u0000\u0590\u0592\u0003\u0350\u01a8\u0000"+ + "\u0591\u058d\u0001\u0000\u0000\u0000\u0591\u058f\u0001\u0000\u0000\u0000"+ + "\u0591\u0590\u0001\u0000\u0000\u0000\u0592a\u0001\u0000\u0000\u0000\u0593"+ + "\u0595\u0003d2\u0000\u0594\u0593\u0001\u0000\u0000\u0000\u0595\u0596\u0001"+ + "\u0000\u0000\u0000\u0596\u0594\u0001\u0000\u0000\u0000\u0596\u0597\u0001"+ + "\u0000\u0000\u0000\u0597c\u0001\u0000\u0000\u0000\u0598\u059b\u0003f3"+ + "\u0000\u0599\u059b\u0003\u0080@\u0000\u059a\u0598\u0001\u0000\u0000\u0000"+ + "\u059a\u0599\u0001\u0000\u0000\u0000\u059be\u0001\u0000\u0000\u0000\u059c"+ + "\u05a3\u0003h4\u0000\u059d\u05a3\u0003j5\u0000\u059e\u05a3\u0003l6\u0000"+ + "\u059f\u05a3\u0003v;\u0000\u05a0\u05a3\u0003x<\u0000\u05a1\u05a3\u0003"+ + "~?\u0000\u05a2\u059c\u0001\u0000\u0000\u0000\u05a2\u059d\u0001\u0000\u0000"+ + "\u0000\u05a2\u059e\u0001\u0000\u0000\u0000\u05a2\u059f\u0001\u0000\u0000"+ + "\u0000\u05a2\u05a0\u0001\u0000\u0000\u0000\u05a2\u05a1\u0001\u0000\u0000"+ + "\u0000\u05a3g\u0001\u0000\u0000\u0000\u05a4\u05a5\u0005?\u0000\u0000\u05a5"+ + "\u05a9\u0005\u00b9\u0000\u0000\u05a6\u05a7\u0005l\u0000\u0000\u05a7\u05a8"+ + "\u0005\u0098\u0000\u0000\u05a8\u05aa\u0005Y\u0000\u0000\u05a9\u05a6\u0001"+ + "\u0000\u0000\u0000\u05a9\u05aa\u0001\u0000\u0000\u0000\u05aa\u05ab\u0001"+ + "\u0000\u0000\u0000\u05ab\u05ac\u0003\u021c\u010e\u0000\u05aci\u0001\u0000"+ + "\u0000\u0000\u05ad\u05ae\u0005R\u0000\u0000\u05ae\u05b1\u0005\u00b9\u0000"+ + "\u0000\u05af\u05b0\u0005l\u0000\u0000\u05b0\u05b2\u0005Y\u0000\u0000\u05b1"+ + "\u05af\u0001\u0000\u0000\u0000\u05b1\u05b2\u0001\u0000\u0000\u0000\u05b2"+ + "\u05b3\u0001\u0000\u0000\u0000\u05b3\u05b4\u0003\u021c\u010e\u0000\u05b4"+ + "k\u0001\u0000\u0000\u0000\u05b5\u05c5\u0005?\u0000\u0000\u05b6\u05b8\u0005"+ + "\u0131\u0000\u0000\u05b7\u05b6\u0001\u0000\u0000\u0000\u05b7\u05b8\u0001"+ + "\u0000\u0000\u0000\u05b8\u05b9\u0001\u0000\u0000\u0000\u05b9\u05bd\u0005"+ + "\u0121\u0000\u0000\u05ba\u05bb\u0005l\u0000\u0000\u05bb\u05bc\u0005\u0098"+ + "\u0000\u0000\u05bc\u05be\u0005Y\u0000\u0000\u05bd\u05ba\u0001\u0000\u0000"+ + "\u0000\u05bd\u05be\u0001\u0000\u0000\u0000\u05be\u05c6\u0001\u0000\u0000"+ + "\u0000\u05bf\u05c0\u0005\u00a1\u0000\u0000\u05c0\u05c2\u0005\u00b2\u0000"+ + "\u0000\u05c1\u05c3\u0005\u0131\u0000\u0000\u05c2\u05c1\u0001\u0000\u0000"+ + "\u0000\u05c2\u05c3\u0001\u0000\u0000\u0000\u05c3\u05c4\u0001\u0000\u0000"+ + "\u0000\u05c4\u05c6\u0005\u0121\u0000\u0000\u05c5\u05b7\u0001\u0000\u0000"+ + "\u0000\u05c5\u05bf\u0001\u0000\u0000\u0000\u05c6\u05c7\u0001\u0000\u0000"+ + "\u0000\u05c7\u05ca\u0003\u022a\u0115\u0000\u05c8\u05cb\u0003n7\u0000\u05c9"+ + "\u05cb\u0003p8\u0000\u05ca\u05c8\u0001\u0000\u0000\u0000\u05ca\u05c9\u0001"+ + "\u0000\u0000\u0000\u05cb\u05cd\u0001\u0000\u0000\u0000\u05cc\u05ce\u0003"+ + "t:\u0000\u05cd\u05cc\u0001\u0000\u0000\u0000\u05cd\u05ce\u0001\u0000\u0000"+ + "\u0000\u05cem\u0001\u0000\u0000\u0000\u05cf\u05d1\u0003\u02a2\u0151\u0000"+ + "\u05d0\u05cf\u0001\u0000\u0000\u0000\u05d0\u05d1\u0001\u0000\u0000\u0000"+ + "\u05d1\u05d2\u0001\u0000\u0000\u0000\u05d2\u05d7\u0005\u0019\u0000\u0000"+ + "\u05d3\u05d5\u0005\u0131\u0000\u0000\u05d4\u05d3\u0001\u0000\u0000\u0000"+ + "\u05d4\u05d5\u0001\u0000\u0000\u0000\u05d5\u05d6\u0001\u0000\u0000\u0000"+ + "\u05d6\u05d8\u0005\u0121\u0000\u0000\u05d7\u05d4\u0001\u0000\u0000\u0000"+ + "\u05d7\u05d8\u0001\u0000\u0000\u0000\u05d8o\u0001\u0000\u0000\u0000\u05d9"+ + "\u05e9\u0003r9\u0000\u05da\u05dc\u0003\u02a2\u0151\u0000\u05db\u05da\u0001"+ + "\u0000\u0000\u0000\u05db\u05dc\u0001\u0000\u0000\u0000\u05dc\u05dd\u0001"+ + "\u0000\u0000\u0000\u05dd\u05e9\u0003\u022e\u0117\u0000\u05de\u05e0\u0003"+ + "\u02a2\u0151\u0000\u05df\u05de\u0001\u0000\u0000\u0000\u05df\u05e0\u0001"+ + "\u0000\u0000\u0000\u05e0\u05e5\u0001\u0000\u0000\u0000\u05e1\u05e3\u0005"+ + "\u0131\u0000\u0000\u05e2\u05e1\u0001\u0000\u0000\u0000\u05e2\u05e3\u0001"+ + "\u0000\u0000\u0000\u05e3\u05e4\u0001\u0000\u0000\u0000\u05e4\u05e6\u0005"+ + "\u0121\u0000\u0000\u05e5\u05e2\u0001\u0000\u0000\u0000\u05e5\u05e6\u0001"+ + "\u0000\u0000\u0000\u05e6\u05e7\u0001\u0000\u0000\u0000\u05e7\u05e9\u0003"+ + "\u023c\u011e\u0000\u05e8\u05d9\u0001\u0000\u0000\u0000\u05e8\u05db\u0001"+ + "\u0000\u0000\u0000\u05e8\u05df\u0001\u0000\u0000\u0000\u05e9q\u0001\u0000"+ + "\u0000\u0000\u05ea\u05eb\u0005\u0083\u0000\u0000\u05eb\u05ec\u0003X,\u0000"+ + "\u05ecs\u0001\u0000\u0000\u0000\u05ed\u05ee\u0005\u001b\u0000\u0000\u05ee"+ + "\u05ef\u0005:\u0000\u0000\u05ef\u05f0\u0005\u009e\u0000\u0000\u05f0\u05f1"+ + "\u0003X,\u0000\u05f1u\u0001\u0000\u0000\u0000\u05f2\u05f4\u0005R\u0000"+ + "\u0000\u05f3\u05f5\u0005\u0131\u0000\u0000\u05f4\u05f3\u0001\u0000\u0000"+ + "\u0000\u05f4\u05f5\u0001\u0000\u0000\u0000\u05f5\u05f6\u0001\u0000\u0000"+ + "\u0000\u05f6\u05f9\u0005\u0121\u0000\u0000\u05f7\u05f8\u0005l\u0000\u0000"+ + "\u05f8\u05fa\u0005Y\u0000\u0000\u05f9\u05f7\u0001\u0000\u0000\u0000\u05f9"+ + "\u05fa\u0001\u0000\u0000\u0000\u05fa\u05fb\u0001\u0000\u0000\u0000\u05fb"+ + "\u05fc\u0003\u022a\u0115\u0000\u05fcw\u0001\u0000\u0000\u0000\u05fd\u060f"+ + "\u0005?\u0000\u0000\u05fe\u0600\u0005\u0131\u0000\u0000\u05ff\u05fe\u0001"+ + "\u0000\u0000\u0000\u05ff\u0600\u0001\u0000\u0000\u0000\u0600\u0601\u0001"+ + "\u0000\u0000\u0000\u0601\u0602\u0005\u0121\u0000\u0000\u0602\u0606\u0005"+ + "\u013e\u0000\u0000\u0603\u0604\u0005l\u0000\u0000\u0604\u0605\u0005\u0098"+ + "\u0000\u0000\u0605\u0607\u0005Y\u0000\u0000\u0606\u0603\u0001\u0000\u0000"+ + "\u0000\u0606\u0607\u0001\u0000\u0000\u0000\u0607\u0610\u0001\u0000\u0000"+ + "\u0000\u0608\u0609\u0005\u00a1\u0000\u0000\u0609\u060b\u0005\u00b2\u0000"+ + "\u0000\u060a\u060c\u0005\u0131\u0000\u0000\u060b\u060a\u0001\u0000\u0000"+ + "\u0000\u060b\u060c\u0001\u0000\u0000\u0000\u060c\u060d\u0001\u0000\u0000"+ + "\u0000\u060d\u060e\u0005\u0121\u0000\u0000\u060e\u0610\u0005\u013e\u0000"+ + "\u0000\u060f\u05ff\u0001\u0000\u0000\u0000\u060f\u0608\u0001\u0000\u0000"+ + "\u0000\u0610\u0611\u0001\u0000\u0000\u0000\u0611\u0612\u0003\u0230\u0118"+ + "\u0000\u0612\u0613\u0003z=\u0000\u0613y\u0001\u0000\u0000\u0000\u0614"+ + "\u0616\u0005\u001b\u0000\u0000\u0615\u0614\u0001\u0000\u0000\u0000\u0615"+ + "\u0616\u0001\u0000\u0000\u0000\u0616\u0617\u0001\u0000\u0000\u0000\u0617"+ + "\u061e\u0003|>\u0000\u0618\u061e\u0003r9\u0000\u0619\u061b\u0005\u001b"+ + "\u0000\u0000\u061a\u0619\u0001\u0000\u0000\u0000\u061a\u061b\u0001\u0000"+ + "\u0000\u0000\u061b\u061c\u0001\u0000\u0000\u0000\u061c\u061e\u0003\u023c"+ + "\u011e\u0000\u061d\u0615\u0001\u0000\u0000\u0000\u061d\u0618\u0001\u0000"+ + "\u0000\u0000\u061d\u061a\u0001\u0000\u0000\u0000\u061e{\u0001\u0000\u0000"+ + "\u0000\u061f\u0620\u0005:\u0000\u0000\u0620\u0621\u0005\u009e\u0000\u0000"+ + "\u0621\u0622\u0003\u022e\u0117\u0000\u0622}\u0001\u0000\u0000\u0000\u0623"+ + "\u0625\u0005R\u0000\u0000\u0624\u0626\u0005\u0131\u0000\u0000\u0625\u0624"+ + "\u0001\u0000\u0000\u0000\u0625\u0626\u0001\u0000\u0000\u0000\u0626\u0627"+ + "\u0001\u0000\u0000\u0000\u0627\u0628\u0005\u0121\u0000\u0000\u0628\u062b"+ + "\u0005\u013e\u0000\u0000\u0629\u062a\u0005l\u0000\u0000\u062a\u062c\u0005"+ + "Y\u0000\u0000\u062b\u0629\u0001\u0000\u0000\u0000\u062b\u062c\u0001\u0000"+ + "\u0000\u0000\u062c\u062d\u0001\u0000\u0000\u0000\u062d\u062e\u0003\u0230"+ + "\u0118\u0000\u062e\u007f\u0001\u0000\u0000\u0000\u062f\u0630\u0003\u0110"+ + "\u0088\u0000\u0630\u0081\u0001\u0000\u0000\u0000\u0631\u0634\u0003\u0084"+ + "B\u0000\u0632\u0634\u0003\u008aE\u0000\u0633\u0631\u0001\u0000\u0000\u0000"+ + "\u0633\u0632\u0001\u0000\u0000\u0000\u0634\u0083\u0001\u0000\u0000\u0000"+ + "\u0635\u0638\u0003\u0086C\u0000\u0636\u0638\u0003\u0088D\u0000\u0637\u0635"+ + "\u0001\u0000\u0000\u0000\u0637\u0636\u0001\u0000\u0000\u0000\u0638\u0085"+ + "\u0001\u0000\u0000\u0000\u0639\u063a\u0003\u0122\u0091\u0000\u063a\u063c"+ + "\u0003\u008eG\u0000\u063b\u063d\u0003\u00f2y\u0000\u063c\u063b\u0001\u0000"+ + "\u0000\u0000\u063c\u063d\u0001\u0000\u0000\u0000\u063d\u0087\u0001\u0000"+ + "\u0000\u0000\u063e\u063f\u0003\u0122\u0091\u0000\u063f\u0640\u00036\u001b"+ + "\u0000\u0640\u0089\u0001\u0000\u0000\u0000\u0641\u0644\u0003\u008cF\u0000"+ + "\u0642\u0644\u00036\u001b\u0000\u0643\u0641\u0001\u0000\u0000\u0000\u0643"+ + "\u0642\u0001\u0000\u0000\u0000\u0644\u008b\u0001\u0000\u0000\u0000\u0645"+ + "\u0647\u0003\u008eG\u0000\u0646\u0648\u0003\u00f2y\u0000\u0647\u0646\u0001"+ + "\u0000\u0000\u0000\u0647\u0648\u0001\u0000\u0000\u0000\u0648\u008d\u0001"+ + "\u0000\u0000\u0000\u0649\u064b\u0003\u00ceg\u0000\u064a\u0649\u0001\u0000"+ + "\u0000\u0000\u064b\u064e\u0001\u0000\u0000\u0000\u064c\u064a\u0001\u0000"+ + "\u0000\u0000\u064c\u064d\u0001\u0000\u0000\u0000\u064d\u0650\u0001\u0000"+ + "\u0000\u0000\u064e\u064c\u0001\u0000\u0000\u0000\u064f\u0651\u0003\u0090"+ + "H\u0000\u0650\u064f\u0001\u0000\u0000\u0000\u0651\u0652\u0001\u0000\u0000"+ + "\u0000\u0652\u0650\u0001\u0000\u0000\u0000\u0652\u0653\u0001\u0000\u0000"+ + "\u0000\u0653\u008f\u0001\u0000\u0000\u0000\u0654\u0657\u0003\u0092I\u0000"+ + "\u0655\u0657\u0003\u00b2Y\u0000\u0656\u0654\u0001\u0000\u0000\u0000\u0656"+ + "\u0655\u0001\u0000\u0000\u0000\u0657\u0091\u0001\u0000\u0000\u0000\u0658"+ + "\u065d\u0003\u0094J\u0000\u0659\u065d\u0003\u0096K\u0000\u065a\u065d\u0003"+ + "\u00a2Q\u0000\u065b\u065d\u0003\u00acV\u0000\u065c\u0658\u0001\u0000\u0000"+ + "\u0000\u065c\u0659\u0001\u0000\u0000\u0000\u065c\u065a\u0001\u0000\u0000"+ + "\u0000\u065c\u065b\u0001\u0000\u0000\u0000\u065d\u0093\u0001\u0000\u0000"+ + "\u0000\u065e\u065f\u0005n\u0000\u0000\u065f\u0660\u0003\u0142\u00a1\u0000"+ + "\u0660\u0095\u0001\u0000\u0000\u0000\u0661\u0662\u0005\u00be\u0000\u0000"+ + "\u0662\u0663\u0003\u0098L\u0000\u0663\u0097\u0001\u0000\u0000\u0000\u0664"+ + "\u0669\u0003\u009aM\u0000\u0665\u0666\u0005\u0169\u0000\u0000\u0666\u0668"+ + "\u0003\u009aM\u0000\u0667\u0665\u0001\u0000\u0000\u0000\u0668\u066b\u0001"+ + "\u0000\u0000\u0000\u0669\u0667\u0001\u0000\u0000\u0000\u0669\u066a\u0001"+ + "\u0000\u0000\u0000\u066a\u0099\u0001\u0000\u0000\u0000\u066b\u0669\u0001"+ + "\u0000\u0000\u0000\u066c\u0670\u0003\u009cN\u0000\u066d\u0670\u0003\u009e"+ + "O\u0000\u066e\u0670\u0003\u00a0P\u0000\u066f\u066c\u0001\u0000\u0000\u0000"+ + "\u066f\u066d\u0001\u0000\u0000\u0000\u066f\u066e\u0001\u0000\u0000\u0000"+ + "\u0670\u009b\u0001\u0000\u0000\u0000\u0671\u0672\u0003\u0390\u01c8\u0000"+ + "\u0672\u0673\u0005\u0177\u0000\u0000\u0673\u0674\u0003\u043a\u021d\u0000"+ + "\u0674\u0675\u0005\u016d\u0000\u0000\u0675\u0676\u0003\u0332\u0199\u0000"+ + "\u0676\u009d\u0001\u0000\u0000\u0000\u0677\u0678\u0003\u0390\u01c8\u0000"+ + "\u0678\u0679\u0005\u016d\u0000\u0000\u0679\u067b\u0005\u0171\u0000\u0000"+ + "\u067a\u067c\u0003\u018c\u00c6\u0000\u067b\u067a\u0001\u0000\u0000\u0000"+ + "\u067b\u067c\u0001\u0000\u0000\u0000\u067c\u067d\u0001\u0000\u0000\u0000"+ + "\u067d\u067e\u0005\u017c\u0000\u0000\u067e\u009f\u0001\u0000\u0000\u0000"+ + "\u067f\u0680\u0003\u0390\u01c8\u0000\u0680\u0681\u0003\u0184\u00c2\u0000"+ + "\u0681\u0682\u0003\u0438\u021c\u0000\u0682\u00a1\u0001\u0000\u0000\u0000"+ + "\u0683\u0684\u0005\u00b1\u0000\u0000\u0684\u0685\u0003\u00a4R\u0000\u0685"+ + "\u00a3\u0001\u0000\u0000\u0000\u0686\u068b\u0003\u00a6S\u0000\u0687\u0688"+ + "\u0005\u0169\u0000\u0000\u0688\u068a\u0003\u00a6S\u0000\u0689\u0687\u0001"+ + "\u0000\u0000\u0000\u068a\u068d\u0001\u0000\u0000\u0000\u068b\u0689\u0001"+ + "\u0000\u0000\u0000\u068b\u068c\u0001\u0000\u0000\u0000\u068c\u00a5\u0001"+ + "\u0000\u0000\u0000\u068d\u068b\u0001\u0000\u0000\u0000\u068e\u0691\u0003"+ + "\u00a8T\u0000\u068f\u0691\u0003\u00aaU\u0000\u0690\u068e\u0001\u0000\u0000"+ + "\u0000\u0690\u068f\u0001\u0000\u0000\u0000\u0691\u00a7\u0001\u0000\u0000"+ + "\u0000\u0692\u0693\u0003\u0390\u01c8\u0000\u0693\u0694\u0005\u0177\u0000"+ + "\u0000\u0694\u0695\u0003\u043a\u021d\u0000\u0695\u00a9\u0001\u0000\u0000"+ + "\u0000\u0696\u0697\u0003\u0390\u01c8\u0000\u0697\u0698\u0003\u0184\u00c2"+ + "\u0000\u0698\u0699\u0003\u0438\u021c\u0000\u0699\u00ab\u0001\u0000\u0000"+ + "\u0000\u069a\u069c\u0007\u0002\u0000\u0000\u069b\u069a\u0001\u0000\u0000"+ + "\u0000\u069b\u069c\u0001\u0000\u0000\u0000\u069c\u069d\u0001\u0000\u0000"+ + "\u0000\u069d\u069e\u0005L\u0000\u0000\u069e\u069f\u0003\u00aeW\u0000\u069f"+ + "\u00ad\u0001\u0000\u0000\u0000\u06a0\u06a5\u0003\u00b0X\u0000\u06a1\u06a2"+ + "\u0005\u0169\u0000\u0000\u06a2\u06a4\u0003\u00b0X\u0000\u06a3\u06a1\u0001"+ + "\u0000\u0000\u0000\u06a4\u06a7\u0001\u0000\u0000\u0000\u06a5\u06a3\u0001"+ + "\u0000\u0000\u0000\u06a5\u06a6\u0001\u0000\u0000\u0000\u06a6\u00af\u0001"+ + "\u0000\u0000\u0000\u06a7\u06a5\u0001\u0000\u0000\u0000\u06a8\u06a9\u0003"+ + "\u0332\u0199\u0000\u06a9\u00b1\u0001\u0000\u0000\u0000\u06aa\u06ab\u0003"+ + "\u0110\u0088\u0000\u06ab\u00b3\u0001\u0000\u0000\u0000\u06ac\u06ad\u0003"+ + "\u00b6[\u0000\u06ad\u00b5\u0001\u0000\u0000\u0000\u06ae\u06af\u0006[\uffff"+ + "\uffff\u0000\u06af\u06b0\u0003\u00bc^\u0000\u06b0\u06b7\u0001\u0000\u0000"+ + "\u0000\u06b1\u06b2\n\u0002\u0000\u0000\u06b2\u06b3\u0003\u00b8\\\u0000"+ + "\u06b3\u06b4\u0003\u00bc^\u0000\u06b4\u06b6\u0001\u0000\u0000\u0000\u06b5"+ + "\u06b1\u0001\u0000\u0000\u0000\u06b6\u06b9\u0001\u0000\u0000\u0000\u06b7"+ + "\u06b5\u0001\u0000\u0000\u0000\u06b7\u06b8\u0001\u0000\u0000\u0000\u06b8"+ + "\u00b7\u0001\u0000\u0000\u0000\u06b9\u06b7\u0001\u0000\u0000\u0000\u06ba"+ + "\u06bd\u0003\u00ba]\u0000\u06bb\u06bd\u0005\u00a3\u0000\u0000\u06bc\u06ba"+ + "\u0001\u0000\u0000\u0000\u06bc\u06bb\u0001\u0000\u0000\u0000\u06bd\u00b9"+ + "\u0001\u0000\u0000\u0000\u06be\u06c0\u0005\u00dc\u0000\u0000\u06bf\u06c1"+ + "\u0003\u0386\u01c3\u0000\u06c0\u06bf\u0001\u0000\u0000\u0000\u06c0\u06c1"+ + "\u0001\u0000\u0000\u0000\u06c1\u06cb\u0001\u0000\u0000\u0000\u06c2\u06c4"+ + "\u0005X\u0000\u0000\u06c3\u06c5\u0003\u0386\u01c3\u0000\u06c4\u06c3\u0001"+ + "\u0000\u0000\u0000\u06c4\u06c5\u0001\u0000\u0000\u0000\u06c5\u06cb\u0001"+ + "\u0000\u0000\u0000\u06c6\u06c8\u0005}\u0000\u0000\u06c7\u06c9\u0003\u0386"+ + "\u01c3\u0000\u06c8\u06c7\u0001\u0000\u0000\u0000\u06c8\u06c9\u0001\u0000"+ + "\u0000\u0000\u06c9\u06cb\u0001\u0000\u0000\u0000\u06ca\u06be\u0001\u0000"+ + "\u0000\u0000\u06ca\u06c2\u0001\u0000\u0000\u0000\u06ca\u06c6\u0001\u0000"+ + "\u0000\u0000\u06cb\u00bb\u0001\u0000\u0000\u0000\u06cc\u06cd\u0003\u00be"+ + "_\u0000\u06cd\u00bd\u0001\u0000\u0000\u0000\u06ce\u06d1\u0003\u00c0`\u0000"+ + "\u06cf\u06d1\u0003\u00cae\u0000\u06d0\u06ce\u0001\u0000\u0000\u0000\u06d0"+ + "\u06cf\u0001\u0000\u0000\u0000\u06d1\u00bf\u0001\u0000\u0000\u0000\u06d2"+ + "\u06d4\u0003\u00c2a\u0000\u06d3\u06d2\u0001\u0000\u0000\u0000\u06d4\u06d7"+ + "\u0001\u0000\u0000\u0000\u06d5\u06d3\u0001\u0000\u0000\u0000\u06d5\u06d6"+ + "\u0001\u0000\u0000\u0000\u06d6\u06d8\u0001\u0000\u0000\u0000\u06d7\u06d5"+ + "\u0001\u0000\u0000\u0000\u06d8\u06dd\u0003\u00c4b\u0000\u06d9\u06dd\u0003"+ + "\u00c6c\u0000\u06da\u06dd\u0003\u00c8d\u0000\u06db\u06dd\u0003\u00fe\u007f"+ + "\u0000\u06dc\u06d5\u0001\u0000\u0000\u0000\u06dc\u06d9\u0001\u0000\u0000"+ + "\u0000\u06dc\u06da\u0001\u0000\u0000\u0000\u06dc\u06db\u0001\u0000\u0000"+ + "\u0000\u06dd\u00c1\u0001\u0000\u0000\u0000\u06de\u06df\u0003\u0122\u0091"+ + "\u0000\u06df\u06e0\u0003\u00ccf\u0000\u06e0\u00c3\u0001\u0000\u0000\u0000"+ + "\u06e1\u06e2\u0003\u0122\u0091\u0000\u06e2\u06e3\u0003\u00ccf\u0000\u06e3"+ + "\u06e4\u0003\u00f2y\u0000\u06e4\u00c5\u0001\u0000\u0000\u0000\u06e5\u06e6"+ + "\u0003\u0122\u0091\u0000\u06e6\u06e7\u0003\u00f2y\u0000\u06e7\u00c7\u0001"+ + "\u0000\u0000\u0000\u06e8\u06e9\u0003\u0122\u0091\u0000\u06e9\u06ea\u0003"+ + "8\u001c\u0000\u06ea\u00c9\u0001\u0000\u0000\u0000\u06eb\u06ed\u0003\u00cc"+ + "f\u0000\u06ec\u06eb\u0001\u0000\u0000\u0000\u06ec\u06ed\u0001\u0000\u0000"+ + "\u0000\u06ed\u06ee\u0001\u0000\u0000\u0000\u06ee\u06f1\u0003\u00f2y\u0000"+ + "\u06ef\u06f1\u00038\u001c\u0000\u06f0\u06ec\u0001\u0000\u0000\u0000\u06f0"+ + "\u06ef\u0001\u0000\u0000\u0000\u06f1\u00cb\u0001\u0000\u0000\u0000\u06f2"+ + "\u06f4\u0003\u00ceg\u0000\u06f3\u06f2\u0001\u0000\u0000\u0000\u06f4\u06f5"+ + "\u0001\u0000\u0000\u0000\u06f5\u06f3\u0001\u0000\u0000\u0000\u06f5\u06f6"+ + "\u0001\u0000\u0000\u0000\u06f6\u00cd\u0001\u0000\u0000\u0000\u06f7\u06fa"+ + "\u0003\u00d0h\u0000\u06f8\u06fa\u0003\u00dcn\u0000\u06f9\u06f7\u0001\u0000"+ + "\u0000\u0000\u06f9\u06f8\u0001\u0000\u0000\u0000\u06fa\u00cf\u0001\u0000"+ + "\u0000\u0000\u06fb\u0701\u0003\u00d2i\u0000\u06fc\u0701\u0003\u00e0p\u0000"+ + "\u06fd\u0701\u0003\u00e6s\u0000\u06fe\u0701\u0003\u00deo\u0000\u06ff\u0701"+ + "\u0003\u00f0x\u0000\u0700\u06fb\u0001\u0000\u0000\u0000\u0700\u06fc\u0001"+ + "\u0000\u0000\u0000\u0700\u06fd\u0001\u0000\u0000\u0000\u0700\u06fe\u0001"+ + "\u0000\u0000\u0000\u0700\u06ff\u0001\u0000\u0000\u0000\u0701\u00d1\u0001"+ + "\u0000\u0000\u0000\u0702\u0705\u0003\u00d4j\u0000\u0703\u0705\u0003\u00d6"+ + "k\u0000\u0704\u0702\u0001\u0000\u0000\u0000\u0704\u0703\u0001\u0000\u0000"+ + "\u0000\u0705\u00d3\u0001\u0000\u0000\u0000\u0706\u0707\u0005\u008f\u0000"+ + "\u0000\u0707\u0708\u0003\u0124\u0092\u0000\u0708\u00d5\u0001\u0000\u0000"+ + "\u0000\u0709\u070a\u0005\u00a0\u0000\u0000\u070a\u070b\u0003\u00d8l\u0000"+ + "\u070b\u00d7\u0001\u0000\u0000\u0000\u070c\u0716\u0003\u00d4j\u0000\u070d"+ + "\u070e\u0005\u0171\u0000\u0000\u070e\u070f\u0003\u00dam\u0000\u070f\u0710"+ + "\u0005\u017c\u0000\u0000\u0710\u0716\u0001\u0000\u0000\u0000\u0711\u0712"+ + "\u0005\u0173\u0000\u0000\u0712\u0713\u0003\u00dam\u0000\u0713\u0714\u0005"+ + "\u017e\u0000\u0000\u0714\u0716\u0001\u0000\u0000\u0000\u0715\u070c\u0001"+ + "\u0000\u0000\u0000\u0715\u070d\u0001\u0000\u0000\u0000\u0715\u0711\u0001"+ + "\u0000\u0000\u0000\u0716\u00d9\u0001\u0000\u0000\u0000\u0717\u0719\u0003"+ + "\u00d2i\u0000\u0718\u0717\u0001\u0000\u0000\u0000\u0719\u071a\u0001\u0000"+ + "\u0000\u0000\u071a\u0718\u0001\u0000\u0000\u0000\u071a\u071b\u0001\u0000"+ + "\u0000\u0000\u071b\u00db\u0001\u0000\u0000\u0000\u071c\u071d\u0003\u0110"+ + "\u0088\u0000\u071d\u00dd\u0001\u0000\u0000\u0000\u071e\u0721\u0005[\u0000"+ + "\u0000\u071f\u0722\u0003\u01f2\u00f9\u0000\u0720\u0722\u0003\u0304\u0182"+ + "\u0000\u0721\u071f\u0001\u0000\u0000\u0000\u0721\u0720\u0001\u0000\u0000"+ + "\u0000\u0722\u00df\u0001\u0000\u0000\u0000\u0723\u0724\u0005\u0082\u0000"+ + "\u0000\u0724\u0725\u0003\u00e2q\u0000\u0725\u00e1\u0001\u0000\u0000\u0000"+ + "\u0726\u072b\u0003\u00e4r\u0000\u0727\u0728\u0005\u0169\u0000\u0000\u0728"+ + "\u072a\u0003\u00e4r\u0000\u0729\u0727\u0001\u0000\u0000\u0000\u072a\u072d"+ + "\u0001\u0000\u0000\u0000\u072b\u0729\u0001\u0000\u0000\u0000\u072b\u072c"+ + "\u0001\u0000\u0000\u0000\u072c\u00e3\u0001\u0000\u0000\u0000\u072d\u072b"+ + "\u0001\u0000\u0000\u0000\u072e\u0734\u0003R)\u0000\u072f\u0730\u0003\u0444"+ + "\u0222\u0000\u0730\u0731\u0005\u016d\u0000\u0000\u0731\u0732\u0003\u0332"+ + "\u0199\u0000\u0732\u0734\u0001\u0000\u0000\u0000\u0733\u072e\u0001\u0000"+ + "\u0000\u0000\u0733\u072f\u0001\u0000\u0000\u0000\u0734\u00e5\u0001\u0000"+ + "\u0000\u0000\u0735\u0736\u0005d\u0000\u0000\u0736\u0738\u0003\u00e8t\u0000"+ + "\u0737\u0739\u0003\u00eew\u0000\u0738\u0737\u0001\u0000\u0000\u0000\u0738"+ + "\u0739\u0001\u0000\u0000\u0000\u0739\u00e7\u0001\u0000\u0000\u0000\u073a"+ + "\u073b\u0003\u00eau\u0000\u073b\u073c\u0003\u00ecv\u0000\u073c\u00e9\u0001"+ + "\u0000\u0000\u0000\u073d\u073e\u0003\u0444\u0222\u0000\u073e\u073f\u0005"+ + "m\u0000\u0000\u073f\u00eb\u0001\u0000\u0000\u0000\u0740\u0741\u0003\u0332"+ + "\u0199\u0000\u0741\u00ed\u0001\u0000\u0000\u0000\u0742\u0743\u0005\u00e7"+ + "\u0000\u0000\u0743\u0744\u0007\u0003\u0000\u0000\u0744\u0745\u0003\u0444"+ + "\u0222\u0000\u0745\u00ef\u0001\u0000\u0000\u0000\u0746\u0748\u0003\u0206"+ + "\u0103\u0000\u0747\u0749\u0003\u0214\u010a\u0000\u0748\u0747\u0001\u0000"+ + "\u0000\u0000\u0748\u0749\u0001\u0000\u0000\u0000\u0749\u074b\u0001\u0000"+ + "\u0000\u0000\u074a\u074c\u0003\u0212\u0109\u0000\u074b\u074a\u0001\u0000"+ + "\u0000\u0000\u074b\u074c\u0001\u0000\u0000\u0000\u074c\u0753\u0001\u0000"+ + "\u0000\u0000\u074d\u074f\u0003\u0214\u010a\u0000\u074e\u0750\u0003\u0212"+ + "\u0109\u0000\u074f\u074e\u0001\u0000\u0000\u0000\u074f\u0750\u0001\u0000"+ + "\u0000\u0000\u0750\u0753\u0001\u0000\u0000\u0000\u0751\u0753\u0003\u0212"+ + "\u0109\u0000\u0752\u0746\u0001\u0000\u0000\u0000\u0752\u074d\u0001\u0000"+ + "\u0000\u0000\u0752\u0751\u0001\u0000\u0000\u0000\u0753\u00f1\u0001\u0000"+ + "\u0000\u0000\u0754\u0756\u0003\u00f4z\u0000\u0755\u0757\u0003\u00f0x\u0000"+ + "\u0756\u0755\u0001\u0000\u0000\u0000\u0756\u0757\u0001\u0000\u0000\u0000"+ + "\u0757\u075a\u0001\u0000\u0000\u0000\u0758\u075a\u0005\\\u0000\u0000\u0759"+ + "\u0754\u0001\u0000\u0000\u0000\u0759\u0758\u0001\u0000\u0000\u0000\u075a"+ + "\u00f3\u0001\u0000\u0000\u0000\u075b\u075c\u0005\u00b4\u0000\u0000\u075c"+ + "\u075d\u0003\u00f6{\u0000\u075d\u00f5\u0001\u0000\u0000\u0000\u075e\u0760"+ + "\u0003\u0386\u01c3\u0000\u075f\u075e\u0001\u0000\u0000\u0000\u075f\u0760"+ + "\u0001\u0000\u0000\u0000\u0760\u0763\u0001\u0000\u0000\u0000\u0761\u0764"+ + "\u0005\u0167\u0000\u0000\u0762\u0764\u0003\u00f8|\u0000\u0763\u0761\u0001"+ + "\u0000\u0000\u0000\u0763\u0762\u0001\u0000\u0000\u0000\u0764\u0766\u0001"+ + "\u0000\u0000\u0000\u0765\u0767\u0003\u01fe\u00ff\u0000\u0766\u0765\u0001"+ + "\u0000\u0000\u0000\u0766\u0767\u0001\u0000\u0000\u0000\u0767\u076b\u0001"+ + "\u0000\u0000\u0000\u0768\u0769\u0005\u012c\u0000\u0000\u0769\u076b\u0005"+ + "\u0117\u0000\u0000\u076a\u075f\u0001\u0000\u0000\u0000\u076a\u0768\u0001"+ + "\u0000\u0000\u0000\u076b\u00f7\u0001\u0000\u0000\u0000\u076c\u0771\u0003"+ + "\u00fa}\u0000\u076d\u076e\u0005\u0169\u0000\u0000\u076e\u0770\u0003\u00fa"+ + "}\u0000\u076f\u076d\u0001\u0000\u0000\u0000\u0770\u0773\u0001\u0000\u0000"+ + "\u0000\u0771\u076f\u0001\u0000\u0000\u0000\u0771\u0772\u0001\u0000\u0000"+ + "\u0000\u0772\u00f9\u0001\u0000\u0000\u0000\u0773\u0771\u0001\u0000\u0000"+ + "\u0000\u0774\u0776\u0003\u0348\u01a4\u0000\u0775\u0777\u0003\u00fc~\u0000"+ + "\u0776\u0775\u0001\u0000\u0000\u0000\u0776\u0777\u0001\u0000\u0000\u0000"+ + "\u0777\u00fb\u0001\u0000\u0000\u0000\u0778\u0779\u0005\u001b\u0000\u0000"+ + "\u0779\u077a\u0003\u0456\u022b\u0000\u077a\u00fd\u0001\u0000\u0000\u0000"+ + "\u077b\u077d\u0005\u00bb\u0000\u0000\u077c\u077e\u0003\u0386\u01c3\u0000"+ + "\u077d\u077c\u0001\u0000\u0000\u0000\u077d\u077e\u0001\u0000\u0000\u0000"+ + "\u077e\u0781\u0001\u0000\u0000\u0000\u077f\u0782\u0005\u0167\u0000\u0000"+ + "\u0780\u0782\u0003\u0100\u0080\u0000\u0781\u077f\u0001\u0000\u0000\u0000"+ + "\u0781\u0780\u0001\u0000\u0000\u0000\u0782\u0796\u0001\u0000\u0000\u0000"+ + "\u0783\u0785\u0003\u0108\u0084\u0000\u0784\u0786\u0003\u01f2\u00f9\u0000"+ + "\u0785\u0784\u0001\u0000\u0000\u0000\u0785\u0786\u0001\u0000\u0000\u0000"+ + "\u0786\u0788\u0001\u0000\u0000\u0000\u0787\u0789\u0003\u01fe\u00ff\u0000"+ + "\u0788\u0787\u0001\u0000\u0000\u0000\u0788\u0789\u0001\u0000\u0000\u0000"+ + "\u0789\u078b\u0001\u0000\u0000\u0000\u078a\u078c\u0003\u0106\u0083\u0000"+ + "\u078b\u078a\u0001\u0000\u0000\u0000\u078b\u078c\u0001\u0000\u0000\u0000"+ + "\u078c\u078e\u0001\u0000\u0000\u0000\u078d\u078f\u0003\u0206\u0103\u0000"+ + "\u078e\u078d\u0001\u0000\u0000\u0000\u078e\u078f\u0001\u0000\u0000\u0000"+ + "\u078f\u0791\u0001\u0000\u0000\u0000\u0790\u0792\u0003\u0214\u010a\u0000"+ + "\u0791\u0790\u0001\u0000\u0000\u0000\u0791\u0792\u0001\u0000\u0000\u0000"+ + "\u0792\u0794\u0001\u0000\u0000\u0000\u0793\u0795\u0003\u0212\u0109\u0000"+ + "\u0794\u0793\u0001\u0000\u0000\u0000\u0794\u0795\u0001\u0000\u0000\u0000"+ + "\u0795\u0797\u0001\u0000\u0000\u0000\u0796\u0783\u0001\u0000\u0000\u0000"+ + "\u0796\u0797\u0001\u0000\u0000\u0000\u0797\u00ff\u0001\u0000\u0000\u0000"+ + "\u0798\u079d\u0003\u0102\u0081\u0000\u0799\u079a\u0005\u0169\u0000\u0000"+ + "\u079a\u079c\u0003\u0102\u0081\u0000\u079b\u0799\u0001\u0000\u0000\u0000"+ + "\u079c\u079f\u0001\u0000\u0000\u0000\u079d\u079b\u0001\u0000\u0000\u0000"+ + "\u079d\u079e\u0001\u0000\u0000\u0000\u079e\u0101\u0001\u0000\u0000\u0000"+ + "\u079f\u079d\u0001\u0000\u0000\u0000\u07a0\u07a2\u0003\u0348\u01a4\u0000"+ + "\u07a1\u07a3\u0003\u0104\u0082\u0000\u07a2\u07a1\u0001\u0000\u0000\u0000"+ + "\u07a2\u07a3\u0001\u0000\u0000\u0000\u07a3\u0103\u0001\u0000\u0000\u0000"+ + "\u07a4\u07a5\u0005\u001b\u0000\u0000\u07a5\u07a6\u0003\u0456\u022b\u0000"+ + "\u07a6\u0105\u0001\u0000\u0000\u0000\u07a7\u07a8\u0005g\u0000\u0000\u07a8"+ + "\u07a9\u0003\u0304\u0182\u0000\u07a9\u0107\u0001\u0000\u0000\u0000\u07aa"+ + "\u07ad\u0005e\u0000\u0000\u07ab\u07ae\u0003\u010a\u0085\u0000\u07ac\u07ae"+ + "\u0003\u010e\u0087\u0000\u07ad\u07ab\u0001\u0000\u0000\u0000\u07ad\u07ac"+ + "\u0001\u0000\u0000\u0000\u07ae\u0109\u0001\u0000\u0000\u0000\u07af\u07b4"+ + "\u0003\u010c\u0086\u0000\u07b0\u07b1\u0005\u0169\u0000\u0000\u07b1\u07b3"+ + "\u0003\u010c\u0086\u0000\u07b2\u07b0\u0001\u0000\u0000\u0000\u07b3\u07b6"+ + "\u0001\u0000\u0000\u0000\u07b4\u07b2\u0001\u0000\u0000\u0000\u07b4\u07b5"+ + "\u0001\u0000\u0000\u0000\u07b5\u010b\u0001\u0000\u0000\u0000\u07b6\u07b4"+ + "\u0001\u0000\u0000\u0000\u07b7\u07b8\u0003X,\u0000\u07b8\u07b9\u0003\u00d2"+ + "i\u0000\u07b9\u010d\u0001\u0000\u0000\u0000\u07ba\u07bf\u00038\u001c\u0000"+ + "\u07bb\u07bc\u0003X,\u0000\u07bc\u07bd\u00038\u001c\u0000\u07bd\u07bf"+ + "\u0001\u0000\u0000\u0000\u07be\u07ba\u0001\u0000\u0000\u0000\u07be\u07bb"+ + "\u0001\u0000\u0000\u0000\u07bf\u010f\u0001\u0000\u0000\u0000\u07c0\u07c2"+ + "\u0005\u00a0\u0000\u0000\u07c1\u07c0\u0001\u0000\u0000\u0000\u07c1\u07c2"+ + "\u0001\u0000\u0000\u0000\u07c2\u07c3\u0001\u0000\u0000\u0000\u07c3\u07c4"+ + "\u0005,\u0000\u0000\u07c4\u07c5\u0003\u0112\u0089\u0000\u07c5\u0111\u0001"+ + "\u0000\u0000\u0000\u07c6\u07c9\u0003\u0114\u008a\u0000\u07c7\u07c9\u0003"+ + "\u011a\u008d\u0000\u07c8\u07c6\u0001\u0000\u0000\u0000\u07c8\u07c7\u0001"+ + "\u0000\u0000\u0000\u07c9\u0113\u0001\u0000\u0000\u0000\u07ca\u07cc\u0003"+ + "\u0116\u008b\u0000\u07cb\u07ca\u0001\u0000\u0000\u0000\u07cb\u07cc\u0001"+ + "\u0000\u0000\u0000\u07cc\u07cd\u0001\u0000\u0000\u0000\u07cd\u07ce\u0003"+ + "2\u0019\u0000\u07ce\u0115\u0001\u0000\u0000\u0000\u07cf\u07d1\u0005\u0173"+ + "\u0000\u0000\u07d0\u07d2\u0003\u0118\u008c\u0000\u07d1\u07d0\u0001\u0000"+ + "\u0000\u0000\u07d1\u07d2\u0001\u0000\u0000\u0000\u07d2\u07d3\u0001\u0000"+ + "\u0000\u0000\u07d3\u07d4\u0005\u017e\u0000\u0000\u07d4\u0117\u0001\u0000"+ + "\u0000\u0000\u07d5\u07da\u0003\u0390\u01c8\u0000\u07d6\u07d7\u0005\u0169"+ + "\u0000\u0000\u07d7\u07d9\u0003\u0390\u01c8\u0000\u07d8\u07d6\u0001\u0000"+ + "\u0000\u0000\u07d9\u07dc\u0001\u0000\u0000\u0000\u07da\u07d8\u0001\u0000"+ + "\u0000\u0000\u07da\u07db\u0001\u0000\u0000\u0000\u07db\u0119\u0001\u0000"+ + "\u0000\u0000\u07dc\u07da\u0001\u0000\u0000\u0000\u07dd\u07de\u0003\u0234"+ + "\u011a\u0000\u07de\u07e0\u0005\u0173\u0000\u0000\u07df\u07e1\u0003\u011c"+ + "\u008e\u0000\u07e0\u07df\u0001\u0000\u0000\u0000\u07e0\u07e1\u0001\u0000"+ + "\u0000\u0000\u07e1\u07e2\u0001\u0000\u0000\u0000\u07e2\u07e4\u0005\u017e"+ + "\u0000\u0000\u07e3\u07e5\u0003\u01f4\u00fa\u0000\u07e4\u07e3\u0001\u0000"+ + "\u0000\u0000\u07e4\u07e5\u0001\u0000\u0000\u0000\u07e5\u011b\u0001\u0000"+ + "\u0000\u0000\u07e6\u07eb\u0003\u011e\u008f\u0000\u07e7\u07e8\u0005\u0169"+ + "\u0000\u0000\u07e8\u07ea\u0003\u011e\u008f\u0000\u07e9\u07e7\u0001\u0000"+ + "\u0000\u0000\u07ea\u07ed\u0001\u0000\u0000\u0000\u07eb\u07e9\u0001\u0000"+ + "\u0000\u0000\u07eb\u07ec\u0001\u0000\u0000\u0000\u07ec\u011d\u0001\u0000"+ + "\u0000\u0000\u07ed\u07eb\u0001\u0000\u0000\u0000\u07ee\u07ef\u0003\u0332"+ + "\u0199\u0000\u07ef\u011f\u0001\u0000\u0000\u0000\u07f0\u07f1\u0005\u001f"+ + "\u0000\u0000\u07f1\u07f2\u0003\u0218\u010c\u0000\u07f2\u0121\u0001\u0000"+ + "\u0000\u0000\u07f3\u07f4\u0005\u00df\u0000\u0000\u07f4\u07f5\u0003X,\u0000"+ + "\u07f5\u0123\u0001\u0000\u0000\u0000\u07f6\u07f8\u0003\u012c\u0096\u0000"+ + "\u07f7\u07f9\u0003\u0126\u0093\u0000\u07f8\u07f7\u0001\u0000\u0000\u0000"+ + "\u07f8\u07f9\u0001\u0000\u0000\u0000\u07f9\u0125\u0001\u0000\u0000\u0000"+ + "\u07fa\u07fb\u0005\u00ea\u0000\u0000\u07fb\u07fc\u0003\u0128\u0094\u0000"+ + "\u07fc\u0127\u0001\u0000\u0000\u0000\u07fd\u0802\u0003\u012a\u0095\u0000"+ + "\u07fe\u07ff\u0005\u0169\u0000\u0000\u07ff\u0801\u0003\u012a\u0095\u0000"+ + "\u0800\u07fe\u0001\u0000\u0000\u0000\u0801\u0804\u0001\u0000\u0000\u0000"+ + "\u0802\u0800\u0001\u0000\u0000\u0000\u0802\u0803\u0001\u0000\u0000\u0000"+ + "\u0803\u0808\u0001\u0000\u0000\u0000\u0804\u0802\u0001\u0000\u0000\u0000"+ + "\u0805\u0806\u0005\u012c\u0000\u0000\u0806\u0808\u0005\u0117\u0000\u0000"+ + "\u0807\u07fd\u0001\u0000\u0000\u0000\u0807\u0805\u0001\u0000\u0000\u0000"+ + "\u0808\u0129\u0001\u0000\u0000\u0000\u0809\u080a\u0003\u0390\u01c8\u0000"+ + "\u080a\u012b\u0001\u0000\u0000\u0000\u080b\u080d\u0003\u012e\u0097\u0000"+ + "\u080c\u080b\u0001\u0000\u0000\u0000\u080c\u080d\u0001\u0000\u0000\u0000"+ + "\u080d\u080e\u0001\u0000\u0000\u0000\u080e\u0810\u0003\u0138\u009c\u0000"+ + "\u080f\u0811\u0003\u013e\u009f\u0000\u0810\u080f\u0001\u0000\u0000\u0000"+ + "\u0810\u0811\u0001\u0000\u0000\u0000\u0811\u0813\u0001\u0000\u0000\u0000"+ + "\u0812\u0814\u0003\u0140\u00a0\u0000\u0813\u0812\u0001\u0000\u0000\u0000"+ + "\u0813\u0814\u0001\u0000\u0000\u0000\u0814\u012d\u0001\u0000\u0000\u0000"+ + "\u0815\u0818\u0003\u0130\u0098\u0000\u0816\u0818\u0003\u0132\u0099\u0000"+ + "\u0817\u0815\u0001\u0000\u0000\u0000\u0817\u0816\u0001\u0000\u0000\u0000"+ + "\u0818\u012f\u0001\u0000\u0000\u0000\u0819\u081a\u0005\u0135\u0000\u0000"+ + "\u081a\u081b\u0003\u0134\u009a\u0000\u081b\u0131\u0001\u0000\u0000\u0000"+ + "\u081c\u081d\u0005\u011a\u0000\u0000\u081d\u081e\u0003\u0136\u009b\u0000"+ + "\u081e\u0133\u0001\u0000\u0000\u0000\u081f\u0821\u0005\u011e\u0000\u0000"+ + "\u0820\u0822\u0005\u0117\u0000\u0000\u0821\u0820\u0001\u0000\u0000\u0000"+ + "\u0821\u0822\u0001\u0000\u0000\u0000\u0822\u0825\u0001\u0000\u0000\u0000"+ + "\u0823\u0825\u0005\u011f\u0000\u0000\u0824\u081f\u0001\u0000\u0000\u0000"+ + "\u0824\u0823\u0001\u0000\u0000\u0000\u0825\u0135\u0001\u0000\u0000\u0000"+ + "\u0826\u0828\u0003\u0478\u023c\u0000\u0827\u0829\u0005\u0117\u0000\u0000"+ + "\u0828\u0827\u0001\u0000\u0000\u0000\u0828\u0829\u0001\u0000\u0000\u0000"+ + "\u0829\u082c\u0001\u0000\u0000\u0000\u082a\u082c\u0003\u0476\u023b\u0000"+ + "\u082b\u0826\u0001\u0000\u0000\u0000\u082b\u082a\u0001\u0000\u0000\u0000"+ + "\u082c\u0137\u0001\u0000\u0000\u0000\u082d\u0832\u0003\u013a\u009d\u0000"+ + "\u082e\u082f\u0005\u0169\u0000\u0000\u082f\u0831\u0003\u013a\u009d\u0000"+ + "\u0830\u082e\u0001\u0000\u0000\u0000\u0831\u0834\u0001\u0000\u0000\u0000"+ + "\u0832\u0830\u0001\u0000\u0000\u0000\u0832\u0833\u0001\u0000\u0000\u0000"+ + "\u0833\u0139\u0001\u0000\u0000\u0000\u0834\u0832\u0001\u0000\u0000\u0000"+ + "\u0835\u0837\u0003\u013c\u009e\u0000\u0836\u0835\u0001\u0000\u0000\u0000"+ + "\u0836\u0837\u0001\u0000\u0000\u0000\u0837\u0839\u0001\u0000\u0000\u0000"+ + "\u0838\u083a\u0003\u0156\u00ab\u0000\u0839\u0838\u0001\u0000\u0000\u0000"+ + "\u0839\u083a\u0001\u0000\u0000\u0000\u083a\u083b\u0001\u0000\u0000\u0000"+ + "\u083b\u083c\u0003\u0172\u00b9\u0000\u083c\u013b\u0001\u0000\u0000\u0000"+ + "\u083d\u083e\u0003\u0440\u0220\u0000\u083e\u083f\u0005\u016d\u0000\u0000"+ + "\u083f\u013d\u0001\u0000\u0000\u0000\u0840\u0841\u0005\u0123\u0000\u0000"+ + "\u0841\u0842\u0003\u0156\u00ab\u0000\u0842\u013f\u0001\u0000\u0000\u0000"+ + "\u0843\u0844\u0005\u00e6\u0000\u0000\u0844\u0845\u0003\u0304\u0182\u0000"+ + "\u0845\u0141\u0001\u0000\u0000\u0000\u0846\u0847\u0003\u0144\u00a2\u0000"+ + "\u0847\u0143\u0001\u0000\u0000\u0000\u0848\u084d\u0003\u0146\u00a3\u0000"+ + "\u0849\u084a\u0005\u0169\u0000\u0000\u084a\u084c\u0003\u0146\u00a3\u0000"+ + "\u084b\u0849\u0001\u0000\u0000\u0000\u084c\u084f\u0001\u0000\u0000\u0000"+ + "\u084d\u084b\u0001\u0000\u0000\u0000\u084d\u084e\u0001\u0000\u0000\u0000"+ + "\u084e\u0145\u0001\u0000\u0000\u0000\u084f\u084d\u0001\u0000\u0000\u0000"+ + "\u0850\u0856\u0003\u0148\u00a4\u0000\u0851\u0852\u0003\u014a\u00a5\u0000"+ + "\u0852\u0853\u0003\u0148\u00a4\u0000\u0853\u0855\u0001\u0000\u0000\u0000"+ + "\u0854\u0851\u0001\u0000\u0000\u0000\u0855\u0858\u0001\u0000\u0000\u0000"+ + "\u0856\u0854\u0001\u0000\u0000\u0000\u0856\u0857\u0001\u0000\u0000\u0000"+ + "\u0857\u0147\u0001\u0000\u0000\u0000\u0858\u0856\u0001\u0000\u0000\u0000"+ + "\u0859\u085b\u0005\u0173\u0000\u0000\u085a\u085c\u0003\u0152\u00a9\u0000"+ + "\u085b\u085a\u0001\u0000\u0000\u0000\u085b\u085c\u0001\u0000\u0000\u0000"+ + "\u085c\u085d\u0001\u0000\u0000\u0000\u085d\u085e\u0005\u017e\u0000\u0000"+ + "\u085e\u0149\u0001\u0000\u0000\u0000\u085f\u0863\u0003\u014c\u00a6\u0000"+ + "\u0860\u0863\u0003\u014e\u00a7\u0000\u0861\u0863\u0003\u0150\u00a8\u0000"+ + "\u0862\u085f\u0001\u0000\u0000\u0000\u0862\u0860\u0001\u0000\u0000\u0000"+ + "\u0862\u0861\u0001\u0000\u0000\u0000\u0863\u014b\u0001\u0000\u0000\u0000"+ + "\u0864\u0866\u0005\u0152\u0000\u0000\u0865\u0867\u0003\u0152\u00a9\u0000"+ + "\u0866\u0865\u0001\u0000\u0000\u0000\u0866\u0867\u0001\u0000\u0000\u0000"+ + "\u0867\u0868\u0001\u0000\u0000\u0000\u0868\u0869\u0005\u015c\u0000\u0000"+ + "\u0869\u014d\u0001\u0000\u0000\u0000\u086a\u086c\u0005\u0158\u0000\u0000"+ + "\u086b\u086d\u0003\u0152\u00a9\u0000\u086c\u086b\u0001\u0000\u0000\u0000"+ + "\u086c\u086d\u0001\u0000\u0000\u0000\u086d\u086e\u0001\u0000\u0000\u0000"+ + "\u086e\u086f\u0005\u0149\u0000\u0000\u086f\u014f\u0001\u0000\u0000\u0000"+ + "\u0870\u0872\u0005\u0163\u0000\u0000\u0871\u0873\u0003\u0152\u00a9\u0000"+ + "\u0872\u0871\u0001\u0000\u0000\u0000\u0872\u0873\u0001\u0000\u0000\u0000"+ + "\u0873\u0874\u0001\u0000\u0000\u0000\u0874\u0875\u0005\u015d\u0000\u0000"+ + "\u0875\u0151\u0001\u0000\u0000\u0000\u0876\u0878\u0003\u0180\u00c0\u0000"+ + "\u0877\u0879\u0003\u0154\u00aa\u0000\u0878\u0877\u0001\u0000\u0000\u0000"+ + "\u0878\u0879\u0001\u0000\u0000\u0000\u0879\u087f\u0001\u0000\u0000\u0000"+ + "\u087a\u087c\u0003\u0180\u00c0\u0000\u087b\u087a\u0001\u0000\u0000\u0000"+ + "\u087b\u087c\u0001\u0000\u0000\u0000\u087c\u087d\u0001\u0000\u0000\u0000"+ + "\u087d\u087f\u0003\u0154\u00aa\u0000\u087e\u0876\u0001\u0000\u0000\u0000"+ + "\u087e\u087b\u0001\u0000\u0000\u0000\u087f\u0153\u0001\u0000\u0000\u0000"+ + "\u0880\u0881\u0003\u0184\u00c2\u0000\u0881\u0883\u0003\u0294\u014a\u0000"+ + "\u0882\u0884\u0003\u018a\u00c5\u0000\u0883\u0882\u0001\u0000\u0000\u0000"+ + "\u0883\u0884\u0001\u0000\u0000\u0000\u0884\u088c\u0001\u0000\u0000\u0000"+ + "\u0885\u0886\u0003\u0184\u00c2\u0000\u0886\u0887\u0003\u0294\u014a\u0000"+ + "\u0887\u0889\u0001\u0000\u0000\u0000\u0888\u0885\u0001\u0000\u0000\u0000"+ + "\u0888\u0889\u0001\u0000\u0000\u0000\u0889\u088a\u0001\u0000\u0000\u0000"+ + "\u088a\u088c\u0003\u018a\u00c5\u0000\u088b\u0880\u0001\u0000\u0000\u0000"+ + "\u088b\u0888\u0001\u0000\u0000\u0000\u088c\u0155\u0001\u0000\u0000\u0000"+ + "\u088d\u0890\u0003\u0158\u00ac\u0000\u088e\u0890\u0003\u015c\u00ae\u0000"+ + "\u088f\u088d\u0001\u0000\u0000\u0000\u088f\u088e\u0001\u0000\u0000\u0000"+ + "\u0890\u0157\u0001\u0000\u0000\u0000\u0891\u0893\u0003\u015a\u00ad\u0000"+ + "\u0892\u0894\u0003\u0160\u00b0\u0000\u0893\u0892\u0001\u0000\u0000\u0000"+ + "\u0893\u0894\u0001\u0000\u0000\u0000\u0894\u0159\u0001\u0000\u0000\u0000"+ + "\u0895\u0896\u0007\u0004\u0000\u0000\u0896\u015b\u0001\u0000\u0000\u0000"+ + "\u0897\u089b\u0003\u015e\u00af\u0000\u0898\u089b\u0003\u0162\u00b1\u0000"+ + "\u0899\u089b\u0003\u0166\u00b3\u0000\u089a\u0897\u0001\u0000\u0000\u0000"+ + "\u089a\u0898\u0001\u0000\u0000\u0000\u089a\u0899\u0001\u0000\u0000\u0000"+ + "\u089b\u015d\u0001\u0000\u0000\u0000\u089c\u089e\u0005\u0016\u0000\u0000"+ + "\u089d\u089f\u0003\u015a\u00ad\u0000\u089e\u089d\u0001\u0000\u0000\u0000"+ + "\u089e\u089f\u0001\u0000\u0000\u0000\u089f\u08a1\u0001\u0000\u0000\u0000"+ + "\u08a0\u08a2\u0003\u0160\u00b0\u0000\u08a1\u08a0\u0001\u0000\u0000\u0000"+ + "\u08a1\u08a2\u0001\u0000\u0000\u0000\u08a2\u015f\u0001\u0000\u0000\u0000"+ + "\u08a3\u08a4\u0007\u0005\u0000\u0000\u08a4\u0161\u0001\u0000\u0000\u0000"+ + "\u08a5\u08a7\u0005\u0019\u0000\u0000\u08a6\u08a8\u0003\u0164\u00b2\u0000"+ + "\u08a7\u08a6\u0001\u0000\u0000\u0000\u08a7\u08a8\u0001\u0000\u0000\u0000"+ + "\u08a8\u08aa\u0001\u0000\u0000\u0000\u08a9\u08ab\u0003\u015a\u00ad\u0000"+ + "\u08aa\u08a9\u0001\u0000\u0000\u0000\u08aa\u08ab\u0001\u0000\u0000\u0000"+ + "\u08ab\u08ad\u0001\u0000\u0000\u0000\u08ac\u08ae\u0003\u0160\u00b0\u0000"+ + "\u08ad"; + private static final String _serializedATNSegment1 = + "\u08ac\u0001\u0000\u0000\u0000\u08ad\u08ae\u0001\u0000\u0000\u0000\u08ae"+ + "\u0163\u0001\u0000\u0000\u0000\u08af\u08b0\u0003\u0354\u01aa\u0000\u08b0"+ + "\u0165\u0001\u0000\u0000\u0000\u08b1\u08b6\u0003\u0168\u00b4\u0000\u08b2"+ + "\u08b6\u0003\u016a\u00b5\u0000\u08b3\u08b6\u0003\u016c\u00b6\u0000\u08b4"+ + "\u08b6\u0003\u016e\u00b7\u0000\u08b5\u08b1\u0001\u0000\u0000\u0000\u08b5"+ + "\u08b2\u0001\u0000\u0000\u0000\u08b5\u08b3\u0001\u0000\u0000\u0000\u08b5"+ + "\u08b4\u0001\u0000\u0000\u0000\u08b6\u0167\u0001\u0000\u0000\u0000\u08b7"+ + "\u08b8\u0005\u0016\u0000\u0000\u08b8\u08ba\u0005\u0136\u0000\u0000\u08b9"+ + "\u08bb\u0003\u015a\u00ad\u0000\u08ba\u08b9\u0001\u0000\u0000\u0000\u08ba"+ + "\u08bb\u0001\u0000\u0000\u0000\u08bb\u08bd\u0001\u0000\u0000\u0000\u08bc"+ + "\u08be\u0003\u0160\u00b0\u0000\u08bd\u08bc\u0001\u0000\u0000\u0000\u08bd"+ + "\u08be\u0001\u0000\u0000\u0000\u08be\u0169\u0001\u0000\u0000\u0000\u08bf"+ + "\u08c0\u0005\u0019\u0000\u0000\u08c0\u08c2\u0005\u0136\u0000\u0000\u08c1"+ + "\u08c3\u0003\u015a\u00ad\u0000\u08c2\u08c1\u0001\u0000\u0000\u0000\u08c2"+ + "\u08c3\u0001\u0000\u0000\u0000\u08c3\u08c5\u0001\u0000\u0000\u0000\u08c4"+ + "\u08c6\u0003\u0160\u00b0\u0000\u08c5\u08c4\u0001\u0000\u0000\u0000\u08c5"+ + "\u08c6\u0001\u0000\u0000\u0000\u08c6\u016b\u0001\u0000\u0000\u0000\u08c7"+ + "\u08c8\u0005\u0136\u0000\u0000\u08c8\u08ca\u0003\u0164\u00b2\u0000\u08c9"+ + "\u08cb\u0003\u015a\u00ad\u0000\u08ca\u08c9\u0001\u0000\u0000\u0000\u08ca"+ + "\u08cb\u0001\u0000\u0000\u0000\u08cb\u08cd\u0001\u0000\u0000\u0000\u08cc"+ + "\u08ce\u0003\u0160\u00b0\u0000\u08cd\u08cc\u0001\u0000\u0000\u0000\u08cd"+ + "\u08ce\u0001\u0000\u0000\u0000\u08ce\u016d\u0001\u0000\u0000\u0000\u08cf"+ + "\u08d1\u0005\u0136\u0000\u0000\u08d0\u08d2\u0003\u0170\u00b8\u0000\u08d1"+ + "\u08d0\u0001\u0000\u0000\u0000\u08d1\u08d2\u0001\u0000\u0000\u0000\u08d2"+ + "\u08d4\u0001\u0000\u0000\u0000\u08d3\u08d5\u0003\u015a\u00ad\u0000\u08d4"+ + "\u08d3\u0001\u0000\u0000\u0000\u08d4\u08d5\u0001\u0000\u0000\u0000\u08d5"+ + "\u08d7\u0001\u0000\u0000\u0000\u08d6\u08d8\u0003\u0160\u00b0\u0000\u08d7"+ + "\u08d6\u0001\u0000\u0000\u0000\u08d7\u08d8\u0001\u0000\u0000\u0000\u08d8"+ + "\u08d9\u0001\u0000\u0000\u0000\u08d9\u08da\u0007\u0006\u0000\u0000\u08da"+ + "\u016f\u0001\u0000\u0000\u0000\u08db\u08dc\u0003\u0354\u01aa\u0000\u08dc"+ + "\u0171\u0001\u0000\u0000\u0000\u08dd\u08ed\u0003\u0174\u00ba\u0000\u08de"+ + "\u08e1\u0003\u0174\u00ba\u0000\u08df\u08e0\u0005\u0148\u0000\u0000\u08e0"+ + "\u08e2\u0003\u0174\u00ba\u0000\u08e1\u08df\u0001\u0000\u0000\u0000\u08e2"+ + "\u08e3\u0001\u0000\u0000\u0000\u08e3\u08e1\u0001\u0000\u0000\u0000\u08e3"+ + "\u08e4\u0001\u0000\u0000\u0000\u08e4\u08ed\u0001\u0000\u0000\u0000\u08e5"+ + "\u08e8\u0003\u0174\u00ba\u0000\u08e6\u08e7\u0005\u0182\u0000\u0000\u08e7"+ + "\u08e9\u0003\u0174\u00ba\u0000\u08e8\u08e6\u0001\u0000\u0000\u0000\u08e9"+ + "\u08ea\u0001\u0000\u0000\u0000\u08ea\u08e8\u0001\u0000\u0000\u0000\u08ea"+ + "\u08eb\u0001\u0000\u0000\u0000\u08eb\u08ed\u0001\u0000\u0000\u0000\u08ec"+ + "\u08dd\u0001\u0000\u0000\u0000\u08ec\u08de\u0001\u0000\u0000\u0000\u08ec"+ + "\u08e5\u0001\u0000\u0000\u0000\u08ed\u0173\u0001\u0000\u0000\u0000\u08ee"+ + "\u08f0\u0003\u0176\u00bb\u0000\u08ef\u08ee\u0001\u0000\u0000\u0000\u08f0"+ + "\u08f1\u0001\u0000\u0000\u0000\u08f1\u08ef\u0001\u0000\u0000\u0000\u08f1"+ + "\u08f2\u0001\u0000\u0000\u0000\u08f2\u0175\u0001\u0000\u0000\u0000\u08f3"+ + "\u08fb\u0003\u0178\u00bc\u0000\u08f4\u08f5\u0003\u0178\u00bc\u0000\u08f5"+ + "\u08f6\u0003\u01b0\u00d8\u0000\u08f6\u08fb\u0001\u0000\u0000\u0000\u08f7"+ + "\u08f8\u0003\u0178\u00bc\u0000\u08f8\u08f9\u0005\u0179\u0000\u0000\u08f9"+ + "\u08fb\u0001\u0000\u0000\u0000\u08fa\u08f3\u0001\u0000\u0000\u0000\u08fa"+ + "\u08f4\u0001\u0000\u0000\u0000\u08fa\u08f7\u0001\u0000\u0000\u0000\u08fb"+ + "\u0177\u0001\u0000\u0000\u0000\u08fc\u0900\u0003\u017a\u00bd\u0000\u08fd"+ + "\u0900\u0003\u01a4\u00d2\u0000\u08fe\u0900\u0003\u01ba\u00dd\u0000\u08ff"+ + "\u08fc\u0001\u0000\u0000\u0000\u08ff\u08fd\u0001\u0000\u0000\u0000\u08ff"+ + "\u08fe\u0001\u0000\u0000\u0000\u0900\u0179\u0001\u0000\u0000\u0000\u0901"+ + "\u0904\u0003\u017c\u00be\u0000\u0902\u0904\u0003\u0190\u00c8\u0000\u0903"+ + "\u0901\u0001\u0000\u0000\u0000\u0903\u0902\u0001\u0000\u0000\u0000\u0904"+ + "\u017b\u0001\u0000\u0000\u0000\u0905\u0906\u0005\u0173\u0000\u0000\u0906"+ + "\u0907\u0003\u017e\u00bf\u0000\u0907\u0908\u0005\u017e\u0000\u0000\u0908"+ + "\u017d\u0001\u0000\u0000\u0000\u0909\u090b\u0003\u0180\u00c0\u0000\u090a"+ + "\u0909\u0001\u0000\u0000\u0000\u090a\u090b\u0001\u0000\u0000\u0000\u090b"+ + "\u090d\u0001\u0000\u0000\u0000\u090c\u090e\u0003\u0182\u00c1\u0000\u090d"+ + "\u090c\u0001\u0000\u0000\u0000\u090d\u090e\u0001\u0000\u0000\u0000\u090e"+ + "\u0910\u0001\u0000\u0000\u0000\u090f\u0911\u0003\u0186\u00c3\u0000\u0910"+ + "\u090f\u0001\u0000\u0000\u0000\u0910\u0911\u0001\u0000\u0000\u0000\u0911"+ + "\u017f\u0001\u0000\u0000\u0000\u0912\u0914\u0005\u013a\u0000\u0000\u0913"+ + "\u0912\u0001\u0000\u0000\u0000\u0913\u0914\u0001\u0000\u0000\u0000\u0914"+ + "\u0915\u0001\u0000\u0000\u0000\u0915\u0916\u0003\u043e\u021f\u0000\u0916"+ + "\u0181\u0001\u0000\u0000\u0000\u0917\u0918\u0003\u0184\u00c2\u0000\u0918"+ + "\u0919\u0003\u01aa\u00d5\u0000\u0919\u0183\u0001\u0000\u0000\u0000\u091a"+ + "\u091b\u0007\u0007\u0000\u0000\u091b\u0185\u0001\u0000\u0000\u0000\u091c"+ + "\u091f\u0003\u0188\u00c4\u0000\u091d\u091f\u0003\u018a\u00c5\u0000\u091e"+ + "\u091c\u0001\u0000\u0000\u0000\u091e\u091d\u0001\u0000\u0000\u0000\u091f"+ + "\u0187\u0001\u0000\u0000\u0000\u0920\u0921\u0005\u00e6\u0000\u0000\u0921"+ + "\u0922\u0003\u0304\u0182\u0000\u0922\u0189\u0001\u0000\u0000\u0000\u0923"+ + "\u0924\u0005\u0171\u0000\u0000\u0924\u0925\u0003\u018c\u00c6\u0000\u0925"+ + "\u0926\u0005\u017c\u0000\u0000\u0926\u018b\u0001\u0000\u0000\u0000\u0927"+ + "\u092c\u0003\u018e\u00c7\u0000\u0928\u0929\u0005\u0169\u0000\u0000\u0929"+ + "\u092b\u0003\u018e\u00c7\u0000\u092a\u0928\u0001\u0000\u0000\u0000\u092b"+ + "\u092e\u0001\u0000\u0000\u0000\u092c\u092a\u0001\u0000\u0000\u0000\u092c"+ + "\u092d\u0001\u0000\u0000\u0000\u092d\u018d\u0001\u0000\u0000\u0000\u092e"+ + "\u092c\u0001\u0000\u0000\u0000\u092f\u0930\u0003\u043a\u021d\u0000\u0930"+ + "\u0931\u0005\u0168\u0000\u0000\u0931\u0932\u0003\u0332\u0199\u0000\u0932"+ + "\u018f\u0001\u0000\u0000\u0000\u0933\u0936\u0003\u0192\u00c9\u0000\u0934"+ + "\u0936\u0003\u01a2\u00d1\u0000\u0935\u0933\u0001\u0000\u0000\u0000\u0935"+ + "\u0934\u0001\u0000\u0000\u0000\u0936\u0191\u0001\u0000\u0000\u0000\u0937"+ + "\u093f\u0003\u0194\u00ca\u0000\u0938\u093f\u0003\u0196\u00cb\u0000\u0939"+ + "\u093f\u0003\u0198\u00cc\u0000\u093a\u093f\u0003\u019a\u00cd\u0000\u093b"+ + "\u093f\u0003\u019c\u00ce\u0000\u093c\u093f\u0003\u019e\u00cf\u0000\u093d"+ + "\u093f\u0003\u01a0\u00d0\u0000\u093e\u0937\u0001\u0000\u0000\u0000\u093e"+ + "\u0938\u0001\u0000\u0000\u0000\u093e\u0939\u0001\u0000\u0000\u0000\u093e"+ + "\u093a\u0001\u0000\u0000\u0000\u093e\u093b\u0001\u0000\u0000\u0000\u093e"+ + "\u093c\u0001\u0000\u0000\u0000\u093e\u093d\u0001\u0000\u0000\u0000\u093f"+ + "\u0193\u0001\u0000\u0000\u0000\u0940\u0941\u0005\u0152\u0000\u0000\u0941"+ + "\u0942\u0003\u017e\u00bf\u0000\u0942\u0943\u0005\u015c\u0000\u0000\u0943"+ + "\u0195\u0001\u0000\u0000\u0000\u0944\u0945\u0005\u0163\u0000\u0000\u0945"+ + "\u0946\u0003\u017e\u00bf\u0000\u0946\u0947\u0005\u015d\u0000\u0000\u0947"+ + "\u0197\u0001\u0000\u0000\u0000\u0948\u0949\u0005\u0158\u0000\u0000\u0949"+ + "\u094a\u0003\u017e\u00bf\u0000\u094a\u094b\u0005\u0149\u0000\u0000\u094b"+ + "\u0199\u0001\u0000\u0000\u0000\u094c\u094d\u0005\u0153\u0000\u0000\u094d"+ + "\u094e\u0003\u017e\u00bf\u0000\u094e\u094f\u0005\u015d\u0000\u0000\u094f"+ + "\u019b\u0001\u0000\u0000\u0000\u0950\u0951\u0005\u0163\u0000\u0000\u0951"+ + "\u0952\u0003\u017e\u00bf\u0000\u0952\u0953\u0005\u014a\u0000\u0000\u0953"+ + "\u019d\u0001\u0000\u0000\u0000\u0954\u0955\u0005\u0152\u0000\u0000\u0955"+ + "\u0956\u0003\u017e\u00bf\u0000\u0956\u0957\u0005\u0149\u0000\u0000\u0957"+ + "\u019f\u0001\u0000\u0000\u0000\u0958\u0959\u0005\u0158\u0000\u0000\u0959"+ + "\u095a\u0003\u017e\u00bf\u0000\u095a\u095b\u0005\u015c\u0000\u0000\u095b"+ + "\u01a1\u0001\u0000\u0000\u0000\u095c\u095d\u0007\b\u0000\u0000\u095d\u01a3"+ + "\u0001\u0000\u0000\u0000\u095e\u0960\u0005\u0173\u0000\u0000\u095f\u0961"+ + "\u0003\u01a6\u00d3\u0000\u0960\u095f\u0001\u0000\u0000\u0000\u0960\u0961"+ + "\u0001\u0000\u0000\u0000\u0961\u0963\u0001\u0000\u0000\u0000\u0962\u0964"+ + "\u0003\u0158\u00ac\u0000\u0963\u0962\u0001\u0000\u0000\u0000\u0963\u0964"+ + "\u0001\u0000\u0000\u0000\u0964\u0965\u0001\u0000\u0000\u0000\u0965\u0967"+ + "\u0003\u0172\u00b9\u0000\u0966\u0968\u0003\u01a8\u00d4\u0000\u0967\u0966"+ + "\u0001\u0000\u0000\u0000\u0967\u0968\u0001\u0000\u0000\u0000\u0968\u0969"+ + "\u0001\u0000\u0000\u0000\u0969\u096a\u0005\u017e\u0000\u0000\u096a\u01a5"+ + "\u0001\u0000\u0000\u0000\u096b\u096c\u0003\u0442\u0221\u0000\u096c\u096d"+ + "\u0005\u016d\u0000\u0000\u096d\u01a7\u0001\u0000\u0000\u0000\u096e\u096f"+ + "\u0005\u00e6\u0000\u0000\u096f\u0970\u0003\u0304\u0182\u0000\u0970\u01a9"+ + "\u0001\u0000\u0000\u0000\u0971\u0972\u0006\u00d5\uffff\uffff\u0000\u0972"+ + "\u0973\u0005\u016e\u0000\u0000\u0973\u097b\u0003\u01aa\u00d5\u0006\u0974"+ + "\u097b\u0003\u0438\u021c\u0000\u0975\u097b\u0005\u0176\u0000\u0000\u0976"+ + "\u0977\u0005\u0173\u0000\u0000\u0977\u0978\u0003\u01aa\u00d5\u0000\u0978"+ + "\u0979\u0005\u017e\u0000\u0000\u0979\u097b\u0001\u0000\u0000\u0000\u097a"+ + "\u0971\u0001\u0000\u0000\u0000\u097a\u0974\u0001\u0000\u0000\u0000\u097a"+ + "\u0975\u0001\u0000\u0000\u0000\u097a\u0976\u0001\u0000\u0000\u0000\u097b"+ + "\u0984\u0001\u0000\u0000\u0000\u097c\u097d\n\u0005\u0000\u0000\u097d\u097e"+ + "\u0005\u0166\u0000\u0000\u097e\u0983\u0003\u01aa\u00d5\u0006\u097f\u0980"+ + "\n\u0004\u0000\u0000\u0980\u0981\u0005\u0182\u0000\u0000\u0981\u0983\u0003"+ + "\u01aa\u00d5\u0005\u0982\u097c\u0001\u0000\u0000\u0000\u0982\u097f\u0001"+ + "\u0000\u0000\u0000\u0983\u0986\u0001\u0000\u0000\u0000\u0984\u0982\u0001"+ + "\u0000\u0000\u0000\u0984\u0985\u0001\u0000\u0000\u0000\u0985\u01ab\u0001"+ + "\u0000\u0000\u0000\u0986\u0984\u0001\u0000\u0000\u0000\u0987\u0988\u0003"+ + "\u0390\u01c8\u0000\u0988\u01ad\u0001\u0000\u0000\u0000\u0989\u098a\u0003"+ + "\u0390\u01c8\u0000\u098a\u01af\u0001\u0000\u0000\u0000\u098b\u0990\u0005"+ + "\u0167\u0000\u0000\u098c\u0990\u0005\u0178\u0000\u0000\u098d\u0990\u0003"+ + "\u01b2\u00d9\u0000\u098e\u0990\u0003\u01b4\u00da\u0000\u098f\u098b\u0001"+ + "\u0000\u0000\u0000\u098f\u098c\u0001\u0000\u0000\u0000\u098f\u098d\u0001"+ + "\u0000\u0000\u0000\u098f\u098e\u0001\u0000\u0000\u0000\u0990\u01b1\u0001"+ + "\u0000\u0000\u0000\u0991\u0992\u0005\u0171\u0000\u0000\u0992\u0993\u0003"+ + "\u0464\u0232\u0000\u0993\u0994\u0005\u017c\u0000\u0000\u0994\u01b3\u0001"+ + "\u0000\u0000\u0000\u0995\u0997\u0005\u0171\u0000\u0000\u0996\u0998\u0003"+ + "\u01b6\u00db\u0000\u0997\u0996\u0001\u0000\u0000\u0000\u0997\u0998\u0001"+ + "\u0000\u0000\u0000\u0998\u0999\u0001\u0000\u0000\u0000\u0999\u099b\u0005"+ + "\u0169\u0000\u0000\u099a\u099c\u0003\u01b8\u00dc\u0000\u099b\u099a\u0001"+ + "\u0000\u0000\u0000\u099b\u099c\u0001\u0000\u0000\u0000\u099c\u099d\u0001"+ + "\u0000\u0000\u0000\u099d\u099e\u0005\u017c\u0000\u0000\u099e\u01b5\u0001"+ + "\u0000\u0000\u0000\u099f\u09a0\u0003\u0464\u0232\u0000\u09a0\u01b7\u0001"+ + "\u0000\u0000\u0000\u09a1\u09a2\u0003\u0464\u0232\u0000\u09a2\u01b9\u0001"+ + "\u0000\u0000\u0000\u09a3\u09ab\u0003\u01bc\u00de\u0000\u09a4\u09ab\u0003"+ + "\u01be\u00df\u0000\u09a5\u09ab\u0003\u01c0\u00e0\u0000\u09a6\u09ab\u0003"+ + "\u01c2\u00e1\u0000\u09a7\u09ab\u0003\u01c4\u00e2\u0000\u09a8\u09ab\u0003"+ + "\u01c6\u00e3\u0000\u09a9\u09ab\u0003\u01c8\u00e4\u0000\u09aa\u09a3\u0001"+ + "\u0000\u0000\u0000\u09aa\u09a4\u0001\u0000\u0000\u0000\u09aa\u09a5\u0001"+ + "\u0000\u0000\u0000\u09aa\u09a6\u0001\u0000\u0000\u0000\u09aa\u09a7\u0001"+ + "\u0000\u0000\u0000\u09aa\u09a8\u0001\u0000\u0000\u0000\u09aa\u09a9\u0001"+ + "\u0000\u0000\u0000\u09ab\u01bb\u0001\u0000\u0000\u0000\u09ac\u09ad\u0005"+ + "\u0155\u0000\u0000\u09ad\u09ae\u0003\u01ca\u00e5\u0000\u09ae\u09af\u0005"+ + "\u015f\u0000\u0000\u09af\u01bd\u0001\u0000\u0000\u0000\u09b0\u09b1\u0005"+ + "\u0165\u0000\u0000\u09b1\u09b2\u0003\u01ca\u00e5\u0000\u09b2\u09b3\u0005"+ + "\u0161\u0000\u0000\u09b3\u01bf\u0001\u0000\u0000\u0000\u09b4\u09b5\u0005"+ + "\u0159\u0000\u0000\u09b5\u09b6\u0003\u01ca\u00e5\u0000\u09b6\u09b7\u0005"+ + "\u0160\u0000\u0000\u09b7\u01c1\u0001\u0000\u0000\u0000\u09b8\u09b9\u0005"+ + "\u0156\u0000\u0000\u09b9\u09ba\u0003\u01ca\u00e5\u0000\u09ba\u09bb\u0005"+ + "\u0161\u0000\u0000\u09bb\u01c3\u0001\u0000\u0000\u0000\u09bc\u09bd\u0005"+ + "\u0165\u0000\u0000\u09bd\u09be\u0003\u01ca\u00e5\u0000\u09be\u09bf\u0005"+ + "\u0162\u0000\u0000\u09bf\u01c5\u0001\u0000\u0000\u0000\u09c0\u09c1\u0005"+ + "\u0155\u0000\u0000\u09c1\u09c2\u0003\u01ca\u00e5\u0000\u09c2\u09c3\u0005"+ + "\u0160\u0000\u0000\u09c3\u01c7\u0001\u0000\u0000\u0000\u09c4\u09c5\u0005"+ + "\u0159\u0000\u0000\u09c5\u09c6\u0003\u01ca\u00e5\u0000\u09c6\u09c7\u0005"+ + "\u015f\u0000\u0000\u09c7\u01c9\u0001\u0000\u0000\u0000\u09c8\u09cc\u0003"+ + "\u01d0\u00e8\u0000\u09c9\u09cc\u0003\u01cc\u00e6\u0000\u09ca\u09cc\u0003"+ + "\u01ce\u00e7\u0000\u09cb\u09c8\u0001\u0000\u0000\u0000\u09cb\u09c9\u0001"+ + "\u0000\u0000\u0000\u09cb\u09ca\u0001\u0000\u0000\u0000\u09cc\u01cb\u0001"+ + "\u0000\u0000\u0000\u09cd\u09ce\u0003\u01d0\u00e8\u0000\u09ce\u09cf\u0005"+ + "\u0182\u0000\u0000\u09cf\u09d4\u0003\u01d0\u00e8\u0000\u09d0\u09d1\u0005"+ + "\u0182\u0000\u0000\u09d1\u09d3\u0003\u01d0\u00e8\u0000\u09d2\u09d0\u0001"+ + "\u0000\u0000\u0000\u09d3\u09d6\u0001\u0000\u0000\u0000\u09d4\u09d2\u0001"+ + "\u0000\u0000\u0000\u09d4\u09d5\u0001\u0000\u0000\u0000\u09d5\u01cd\u0001"+ + "\u0000\u0000\u0000\u09d6\u09d4\u0001\u0000\u0000\u0000\u09d7\u09d8\u0003"+ + "\u01d0\u00e8\u0000\u09d8\u09d9\u0005\u0148\u0000\u0000\u09d9\u09de\u0003"+ + "\u01d0\u00e8\u0000\u09da\u09db\u0005\u0148\u0000\u0000\u09db\u09dd\u0003"+ + "\u01d0\u00e8\u0000\u09dc\u09da\u0001\u0000\u0000\u0000\u09dd\u09e0\u0001"+ + "\u0000\u0000\u0000\u09de\u09dc\u0001\u0000\u0000\u0000\u09de\u09df\u0001"+ + "\u0000\u0000\u0000\u09df\u01cf\u0001\u0000\u0000\u0000\u09e0\u09de\u0001"+ + "\u0000\u0000\u0000\u09e1\u09e2\u0006\u00e8\uffff\uffff\u0000\u09e2\u09e3"+ + "\u0003\u01d2\u00e9\u0000\u09e3\u09e8\u0001\u0000\u0000\u0000\u09e4\u09e5"+ + "\n\u0001\u0000\u0000\u09e5\u09e7\u0003\u01d2\u00e9\u0000\u09e6\u09e4\u0001"+ + "\u0000\u0000\u0000\u09e7\u09ea\u0001\u0000\u0000\u0000\u09e8\u09e6\u0001"+ + "\u0000\u0000\u0000\u09e8\u09e9\u0001\u0000\u0000\u0000\u09e9\u01d1\u0001"+ + "\u0000\u0000\u0000\u09ea\u09e8\u0001\u0000\u0000\u0000\u09eb\u09ec\u0006"+ + "\u00e9\uffff\uffff\u0000\u09ec\u09ed\u0003\u01d4\u00ea\u0000\u09ed\u09f3"+ + "\u0001\u0000\u0000\u0000\u09ee\u09ef\n\u0001\u0000\u0000\u09ef\u09f0\u0005"+ + "\u0166\u0000\u0000\u09f0\u09f2\u0003\u01d4\u00ea\u0000\u09f1\u09ee\u0001"+ + "\u0000\u0000\u0000\u09f2\u09f5\u0001\u0000\u0000\u0000\u09f3\u09f1\u0001"+ + "\u0000\u0000\u0000\u09f3\u09f4\u0001\u0000\u0000\u0000\u09f4\u01d3\u0001"+ + "\u0000\u0000\u0000\u09f5\u09f3\u0001\u0000\u0000\u0000\u09f6\u09fa\u0003"+ + "\u01da\u00ed\u0000\u09f7\u09fa\u0003\u01d6\u00eb\u0000\u09f8\u09fa\u0003"+ + "\u01d8\u00ec\u0000\u09f9\u09f6\u0001\u0000\u0000\u0000\u09f9\u09f7\u0001"+ + "\u0000\u0000\u0000\u09f9\u09f8\u0001\u0000\u0000\u0000\u09fa\u01d5\u0001"+ + "\u0000\u0000\u0000\u09fb\u09fc\u0003\u01da\u00ed\u0000\u09fc\u09fd\u0003"+ + "\u01b0\u00d8\u0000\u09fd\u01d7\u0001\u0000\u0000\u0000\u09fe\u09ff\u0003"+ + "\u01da\u00ed\u0000\u09ff\u0a00\u0005\u0179\u0000\u0000\u0a00\u01d9\u0001"+ + "\u0000\u0000\u0000\u0a01\u0a04\u0003\u01dc\u00ee\u0000\u0a02\u0a04\u0003"+ + "\u01ec\u00f6\u0000\u0a03\u0a01\u0001\u0000\u0000\u0000\u0a03\u0a02\u0001"+ + "\u0000\u0000\u0000\u0a04\u01db\u0001\u0000\u0000\u0000\u0a05\u0a0d\u0003"+ + "\u01de\u00ef\u0000\u0a06\u0a0d\u0003\u01e0\u00f0\u0000\u0a07\u0a0d\u0003"+ + "\u01e2\u00f1\u0000\u0a08\u0a0d\u0003\u01e4\u00f2\u0000\u0a09\u0a0d\u0003"+ + "\u01e6\u00f3\u0000\u0a0a\u0a0d\u0003\u01e8\u00f4\u0000\u0a0b\u0a0d\u0003"+ + "\u01ea\u00f5\u0000\u0a0c\u0a05\u0001\u0000\u0000\u0000\u0a0c\u0a06\u0001"+ + "\u0000\u0000\u0000\u0a0c\u0a07\u0001\u0000\u0000\u0000\u0a0c\u0a08\u0001"+ + "\u0000\u0000\u0000\u0a0c\u0a09\u0001\u0000\u0000\u0000\u0a0c\u0a0a\u0001"+ + "\u0000\u0000\u0000\u0a0c\u0a0b\u0001\u0000\u0000\u0000\u0a0d\u01dd\u0001"+ + "\u0000\u0000\u0000\u0a0e\u0a0f\u0005\u0174\u0000\u0000\u0a0f\u0a10\u0003"+ + "\u01ec\u00f6\u0000\u0a10\u01df\u0001\u0000\u0000\u0000\u0a11\u0a12\u0005"+ + "\u0180\u0000\u0000\u0a12\u0a13\u0003\u01ec\u00f6\u0000\u0a13\u01e1\u0001"+ + "\u0000\u0000\u0000\u0a14\u0a15\u0003\u01ec\u00f6\u0000\u0a15\u0a16\u0005"+ + "\u016f\u0000\u0000\u0a16\u01e3\u0001\u0000\u0000\u0000\u0a17\u0a18\u0005"+ + "\u0151\u0000\u0000\u0a18\u0a19\u0003\u01ec\u00f6\u0000\u0a19\u01e5\u0001"+ + "\u0000\u0000\u0000\u0a1a\u0a1b\u0005\u0180\u0000\u0000\u0a1b\u0a1c\u0003"+ + "\u01ec\u00f6\u0000\u0a1c\u0a1d\u0005\u016f\u0000\u0000\u0a1d\u01e7\u0001"+ + "\u0000\u0000\u0000\u0a1e\u0a1f\u0005\u0174\u0000\u0000\u0a1f\u0a20\u0003"+ + "\u01ec\u00f6\u0000\u0a20\u0a21\u0005\u016f\u0000\u0000\u0a21\u01e9\u0001"+ + "\u0000\u0000\u0000\u0a22\u0a23\u0005\u0175\u0000\u0000\u0a23\u0a24\u0003"+ + "\u01ec\u00f6\u0000\u0a24\u01eb\u0001\u0000\u0000\u0000\u0a25\u0a28\u0003"+ + "\u01f0\u00f8\u0000\u0a26\u0a28\u0003\u01ee\u00f7\u0000\u0a27\u0a25\u0001"+ + "\u0000\u0000\u0000\u0a27\u0a26\u0001\u0000\u0000\u0000\u0a28\u01ed\u0001"+ + "\u0000\u0000\u0000\u0a29\u0a2a\u0005\u016e\u0000\u0000\u0a2a\u0a2b\u0003"+ + "\u01f0\u00f8\u0000\u0a2b\u01ef\u0001\u0000\u0000\u0000\u0a2c\u0a32\u0003"+ + "\u0438\u021c\u0000\u0a2d\u0a2e\u0005\u0173\u0000\u0000\u0a2e\u0a2f\u0003"+ + "\u01ca\u00e5\u0000\u0a2f\u0a30\u0005\u017e\u0000\u0000\u0a30\u0a32\u0001"+ + "\u0000\u0000\u0000\u0a31\u0a2c\u0001\u0000\u0000\u0000\u0a31\u0a2d\u0001"+ + "\u0000\u0000\u0000\u0a32\u01f1\u0001\u0000\u0000\u0000\u0a33\u0a34\u0005"+ + "\u00e6\u0000\u0000\u0a34\u0a35\u0003\u0304\u0182\u0000\u0a35\u01f3\u0001"+ + "\u0000\u0000\u0000\u0a36\u0a37\u0005\u00ea\u0000\u0000\u0a37\u0a38\u0003"+ + "\u01f6\u00fb\u0000\u0a38\u01f5\u0001\u0000\u0000\u0000\u0a39\u0a3e\u0003"+ + "\u01f8\u00fc\u0000\u0a3a\u0a3b\u0005\u0169\u0000\u0000\u0a3b\u0a3d\u0003"+ + "\u01f8\u00fc\u0000\u0a3c\u0a3a\u0001\u0000\u0000\u0000\u0a3d\u0a40\u0001"+ + "\u0000\u0000\u0000\u0a3e\u0a3c\u0001\u0000\u0000\u0000\u0a3e\u0a3f\u0001"+ + "\u0000\u0000\u0000\u0a3f\u01f7\u0001\u0000\u0000\u0000\u0a40\u0a3e\u0001"+ + "\u0000\u0000\u0000\u0a41\u0a43\u0003\u01fa\u00fd\u0000\u0a42\u0a44\u0003"+ + "\u01fc\u00fe\u0000\u0a43\u0a42\u0001\u0000\u0000\u0000\u0a43\u0a44\u0001"+ + "\u0000\u0000\u0000\u0a44\u01f9\u0001\u0000\u0000\u0000\u0a45\u0a46\u0003"+ + "\u043c\u021e\u0000\u0a46\u01fb\u0001\u0000\u0000\u0000\u0a47\u0a48\u0005"+ + "\u001b\u0000\u0000\u0a48\u0a49\u0003\u0444\u0222\u0000\u0a49\u01fd\u0001"+ + "\u0000\u0000\u0000\u0a4a\u0a4b\u0005f\u0000\u0000\u0a4b\u0a4c\u0005)\u0000"+ + "\u0000\u0a4c\u0a4d\u0003\u0200\u0100\u0000\u0a4d\u01ff\u0001\u0000\u0000"+ + "\u0000\u0a4e\u0a53\u0003\u0202\u0101\u0000\u0a4f\u0a50\u0005\u0169\u0000"+ + "\u0000\u0a50\u0a52\u0003\u0202\u0101\u0000\u0a51\u0a4f\u0001\u0000\u0000"+ + "\u0000\u0a52\u0a55\u0001\u0000\u0000\u0000\u0a53\u0a51\u0001\u0000\u0000"+ + "\u0000\u0a53\u0a54\u0001\u0000\u0000\u0000\u0a54\u0a58\u0001\u0000\u0000"+ + "\u0000\u0a55\u0a53\u0001\u0000\u0000\u0000\u0a56\u0a58\u0003\u0204\u0102"+ + "\u0000\u0a57\u0a4e\u0001\u0000\u0000\u0000\u0a57\u0a56\u0001\u0000\u0000"+ + "\u0000\u0a58\u0201\u0001\u0000\u0000\u0000\u0a59\u0a5a\u0003\u0390\u01c8"+ + "\u0000\u0a5a\u0203\u0001\u0000\u0000\u0000\u0a5b\u0a5c\u0005\u0173\u0000"+ + "\u0000\u0a5c\u0a5d\u0005\u017e\u0000\u0000\u0a5d\u0205\u0001\u0000\u0000"+ + "\u0000\u0a5e\u0a5f\u0005\u00a2\u0000\u0000\u0a5f\u0a60\u0005)\u0000\u0000"+ + "\u0a60\u0a61\u0003\u0208\u0104\u0000\u0a61\u0207\u0001\u0000\u0000\u0000"+ + "\u0a62\u0a67\u0003\u020a\u0105\u0000\u0a63\u0a64\u0005\u0169\u0000\u0000"+ + "\u0a64\u0a66\u0003\u020a\u0105\u0000\u0a65\u0a63\u0001\u0000\u0000\u0000"+ + "\u0a66\u0a69\u0001\u0000\u0000\u0000\u0a67\u0a65\u0001\u0000\u0000\u0000"+ + "\u0a67\u0a68\u0001\u0000\u0000\u0000\u0a68\u0209\u0001\u0000\u0000\u0000"+ + "\u0a69\u0a67\u0001\u0000\u0000\u0000\u0a6a\u0a6c\u0003\u020c\u0106\u0000"+ + "\u0a6b\u0a6d\u0003\u020e\u0107\u0000\u0a6c\u0a6b\u0001\u0000\u0000\u0000"+ + "\u0a6c\u0a6d\u0001\u0000\u0000\u0000\u0a6d\u0a6f\u0001\u0000\u0000\u0000"+ + "\u0a6e\u0a70\u0003\u0210\u0108\u0000\u0a6f\u0a6e\u0001\u0000\u0000\u0000"+ + "\u0a6f\u0a70\u0001\u0000\u0000\u0000\u0a70\u020b\u0001\u0000\u0000\u0000"+ + "\u0a71\u0a72\u0003\u0348\u01a4\u0000\u0a72\u020d\u0001\u0000\u0000\u0000"+ + "\u0a73\u0a74\u0007\t\u0000\u0000\u0a74\u020f\u0001\u0000\u0000\u0000\u0a75"+ + "\u0a76\u0005\u009b\u0000\u0000\u0a76\u0a7a\u0005\u0120\u0000\u0000\u0a77"+ + "\u0a78\u0005\u009b\u0000\u0000\u0a78\u0a7a\u0005\u0127\u0000\u0000\u0a79"+ + "\u0a75\u0001\u0000\u0000\u0000\u0a79\u0a77\u0001\u0000\u0000\u0000\u0a7a"+ + "\u0211\u0001\u0000\u0000\u0000\u0a7b\u0a7c\u0005\u0084\u0000\u0000\u0a7c"+ + "\u0a7d\u0003\u0354\u01aa\u0000\u0a7d\u0213\u0001\u0000\u0000\u0000\u0a7e"+ + "\u0a7f\u0003\u0216\u010b\u0000\u0a7f\u0a80\u0003\u0354\u01aa\u0000\u0a80"+ + "\u0215\u0001\u0000\u0000\u0000\u0a81\u0a82\u0007\n\u0000\u0000\u0a82\u0217"+ + "\u0001\u0000\u0000\u0000\u0a83\u0a87\u0003\u021a\u010d\u0000\u0a84\u0a87"+ + "\u0003\u021e\u010f\u0000\u0a85\u0a87\u0003\u023a\u011d\u0000\u0a86\u0a83"+ + "\u0001\u0000\u0000\u0000\u0a86\u0a84\u0001\u0000\u0000\u0000\u0a86\u0a85"+ + "\u0001\u0000\u0000\u0000\u0a87\u0219\u0001\u0000\u0000\u0000\u0a88\u0a8d"+ + "\u0005\u017f\u0000\u0000\u0a89\u0a8a\u0003\u0222\u0111\u0000\u0a8a\u0a8b"+ + "\u0003\u0426\u0213\u0000\u0a8b\u0a8d\u0001\u0000\u0000\u0000\u0a8c\u0a88"+ + "\u0001\u0000\u0000\u0000\u0a8c\u0a89\u0001\u0000\u0000\u0000\u0a8d\u021b"+ + "\u0001\u0000\u0000\u0000\u0a8e\u0a8f\u0003\u0222\u0111\u0000\u0a8f\u0a90"+ + "\u0003\u0426\u0213\u0000\u0a90\u021d\u0001\u0000\u0000\u0000\u0a91\u0a96"+ + "\u0003\u0220\u0110\u0000\u0a92\u0a93\u0003\u0224\u0112\u0000\u0a93\u0a94"+ + "\u0003\u0426\u0213\u0000\u0a94\u0a96\u0001\u0000\u0000\u0000\u0a95\u0a91"+ + "\u0001\u0000\u0000\u0000\u0a95\u0a92\u0001\u0000\u0000\u0000\u0a96\u021f"+ + "\u0001\u0000\u0000\u0000\u0a97\u0a98\u0007\u000b\u0000\u0000\u0a98\u0221"+ + "\u0001\u0000\u0000\u0000\u0a99\u0a9b\u0005\u017f\u0000\u0000\u0a9a\u0a9c"+ + "\u0003\u0226\u0113\u0000\u0a9b\u0a9a\u0001\u0000\u0000\u0000\u0a9b\u0a9c"+ + "\u0001\u0000\u0000\u0000\u0a9c\u0223\u0001\u0000\u0000\u0000\u0a9d\u0aa2"+ + "\u0005\u014e\u0000\u0000\u0a9e\u0a9f\u0005\u017f\u0000\u0000\u0a9f\u0aa1"+ + "\u0005\u014e\u0000\u0000\u0aa0\u0a9e\u0001\u0000\u0000\u0000\u0aa1\u0aa4"+ + "\u0001\u0000\u0000\u0000\u0aa2\u0aa0\u0001\u0000\u0000\u0000\u0aa2\u0aa3"+ + "\u0001\u0000\u0000\u0000\u0aa3\u0aa5\u0001\u0000\u0000\u0000\u0aa4\u0aa2"+ + "\u0001\u0000\u0000\u0000\u0aa5\u0aa7\u0005\u017f\u0000\u0000\u0aa6\u0aa8"+ + "\u0003\u0226\u0113\u0000\u0aa7\u0aa6\u0001\u0000\u0000\u0000\u0aa7\u0aa8"+ + "\u0001\u0000\u0000\u0000\u0aa8\u0225\u0001\u0000\u0000\u0000\u0aa9\u0aaa"+ + "\u0003\u0424\u0212\u0000\u0aaa\u0aab\u0005\u017f\u0000\u0000\u0aab\u0aad"+ + "\u0001\u0000\u0000\u0000\u0aac\u0aa9\u0001\u0000\u0000\u0000\u0aad\u0aae"+ + "\u0001\u0000\u0000\u0000\u0aae\u0aac\u0001\u0000\u0000\u0000\u0aae\u0aaf"+ + "\u0001\u0000\u0000\u0000\u0aaf\u0227\u0001\u0000\u0000\u0000\u0ab0\u0ab1"+ + "\u0003\u0238\u011c\u0000\u0ab1\u0ab2\u0003\u0428\u0214\u0000\u0ab2\u0ab7"+ + "\u0001\u0000\u0000\u0000\u0ab3\u0ab7\u0003\u042a\u0215\u0000\u0ab4\u0ab7"+ + "\u0003\u022c\u0116\u0000\u0ab5\u0ab7\u0003\u023a\u011d\u0000\u0ab6\u0ab0"+ + "\u0001\u0000\u0000\u0000\u0ab6\u0ab3\u0001\u0000\u0000\u0000\u0ab6\u0ab4"+ + "\u0001\u0000\u0000\u0000\u0ab6\u0ab5\u0001\u0000\u0000\u0000\u0ab7\u0229"+ + "\u0001\u0000\u0000\u0000\u0ab8\u0aba\u0003\u0238\u011c\u0000\u0ab9\u0ab8"+ + "\u0001\u0000\u0000\u0000\u0ab9\u0aba\u0001\u0000\u0000\u0000\u0aba\u0abb"+ + "\u0001\u0000\u0000\u0000\u0abb\u0abc\u0003\u0428\u0214\u0000\u0abc\u022b"+ + "\u0001\u0000\u0000\u0000\u0abd\u0abe\u0007\f\u0000\u0000\u0abe\u022d\u0001"+ + "\u0000\u0000\u0000\u0abf\u0ac2\u0003\u0230\u0118\u0000\u0ac0\u0ac2\u0003"+ + "\u023a\u011d\u0000\u0ac1\u0abf\u0001\u0000\u0000\u0000\u0ac1\u0ac0\u0001"+ + "\u0000\u0000\u0000\u0ac2\u022f\u0001\u0000\u0000\u0000\u0ac3\u0ac5\u0003"+ + "\u0238\u011c\u0000\u0ac4\u0ac3\u0001\u0000\u0000\u0000\u0ac4\u0ac5\u0001"+ + "\u0000\u0000\u0000\u0ac5\u0ac6\u0001\u0000\u0000\u0000\u0ac6\u0ac7\u0003"+ + "\u042c\u0216\u0000\u0ac7\u0231\u0001\u0000\u0000\u0000\u0ac8\u0ac9\u0003"+ + "\u0238\u011c\u0000\u0ac9\u0aca\u0003\u0432\u0219\u0000\u0aca\u0ace\u0001"+ + "\u0000\u0000\u0000\u0acb\u0ace\u0003\u0434\u021a\u0000\u0acc\u0ace\u0003"+ + "\u023a\u011d\u0000\u0acd\u0ac8\u0001\u0000\u0000\u0000\u0acd\u0acb\u0001"+ + "\u0000\u0000\u0000\u0acd\u0acc\u0001\u0000\u0000\u0000\u0ace\u0233\u0001"+ + "\u0000\u0000\u0000\u0acf\u0ad2\u0003\u0236\u011b\u0000\u0ad0\u0ad2\u0003"+ + "\u023a\u011d\u0000\u0ad1\u0acf\u0001\u0000\u0000\u0000\u0ad1\u0ad0\u0001"+ + "\u0000\u0000\u0000\u0ad2\u0235\u0001\u0000\u0000\u0000\u0ad3\u0ad5\u0003"+ + "\u0238\u011c\u0000\u0ad4\u0ad3\u0001\u0000\u0000\u0000\u0ad4\u0ad5\u0001"+ + "\u0000\u0000\u0000\u0ad5\u0ad6\u0001\u0000\u0000\u0000\u0ad6\u0ad7\u0003"+ + "\u0436\u021b\u0000\u0ad7\u0237\u0001\u0000\u0000\u0000\u0ad8\u0ada\u0003"+ + "\u0218\u010c\u0000\u0ad9\u0adb\u0005\u017f\u0000\u0000\u0ada\u0ad9\u0001"+ + "\u0000\u0000\u0000\u0ada\u0adb\u0001\u0000\u0000\u0000\u0adb\u0ae1\u0001"+ + "\u0000\u0000\u0000\u0adc\u0add\u0003\u0420\u0210\u0000\u0add\u0ade\u0005"+ + "\u0177\u0000\u0000\u0ade\u0ae0\u0001\u0000\u0000\u0000\u0adf\u0adc\u0001"+ + "\u0000\u0000\u0000\u0ae0\u0ae3\u0001\u0000\u0000\u0000\u0ae1\u0adf\u0001"+ + "\u0000\u0000\u0000\u0ae1\u0ae2\u0001\u0000\u0000\u0000\u0ae2\u0aec\u0001"+ + "\u0000\u0000\u0000\u0ae3\u0ae1\u0001\u0000\u0000\u0000\u0ae4\u0ae5\u0003"+ + "\u0420\u0210\u0000\u0ae5\u0ae6\u0005\u0177\u0000\u0000\u0ae6\u0ae8\u0001"+ + "\u0000\u0000\u0000\u0ae7\u0ae4\u0001\u0000\u0000\u0000\u0ae8\u0ae9\u0001"+ + "\u0000\u0000\u0000\u0ae9\u0ae7\u0001\u0000\u0000\u0000\u0ae9\u0aea\u0001"+ + "\u0000\u0000\u0000\u0aea\u0aec\u0001\u0000\u0000\u0000\u0aeb\u0ad8\u0001"+ + "\u0000\u0000\u0000\u0aeb\u0ae7\u0001\u0000\u0000\u0000\u0aec\u0239\u0001"+ + "\u0000\u0000\u0000\u0aed\u0aee\u0005\u0146\u0000\u0000\u0aee\u023b\u0001"+ + "\u0000\u0000\u0000\u0aef\u0af0\u0005\u0171\u0000\u0000\u0af0\u0af1\u0003"+ + "\u023e\u011f\u0000\u0af1\u0af2\u0005\u017c\u0000\u0000\u0af2\u023d\u0001"+ + "\u0000\u0000\u0000\u0af3\u0af4\u0003\u0240\u0120\u0000\u0af4\u023f\u0001"+ + "\u0000\u0000\u0000\u0af5\u0afa\u0003\u0242\u0121\u0000\u0af6\u0af7\u0005"+ + "\u0169\u0000\u0000\u0af7\u0af9\u0003\u0242\u0121\u0000\u0af8\u0af6\u0001"+ + "\u0000\u0000\u0000\u0af9\u0afc\u0001\u0000\u0000\u0000\u0afa\u0af8\u0001"+ + "\u0000\u0000\u0000\u0afa\u0afb\u0001\u0000\u0000\u0000\u0afb\u0241\u0001"+ + "\u0000\u0000\u0000\u0afc\u0afa\u0001\u0000\u0000\u0000\u0afd\u0b00\u0003"+ + "\u0244\u0122\u0000\u0afe\u0b00\u0003\u0258\u012c\u0000\u0aff\u0afd\u0001"+ + "\u0000\u0000\u0000\u0aff\u0afe\u0001\u0000\u0000\u0000\u0b00\u0243\u0001"+ + "\u0000\u0000\u0000\u0b01\u0b04\u0003\u0246\u0123\u0000\u0b02\u0b04\u0003"+ + "\u0248\u0124\u0000\u0b03\u0b01\u0001\u0000\u0000\u0000\u0b03\u0b02\u0001"+ + "\u0000\u0000\u0000\u0b04\u0245\u0001\u0000\u0000\u0000\u0b05\u0b07\u0003"+ + "\u0474\u023a\u0000\u0b06\u0b08\u0005\u013e\u0000\u0000\u0b07\u0b06\u0001"+ + "\u0000\u0000\u0000\u0b07\u0b08\u0001\u0000\u0000\u0000\u0b08\u0b09\u0001"+ + "\u0000\u0000\u0000\u0b09\u0b0a\u0003\u042e\u0217\u0000\u0b0a\u0b0c\u0001"+ + "\u0000\u0000\u0000\u0b0b\u0b05\u0001\u0000\u0000\u0000\u0b0b\u0b0c\u0001"+ + "\u0000\u0000\u0000\u0b0c\u0b0d\u0001\u0000\u0000\u0000\u0b0d\u0b0f\u0005"+ + "\u0173\u0000\u0000\u0b0e\u0b10\u0003\u024e\u0127\u0000\u0b0f\u0b0e\u0001"+ + "\u0000\u0000\u0000\u0b0f\u0b10\u0001\u0000\u0000\u0000\u0b10\u0b12\u0001"+ + "\u0000\u0000\u0000\u0b11\u0b13\u0003\u024c\u0126\u0000\u0b12\u0b11\u0001"+ + "\u0000\u0000\u0000\u0b12\u0b13\u0001\u0000\u0000\u0000\u0b13\u0b14\u0001"+ + "\u0000\u0000\u0000\u0b14\u0b15\u0005\u017e\u0000\u0000\u0b15\u0247\u0001"+ + "\u0000\u0000\u0000\u0b16\u0b18\u0003\u0474\u023a\u0000\u0b17\u0b19\u0005"+ + "\u013e\u0000\u0000\u0b18\u0b17\u0001\u0000\u0000\u0000\u0b18\u0b19\u0001"+ + "\u0000\u0000\u0000\u0b19\u0b1a\u0001\u0000\u0000\u0000\u0b1a\u0b1d\u0003"+ + "\u024a\u0125\u0000\u0b1b\u0b1c\u0005\u001b\u0000\u0000\u0b1c\u0b1e\u0003"+ + "\u024e\u0127\u0000\u0b1d\u0b1b\u0001\u0000\u0000\u0000\u0b1d\u0b1e\u0001"+ + "\u0000\u0000\u0000\u0b1e\u0249\u0001\u0000\u0000\u0000\u0b1f\u0b21\u0003"+ + "\u042e\u0217\u0000\u0b20\u0b22\u0003\u024c\u0126\u0000\u0b21\u0b20\u0001"+ + "\u0000\u0000\u0000\u0b21\u0b22\u0001\u0000\u0000\u0000\u0b22\u0b25\u0001"+ + "\u0000\u0000\u0000\u0b23\u0b25\u0003\u024c\u0126\u0000\u0b24\u0b1f\u0001"+ + "\u0000\u0000\u0000\u0b24\u0b23\u0001\u0000\u0000\u0000\u0b25\u024b\u0001"+ + "\u0000\u0000\u0000\u0b26\u0b28\u0003\u0252\u0129\u0000\u0b27\u0b29\u0003"+ + "\u0250\u0128\u0000\u0b28\u0b27\u0001\u0000\u0000\u0000\u0b28\u0b29\u0001"+ + "\u0000\u0000\u0000\u0b29\u0b2c\u0001\u0000\u0000\u0000\u0b2a\u0b2c\u0003"+ + "\u0250\u0128\u0000\u0b2b\u0b26\u0001\u0000\u0000\u0000\u0b2b\u0b2a\u0001"+ + "\u0000\u0000\u0000\u0b2c\u024d\u0001\u0000\u0000\u0000\u0b2d\u0b2e\u0003"+ + "\u0458\u022c\u0000\u0b2e\u024f\u0001\u0000\u0000\u0000\u0b2f\u0b35\u0003"+ + "\u0254\u012a\u0000\u0b30\u0b35\u0003\u0256\u012b\u0000\u0b31\u0b32\u0003"+ + "\u0254\u012a\u0000\u0b32\u0b33\u0003\u0256\u012b\u0000\u0b33\u0b35\u0001"+ + "\u0000\u0000\u0000\u0b34\u0b2f\u0001\u0000\u0000\u0000\u0b34\u0b30\u0001"+ + "\u0000\u0000\u0000\u0b34\u0b31\u0001\u0000\u0000\u0000\u0b35\u0251\u0001"+ + "\u0000\u0000\u0000\u0b36\u0b38\u0003\u0292\u0149\u0000\u0b37\u0b36\u0001"+ + "\u0000\u0000\u0000\u0b37\u0b38\u0001\u0000\u0000\u0000\u0b38\u0b39\u0001"+ + "\u0000\u0000\u0000\u0b39\u0b3a\u0005\u0001\u0000\u0000\u0b3a\u0253\u0001"+ + "\u0000\u0000\u0000\u0b3b\u0b3c\u0003\u0292\u0149\u0000\u0b3c\u0255\u0001"+ + "\u0000\u0000\u0000\u0b3d\u0b3e\u0003\u0296\u014b\u0000\u0b3e\u0257\u0001"+ + "\u0000\u0000\u0000\u0b3f\u0b42\u0003\u025a\u012d\u0000\u0b40\u0b42\u0003"+ + "\u025c\u012e\u0000\u0b41\u0b3f\u0001\u0000\u0000\u0000\u0b41\u0b40\u0001"+ + "\u0000\u0000\u0000\u0b42\u0259\u0001\u0000\u0000\u0000\u0b43\u0b45\u0003"+ + "\u027c\u013e\u0000\u0b44\u0b43\u0001\u0000\u0000\u0000\u0b44\u0b45\u0001"+ + "\u0000\u0000\u0000\u0b45\u0b46\u0001\u0000\u0000\u0000\u0b46\u0b48\u0003"+ + "\u0478\u023c\u0000\u0b47\u0b49\u0005\u013e\u0000\u0000\u0b48\u0b47\u0001"+ + "\u0000\u0000\u0000\u0b48\u0b49\u0001\u0000\u0000\u0000\u0b49\u0b4a\u0001"+ + "\u0000\u0000\u0000\u0b4a\u0b4b\u0003\u0430\u0218\u0000\u0b4b\u0b4d\u0001"+ + "\u0000\u0000\u0000\u0b4c\u0b44\u0001\u0000\u0000\u0000\u0b4c\u0b4d\u0001"+ + "\u0000\u0000\u0000\u0b4d\u0b50\u0001\u0000\u0000\u0000\u0b4e\u0b51\u0003"+ + "\u026a\u0135\u0000\u0b4f\u0b51\u0003\u0270\u0138\u0000\u0b50\u0b4e\u0001"+ + "\u0000\u0000\u0000\u0b50\u0b4f\u0001\u0000\u0000\u0000\u0b51\u025b\u0001"+ + "\u0000\u0000\u0000\u0b52\u0b53\u0003\u027c\u013e\u0000\u0b53\u0b55\u0003"+ + "\u0478\u023c\u0000\u0b54\u0b56\u0005\u013e\u0000\u0000\u0b55\u0b54\u0001"+ + "\u0000\u0000\u0000\u0b55\u0b56\u0001\u0000\u0000\u0000\u0b56\u0b57\u0001"+ + "\u0000\u0000\u0000\u0b57\u0b58\u0003\u025e\u012f\u0000\u0b58\u0b59\u0003"+ + "\u027e\u013f\u0000\u0b59\u025d\u0001\u0000\u0000\u0000\u0b5a\u0b5c\u0003"+ + "\u0430\u0218\u0000\u0b5b\u0b5d\u0003\u0260\u0130\u0000\u0b5c\u0b5b\u0001"+ + "\u0000\u0000\u0000\u0b5c\u0b5d\u0001\u0000\u0000\u0000\u0b5d\u0b60\u0001"+ + "\u0000\u0000\u0000\u0b5e\u0b60\u0003\u0260\u0130\u0000\u0b5f\u0b5a\u0001"+ + "\u0000\u0000\u0000\u0b5f\u0b5e\u0001\u0000\u0000\u0000\u0b60\u025f\u0001"+ + "\u0000\u0000\u0000\u0b61\u0b63\u0003\u0264\u0132\u0000\u0b62\u0b64\u0003"+ + "\u0262\u0131\u0000\u0b63\u0b62\u0001\u0000\u0000\u0000\u0b63\u0b64\u0001"+ + "\u0000\u0000\u0000\u0b64\u0b67\u0001\u0000\u0000\u0000\u0b65\u0b67\u0003"+ + "\u0262\u0131\u0000\u0b66\u0b61\u0001\u0000\u0000\u0000\u0b66\u0b65\u0001"+ + "\u0000\u0000\u0000\u0b67\u0261\u0001\u0000\u0000\u0000\u0b68\u0b6e\u0003"+ + "\u0266\u0133\u0000\u0b69\u0b6e\u0003\u0268\u0134\u0000\u0b6a\u0b6b\u0003"+ + "\u0266\u0133\u0000\u0b6b\u0b6c\u0003\u0268\u0134\u0000\u0b6c\u0b6e\u0001"+ + "\u0000\u0000\u0000\u0b6d\u0b68\u0001\u0000\u0000\u0000\u0b6d\u0b69\u0001"+ + "\u0000\u0000\u0000\u0b6d\u0b6a\u0001\u0000\u0000\u0000\u0b6e\u0263\u0001"+ + "\u0000\u0000\u0000\u0b6f\u0b71\u0003\u0292\u0149\u0000\u0b70\u0b6f\u0001"+ + "\u0000\u0000\u0000\u0b70\u0b71\u0001\u0000\u0000\u0000\u0b71\u0b72\u0001"+ + "\u0000\u0000\u0000\u0b72\u0b73\u0005\u0001\u0000\u0000\u0b73\u0265\u0001"+ + "\u0000\u0000\u0000\u0b74\u0b75\u0003\u0292\u0149\u0000\u0b75\u0267\u0001"+ + "\u0000\u0000\u0000\u0b76\u0b77\u0003\u0296\u014b\u0000\u0b77\u0269\u0001"+ + "\u0000\u0000\u0000\u0b78\u0b7b\u0003\u026c\u0136\u0000\u0b79\u0b7b\u0003"+ + "\u026e\u0137\u0000\u0b7a\u0b78\u0001\u0000\u0000\u0000\u0b7a\u0b79\u0001"+ + "\u0000\u0000\u0000\u0b7b\u026b\u0001\u0000\u0000\u0000\u0b7c\u0b7d\u0003"+ + "\u0278\u013c\u0000\u0b7d\u0b7e\u0003\u0272\u0139\u0000\u0b7e\u0b7f\u0003"+ + "\u027a\u013d\u0000\u0b7f\u026d\u0001\u0000\u0000\u0000\u0b80\u0b81\u0003"+ + "\u027a\u013d\u0000\u0b81\u0b82\u0003\u0274\u013a\u0000\u0b82\u0b83\u0003"+ + "\u0278\u013c\u0000\u0b83\u026f\u0001\u0000\u0000\u0000\u0b84\u0b85\u0003"+ + "\u0278\u013c\u0000\u0b85\u0b86\u0003\u0276\u013b\u0000\u0b86\u0b87\u0003"+ + "\u027a\u013d\u0000\u0b87\u0271\u0001\u0000\u0000\u0000\u0b88\u0b89\u0005"+ + "\u0158\u0000\u0000\u0b89\u0b8a\u0003\u0260\u0130\u0000\u0b8a\u0b8b\u0005"+ + "\u0149\u0000\u0000\u0b8b\u0273\u0001\u0000\u0000\u0000\u0b8c\u0b8d\u0005"+ + "\u0152\u0000\u0000\u0b8d\u0b8e\u0003\u0260\u0130\u0000\u0b8e\u0b8f\u0005"+ + "\u015c\u0000\u0000\u0b8f\u0275\u0001\u0000\u0000\u0000\u0b90\u0b91\u0005"+ + "\u0163\u0000\u0000\u0b91\u0b92\u0003\u0260\u0130\u0000\u0b92\u0b93\u0005"+ + "\u015d\u0000\u0000\u0b93\u0277\u0001\u0000\u0000\u0000\u0b94\u0b95\u0005"+ + "\u0173\u0000\u0000\u0b95\u0b96\u0003\u028e\u0147\u0000\u0b96\u0b97\u0005"+ + "\u017e\u0000\u0000\u0b97\u0b9e\u0001\u0000\u0000\u0000\u0b98\u0b9a\u0005"+ + "\u0173\u0000\u0000\u0b99\u0b9b\u0003\u024c\u0126\u0000\u0b9a\u0b99\u0001"+ + "\u0000\u0000\u0000\u0b9a\u0b9b\u0001\u0000\u0000\u0000\u0b9b\u0b9c\u0001"+ + "\u0000\u0000\u0000\u0b9c\u0b9e\u0005\u017e\u0000\u0000\u0b9d\u0b94\u0001"+ + "\u0000\u0000\u0000\u0b9d\u0b98\u0001\u0000\u0000\u0000\u0b9e\u0279\u0001"+ + "\u0000\u0000\u0000\u0b9f\u0ba0\u0005\u0173\u0000\u0000\u0ba0\u0ba1\u0003"+ + "\u0290\u0148\u0000\u0ba1\u0ba2\u0005\u017e\u0000\u0000\u0ba2\u0ba9\u0001"+ + "\u0000\u0000\u0000\u0ba3\u0ba5\u0005\u0173\u0000\u0000\u0ba4\u0ba6\u0003"+ + "\u024c\u0126\u0000\u0ba5\u0ba4\u0001\u0000\u0000\u0000\u0ba5\u0ba6\u0001"+ + "\u0000\u0000\u0000\u0ba6\u0ba7\u0001\u0000\u0000\u0000\u0ba7\u0ba9\u0005"+ + "\u017e\u0000\u0000\u0ba8\u0b9f\u0001\u0000\u0000\u0000\u0ba8\u0ba3\u0001"+ + "\u0000\u0000\u0000\u0ba9\u027b\u0001\u0000\u0000\u0000\u0baa\u0bab\u0007"+ + "\r\u0000\u0000\u0bab\u027d\u0001\u0000\u0000\u0000\u0bac\u0bad\u0005\u0118"+ + "\u0000\u0000\u0bad\u0bae\u0003\u0280\u0140\u0000\u0bae\u027f\u0001\u0000"+ + "\u0000\u0000\u0baf\u0bb2\u0003\u0282\u0141\u0000\u0bb0\u0bb2\u0003\u0288"+ + "\u0144\u0000\u0bb1\u0baf\u0001\u0000\u0000\u0000\u0bb1\u0bb0\u0001\u0000"+ + "\u0000\u0000\u0bb2\u0281\u0001\u0000\u0000\u0000\u0bb3\u0bb6\u0003\u0284"+ + "\u0142\u0000\u0bb4\u0bb6\u0003\u0286\u0143\u0000\u0bb5\u0bb3\u0001\u0000"+ + "\u0000\u0000\u0bb5\u0bb4\u0001\u0000\u0000\u0000\u0bb6\u0283\u0001\u0000"+ + "\u0000\u0000\u0bb7\u0bb8\u0005\u0173\u0000\u0000\u0bb8\u0bb9\u0003\u028e"+ + "\u0147\u0000\u0bb9\u0bba\u0003\u028a\u0145\u0000\u0bba\u0bbb\u0003\u0290"+ + "\u0148\u0000\u0bbb\u0bbc\u0005\u017e\u0000\u0000\u0bbc\u0285\u0001\u0000"+ + "\u0000\u0000\u0bbd\u0bbe\u0005\u0173\u0000\u0000\u0bbe\u0bbf\u0003\u0290"+ + "\u0148\u0000\u0bbf\u0bc0\u0005\u0150\u0000\u0000\u0bc0\u0bc1\u0003\u028e"+ + "\u0147\u0000\u0bc1\u0bc2\u0005\u017e\u0000\u0000\u0bc2\u0287\u0001\u0000"+ + "\u0000\u0000\u0bc3\u0bc4\u0005\u0173\u0000\u0000\u0bc4\u0bc5\u0003\u028e"+ + "\u0147\u0000\u0bc5\u0bc6\u0003\u028c\u0146\u0000\u0bc6\u0bc7\u0003\u0290"+ + "\u0148\u0000\u0bc7\u0bc8\u0005\u017e\u0000\u0000\u0bc8\u0289\u0001\u0000"+ + "\u0000\u0000\u0bc9\u0bca\u0007\u000e\u0000\u0000\u0bca\u028b\u0001\u0000"+ + "\u0000\u0000\u0bcb\u0bcc\u0007\u000f\u0000\u0000\u0bcc\u028d\u0001\u0000"+ + "\u0000\u0000\u0bcd\u0bce\u0003\u0458\u022c\u0000\u0bce\u028f\u0001\u0000"+ + "\u0000\u0000\u0bcf\u0bd0\u0003\u0458\u022c\u0000\u0bd0\u0291\u0001\u0000"+ + "\u0000\u0000\u0bd1\u0bd2\u0005\u0124\u0000\u0000\u0bd2\u0bd9\u0003\u0438"+ + "\u021c\u0000\u0bd3\u0bd4\u0005\u0126\u0000\u0000\u0bd4\u0bd9\u0003\u0294"+ + "\u014a\u0000\u0bd5\u0bd6\u0003\u0184\u00c2\u0000\u0bd6\u0bd7\u0003\u0294"+ + "\u014a\u0000\u0bd7\u0bd9\u0001\u0000\u0000\u0000\u0bd8\u0bd1\u0001\u0000"+ + "\u0000\u0000\u0bd8\u0bd3\u0001\u0000\u0000\u0000\u0bd8\u0bd5\u0001\u0000"+ + "\u0000\u0000\u0bd9\u0293\u0001\u0000\u0000\u0000\u0bda\u0bdf\u0003\u0438"+ + "\u021c\u0000\u0bdb\u0bdc\u0005\u0166\u0000\u0000\u0bdc\u0bde\u0003\u0438"+ + "\u021c\u0000\u0bdd\u0bdb\u0001\u0000\u0000\u0000\u0bde\u0be1\u0001\u0000"+ + "\u0000\u0000\u0bdf\u0bdd\u0001\u0000\u0000\u0000\u0bdf\u0be0\u0001\u0000"+ + "\u0000\u0000\u0be0\u0295\u0001\u0000\u0000\u0000\u0be1\u0bdf\u0001\u0000"+ + "\u0000\u0000\u0be2\u0be4\u0005\u0171\u0000\u0000\u0be3\u0be5\u0003\u0298"+ + "\u014c\u0000\u0be4\u0be3\u0001\u0000\u0000\u0000\u0be4\u0be5\u0001\u0000"+ + "\u0000\u0000\u0be5\u0be6\u0001\u0000\u0000\u0000\u0be6\u0be7\u0005\u017c"+ + "\u0000\u0000\u0be7\u0297\u0001\u0000\u0000\u0000\u0be8\u0bed\u0003\u029a"+ + "\u014d\u0000\u0be9\u0bea\u0005\u0169\u0000\u0000\u0bea\u0bec\u0003\u029a"+ + "\u014d\u0000\u0beb\u0be9\u0001\u0000\u0000\u0000\u0bec\u0bef\u0001\u0000"+ + "\u0000\u0000\u0bed\u0beb\u0001\u0000\u0000\u0000\u0bed\u0bee\u0001\u0000"+ + "\u0000\u0000\u0bee\u0299\u0001\u0000\u0000\u0000\u0bef\u0bed\u0001\u0000"+ + "\u0000\u0000\u0bf0\u0bf2\u0003\u043a\u021d\u0000\u0bf1\u0bf3\u0003\u02a2"+ + "\u0151\u0000\u0bf2\u0bf1\u0001\u0000\u0000\u0000\u0bf2\u0bf3\u0001\u0000"+ + "\u0000\u0000\u0bf3\u0bf4\u0001\u0000\u0000\u0000\u0bf4\u0bf5\u0003\u029c"+ + "\u014e\u0000\u0bf5\u029b\u0001\u0000\u0000\u0000\u0bf6\u0bf7\u0003\u02a0"+ + "\u0150\u0000\u0bf7\u029d\u0001\u0000\u0000\u0000\u0bf8\u0bfa\u0005\u0116"+ + "\u0000\u0000\u0bf9\u0bf8\u0001\u0000\u0000\u0000\u0bf9\u0bfa\u0001\u0000"+ + "\u0000\u0000\u0bfa\u0bfb\u0001\u0000\u0000\u0000\u0bfb\u0bfc\u0005\u0139"+ + "\u0000\u0000\u0bfc\u0bfd\u0003\u02fc\u017e\u0000\u0bfd\u029f\u0001\u0000"+ + "\u0000\u0000\u0bfe\u0bff\u0006\u0150\uffff\uffff\u0000\u0bff\u0c38\u0003"+ + "\u02a4\u0152\u0000\u0c00\u0c38\u0003\u02f4\u017a\u0000\u0c01\u0c02\u0003"+ + "\u02f6\u017b\u0000\u0c02\u0c03\u0005\u0174\u0000\u0000\u0c03\u0c04\u0003"+ + "\u02a0\u0150\u0000\u0c04\u0c09\u0005\u016f\u0000\u0000\u0c05\u0c06\u0005"+ + "\u0172\u0000\u0000\u0c06\u0c07\u0003\u02ae\u0157\u0000\u0c07\u0c08\u0005"+ + "\u017d\u0000\u0000\u0c08\u0c0a\u0001\u0000\u0000\u0000\u0c09\u0c05\u0001"+ + "\u0000\u0000\u0000\u0c09\u0c0a\u0001\u0000\u0000\u0000\u0c0a\u0c0c\u0001"+ + "\u0000\u0000\u0000\u0c0b\u0c0d\u0003\u0300\u0180\u0000\u0c0c\u0c0b\u0001"+ + "\u0000\u0000\u0000\u0c0c\u0c0d\u0001\u0000\u0000\u0000\u0c0d\u0c38\u0001"+ + "\u0000\u0000\u0000\u0c0e\u0c13\u0003\u02f6\u017b\u0000\u0c0f\u0c10\u0005"+ + "\u0172\u0000\u0000\u0c10\u0c11\u0003\u02ae\u0157\u0000\u0c11\u0c12\u0005"+ + "\u017d\u0000\u0000\u0c12\u0c14\u0001\u0000\u0000\u0000\u0c13\u0c0f\u0001"+ + "\u0000\u0000\u0000\u0c13\u0c14\u0001\u0000\u0000\u0000\u0c14\u0c16\u0001"+ + "\u0000\u0000\u0000\u0c15\u0c17\u0003\u0300\u0180\u0000\u0c16\u0c15\u0001"+ + "\u0000\u0000\u0000\u0c16\u0c17\u0001\u0000\u0000\u0000\u0c17\u0c38\u0001"+ + "\u0000\u0000\u0000\u0c18\u0c38\u0003\u02fa\u017d\u0000\u0c19\u0c1b\u0005"+ + "\u0019\u0000\u0000\u0c1a\u0c1c\u0005\u00e1\u0000\u0000\u0c1b\u0c1a\u0001"+ + "\u0000\u0000\u0000\u0c1b\u0c1c\u0001\u0000\u0000\u0000\u0c1c\u0c1e\u0001"+ + "\u0000\u0000\u0000\u0c1d\u0c1f\u0003\u0300\u0180\u0000\u0c1e\u0c1d\u0001"+ + "\u0000\u0000\u0000\u0c1e\u0c1f\u0001\u0000\u0000\u0000\u0c1f\u0c38\u0001"+ + "\u0000\u0000\u0000\u0c20\u0c22\u0005\u0019\u0000\u0000\u0c21\u0c20\u0001"+ + "\u0000\u0000\u0000\u0c21\u0c22\u0001\u0000\u0000\u0000\u0c22\u0c23\u0001"+ + "\u0000\u0000\u0000\u0c23\u0c24\u0005\u0131\u0000\u0000\u0c24\u0c26\u0005"+ + "\u00e1\u0000\u0000\u0c25\u0c27\u0003\u0300\u0180\u0000\u0c26\u0c25\u0001"+ + "\u0000\u0000\u0000\u0c26\u0c27\u0001\u0000\u0000\u0000\u0c27\u0c38\u0001"+ + "\u0000\u0000\u0000\u0c28\u0c2a\u0005\u0019\u0000\u0000\u0c29\u0c2b\u0005"+ + "\u00e1\u0000\u0000\u0c2a\u0c29\u0001\u0000\u0000\u0000\u0c2a\u0c2b\u0001"+ + "\u0000\u0000\u0000\u0c2b\u0c2c\u0001\u0000\u0000\u0000\u0c2c\u0c2d\u0005"+ + "\u0174\u0000\u0000\u0c2d\u0c32\u0003\u02a0\u0150\u0000\u0c2e\u0c2f\u0005"+ + "\u0182\u0000\u0000\u0c2f\u0c31\u0003\u02a0\u0150\u0000\u0c30\u0c2e\u0001"+ + "\u0000\u0000\u0000\u0c31\u0c34\u0001\u0000\u0000\u0000\u0c32\u0c30\u0001"+ + "\u0000\u0000\u0000\u0c32\u0c33\u0001\u0000\u0000\u0000\u0c33\u0c35\u0001"+ + "\u0000\u0000\u0000\u0c34\u0c32\u0001\u0000\u0000\u0000\u0c35\u0c36\u0005"+ + "\u016f\u0000\u0000\u0c36\u0c38\u0001\u0000\u0000\u0000\u0c37\u0bfe\u0001"+ + "\u0000\u0000\u0000\u0c37\u0c00\u0001\u0000\u0000\u0000\u0c37\u0c01\u0001"+ + "\u0000\u0000\u0000\u0c37\u0c0e\u0001\u0000\u0000\u0000\u0c37\u0c18\u0001"+ + "\u0000\u0000\u0000\u0c37\u0c19\u0001\u0000\u0000\u0000\u0c37\u0c21\u0001"+ + "\u0000\u0000\u0000\u0c37\u0c28\u0001\u0000\u0000\u0000\u0c38\u0c49\u0001"+ + "\u0000\u0000\u0000\u0c39\u0c3a\n\u0001\u0000\u0000\u0c3a\u0c3b\u0005\u0182"+ + "\u0000\u0000\u0c3b\u0c48\u0003\u02a0\u0150\u0002\u0c3c\u0c3d\n\u0007\u0000"+ + "\u0000\u0c3d\u0c42\u0003\u02f6\u017b\u0000\u0c3e\u0c3f\u0005\u0172\u0000"+ + "\u0000\u0c3f\u0c40\u0003\u02ae\u0157\u0000\u0c40\u0c41\u0005\u017d\u0000"+ + "\u0000\u0c41\u0c43\u0001\u0000\u0000\u0000\u0c42\u0c3e\u0001\u0000\u0000"+ + "\u0000\u0c42\u0c43\u0001\u0000\u0000\u0000\u0c43\u0c45\u0001\u0000\u0000"+ + "\u0000\u0c44\u0c46\u0003\u0300\u0180\u0000\u0c45\u0c44\u0001\u0000\u0000"+ + "\u0000\u0c45\u0c46\u0001\u0000\u0000\u0000\u0c46\u0c48\u0001\u0000\u0000"+ + "\u0000\u0c47\u0c39\u0001\u0000\u0000\u0000\u0c47\u0c3c\u0001\u0000\u0000"+ + "\u0000\u0c48\u0c4b\u0001\u0000\u0000\u0000\u0c49\u0c47\u0001\u0000\u0000"+ + "\u0000\u0c49\u0c4a\u0001\u0000\u0000\u0000\u0c4a\u02a1\u0001\u0000\u0000"+ + "\u0000\u0c4b\u0c49\u0001\u0000\u0000\u0000\u0c4c\u0c4d\u0007\u0010\u0000"+ + "\u0000\u0c4d\u02a3\u0001\u0000\u0000\u0000\u0c4e\u0c56\u0003\u02a6\u0153"+ + "\u0000\u0c4f\u0c56\u0003\u02a8\u0154\u0000\u0c50\u0c56\u0003\u02aa\u0155"+ + "\u0000\u0c51\u0c56\u0003\u02b2\u0159\u0000\u0c52\u0c56\u0003\u02c6\u0163"+ + "\u0000\u0c53\u0c56\u0003\u02d8\u016c\u0000\u0c54\u0c56\u0003\u02da\u016d"+ + "\u0000\u0c55\u0c4e\u0001\u0000\u0000\u0000\u0c55\u0c4f\u0001\u0000\u0000"+ + "\u0000\u0c55\u0c50\u0001\u0000\u0000\u0000\u0c55\u0c51\u0001\u0000\u0000"+ + "\u0000\u0c55\u0c52\u0001\u0000\u0000\u0000\u0c55\u0c53\u0001\u0000\u0000"+ + "\u0000\u0c55\u0c54\u0001\u0000\u0000\u0000\u0c56\u02a5\u0001\u0000\u0000"+ + "\u0000\u0c57\u0c59\u0007\u0011\u0000\u0000\u0c58\u0c5a\u0003\u0300\u0180"+ + "\u0000\u0c59\u0c58\u0001\u0000\u0000\u0000\u0c59\u0c5a\u0001\u0000\u0000"+ + "\u0000\u0c5a\u02a7\u0001\u0000\u0000\u0000\u0c5b\u0c65\u0005\u00ca\u0000"+ + "\u0000\u0c5c\u0c60\u0005\u0173\u0000\u0000\u0c5d\u0c5e\u0003\u02ac\u0156"+ + "\u0000\u0c5e\u0c5f\u0005\u0169\u0000\u0000\u0c5f\u0c61\u0001\u0000\u0000"+ + "\u0000\u0c60\u0c5d\u0001\u0000\u0000\u0000\u0c60\u0c61\u0001\u0000\u0000"+ + "\u0000\u0c61\u0c62\u0001\u0000\u0000\u0000\u0c62\u0c63\u0003\u02ae\u0157"+ + "\u0000\u0c63\u0c64\u0005\u017e\u0000\u0000\u0c64\u0c66\u0001\u0000\u0000"+ + "\u0000\u0c65\u0c5c\u0001\u0000\u0000\u0000\u0c65\u0c66\u0001\u0000\u0000"+ + "\u0000\u0c66\u0c68\u0001\u0000\u0000\u0000\u0c67\u0c69\u0003\u0300\u0180"+ + "\u0000\u0c68\u0c67\u0001\u0000\u0000\u0000\u0c68\u0c69\u0001\u0000\u0000"+ + "\u0000\u0c69\u0c7f\u0001\u0000\u0000\u0000\u0c6a\u0c6f\u00052\u0000\u0000"+ + "\u0c6b\u0c6c\u0005\u0173\u0000\u0000\u0c6c\u0c6d\u0003\u02b0\u0158\u0000"+ + "\u0c6d\u0c6e\u0005\u017e\u0000\u0000\u0c6e\u0c70\u0001\u0000\u0000\u0000"+ + "\u0c6f\u0c6b\u0001\u0000\u0000\u0000\u0c6f\u0c70\u0001\u0000\u0000\u0000"+ + "\u0c70\u0c72\u0001\u0000\u0000\u0000\u0c71\u0c73\u0003\u0300\u0180\u0000"+ + "\u0c72\u0c71\u0001\u0000\u0000\u0000\u0c72\u0c73\u0001\u0000\u0000\u0000"+ + "\u0c73\u0c7f\u0001\u0000\u0000\u0000\u0c74\u0c79\u0005\u00e3\u0000\u0000"+ + "\u0c75\u0c76\u0005\u0173\u0000\u0000\u0c76\u0c77\u0003\u02ae\u0157\u0000"+ + "\u0c77\u0c78\u0005\u017e\u0000\u0000\u0c78\u0c7a\u0001\u0000\u0000\u0000"+ + "\u0c79\u0c75\u0001\u0000\u0000\u0000\u0c79\u0c7a\u0001\u0000\u0000\u0000"+ + "\u0c7a\u0c7c\u0001\u0000\u0000\u0000\u0c7b\u0c7d\u0003\u0300\u0180\u0000"+ + "\u0c7c\u0c7b\u0001\u0000\u0000\u0000\u0c7c\u0c7d\u0001\u0000\u0000\u0000"+ + "\u0c7d\u0c7f\u0001\u0000\u0000\u0000\u0c7e\u0c5b\u0001\u0000\u0000\u0000"+ + "\u0c7e\u0c6a\u0001\u0000\u0000\u0000\u0c7e\u0c74\u0001\u0000\u0000\u0000"+ + "\u0c7f\u02a9\u0001\u0000\u0000\u0000\u0c80\u0c8a\u0005+\u0000\u0000\u0c81"+ + "\u0c85\u0005\u0173\u0000\u0000\u0c82\u0c83\u0003\u02ac\u0156\u0000\u0c83"+ + "\u0c84\u0005\u0169\u0000\u0000\u0c84\u0c86\u0001\u0000\u0000\u0000\u0c85"+ + "\u0c82\u0001\u0000\u0000\u0000\u0c85\u0c86\u0001\u0000\u0000\u0000\u0c86"+ + "\u0c87\u0001\u0000\u0000\u0000\u0c87\u0c88\u0003\u02ae\u0157\u0000\u0c88"+ + "\u0c89\u0005\u017e\u0000\u0000\u0c89\u0c8b\u0001\u0000\u0000\u0000\u0c8a"+ + "\u0c81\u0001\u0000\u0000\u0000\u0c8a\u0c8b\u0001\u0000\u0000\u0000\u0c8b"+ + "\u0c8d\u0001\u0000\u0000\u0000\u0c8c\u0c8e\u0003\u0300\u0180\u0000\u0c8d"+ + "\u0c8c\u0001\u0000\u0000\u0000\u0c8d\u0c8e\u0001\u0000\u0000\u0000\u0c8e"+ + "\u0ca4\u0001\u0000\u0000\u0000\u0c8f\u0c94\u0005$\u0000\u0000\u0c90\u0c91"+ + "\u0005\u0173\u0000\u0000\u0c91\u0c92\u0003\u02b0\u0158\u0000\u0c92\u0c93"+ + "\u0005\u017e\u0000\u0000\u0c93\u0c95\u0001\u0000\u0000\u0000\u0c94\u0c90"+ + "\u0001\u0000\u0000\u0000\u0c94\u0c95\u0001\u0000\u0000\u0000\u0c95\u0c97"+ + "\u0001\u0000\u0000\u0000\u0c96\u0c98\u0003\u0300\u0180\u0000\u0c97\u0c96"+ + "\u0001\u0000\u0000\u0000\u0c97\u0c98\u0001\u0000\u0000\u0000\u0c98\u0ca4"+ + "\u0001\u0000\u0000\u0000\u0c99\u0c9e\u0005\u00e2\u0000\u0000\u0c9a\u0c9b"+ + "\u0005\u0173\u0000\u0000\u0c9b\u0c9c\u0003\u02ae\u0157\u0000\u0c9c\u0c9d"+ + "\u0005\u017e\u0000\u0000\u0c9d\u0c9f\u0001\u0000\u0000\u0000\u0c9e\u0c9a"+ + "\u0001\u0000\u0000\u0000\u0c9e\u0c9f\u0001\u0000\u0000\u0000\u0c9f\u0ca1"+ + "\u0001\u0000\u0000\u0000\u0ca0\u0ca2\u0003\u0300\u0180\u0000\u0ca1\u0ca0"+ + "\u0001\u0000\u0000\u0000\u0ca1\u0ca2\u0001\u0000\u0000\u0000\u0ca2\u0ca4"+ + "\u0001\u0000\u0000\u0000\u0ca3\u0c80\u0001\u0000\u0000\u0000\u0ca3\u0c8f"+ + "\u0001\u0000\u0000\u0000\u0ca3\u0c99\u0001\u0000\u0000\u0000\u0ca4\u02ab"+ + "\u0001\u0000\u0000\u0000\u0ca5\u0ca6\u0003\u0464\u0232\u0000\u0ca6\u02ad"+ + "\u0001\u0000\u0000\u0000\u0ca7\u0ca8\u0003\u0464\u0232\u0000\u0ca8\u02af"+ + "\u0001\u0000\u0000\u0000\u0ca9\u0caa\u0003\u0464\u0232\u0000\u0caa\u02b1"+ + "\u0001\u0000\u0000\u0000\u0cab\u0cae\u0003\u02b4\u015a\u0000\u0cac\u0cae"+ + "\u0003\u02c4\u0162\u0000\u0cad\u0cab\u0001\u0000\u0000\u0000\u0cad\u0cac"+ + "\u0001\u0000\u0000\u0000\u0cae\u02b3\u0001\u0000\u0000\u0000\u0caf\u0cb2"+ + "\u0003\u02b6\u015b\u0000\u0cb0\u0cb2\u0003\u02be\u015f\u0000\u0cb1\u0caf"+ + "\u0001\u0000\u0000\u0000\u0cb1\u0cb0\u0001\u0000\u0000\u0000\u0cb2\u02b5"+ + "\u0001\u0000\u0000\u0000\u0cb3\u0cb6\u0003\u02b8\u015c\u0000\u0cb4\u0cb6"+ + "\u0003\u02ba\u015d\u0000\u0cb5\u0cb3\u0001\u0000\u0000\u0000\u0cb5\u0cb4"+ + "\u0001\u0000\u0000\u0000\u0cb6\u02b7\u0001\u0000\u0000\u0000\u0cb7\u0cb9"+ + "\u0005q\u0000\u0000\u0cb8\u0cba\u0003\u0300\u0180\u0000\u0cb9\u0cb8\u0001"+ + "\u0000\u0000\u0000\u0cb9\u0cba\u0001\u0000\u0000\u0000\u0cba\u0ce6\u0001"+ + "\u0000\u0000\u0000\u0cbb\u0cbd\u0005s\u0000\u0000\u0cbc\u0cbe\u0003\u0300"+ + "\u0180\u0000\u0cbd\u0cbc\u0001\u0000\u0000\u0000\u0cbd\u0cbe\u0001\u0000"+ + "\u0000\u0000\u0cbe\u0ce6\u0001\u0000\u0000\u0000\u0cbf\u0cc1\u0005u\u0000"+ + "\u0000\u0cc0\u0cc2\u0003\u0300\u0180\u0000\u0cc1\u0cc0\u0001\u0000\u0000"+ + "\u0000\u0cc1\u0cc2\u0001\u0000\u0000\u0000\u0cc2\u0ce6\u0001\u0000\u0000"+ + "\u0000\u0cc3\u0cc5\u0005w\u0000\u0000\u0cc4\u0cc6\u0003\u0300\u0180\u0000"+ + "\u0cc5\u0cc4\u0001\u0000\u0000\u0000\u0cc5\u0cc6\u0001\u0000\u0000\u0000"+ + "\u0cc6\u0ce6\u0001\u0000\u0000\u0000\u0cc7\u0cc9\u0005y\u0000\u0000\u0cc8"+ + "\u0cca\u0003\u0300\u0180\u0000\u0cc9\u0cc8\u0001\u0000\u0000\u0000\u0cc9"+ + "\u0cca\u0001\u0000\u0000\u0000\u0cca\u0ce6\u0001\u0000\u0000\u0000\u0ccb"+ + "\u0ccd\u0005{\u0000\u0000\u0ccc\u0cce\u0003\u0300\u0180\u0000\u0ccd\u0ccc"+ + "\u0001\u0000\u0000\u0000\u0ccd\u0cce\u0001\u0000\u0000\u0000\u0cce\u0ce6"+ + "\u0001\u0000\u0000\u0000\u0ccf\u0cd1\u0005\u00c5\u0000\u0000\u0cd0\u0cd2"+ + "\u0003\u0300\u0180\u0000\u0cd1\u0cd0\u0001\u0000\u0000\u0000\u0cd1\u0cd2"+ + "\u0001\u0000\u0000\u0000\u0cd2\u0ce6\u0001\u0000\u0000\u0000\u0cd3\u0cd8"+ + "\u0005o\u0000\u0000\u0cd4\u0cd5\u0005\u0173\u0000\u0000\u0cd5\u0cd6\u0003"+ + "\u02c0\u0160\u0000\u0cd6\u0cd7\u0005\u017e\u0000\u0000\u0cd7\u0cd9\u0001"+ + "\u0000\u0000\u0000\u0cd8\u0cd4\u0001\u0000\u0000\u0000\u0cd8\u0cd9\u0001"+ + "\u0000\u0000\u0000\u0cd9\u0cdb\u0001\u0000\u0000\u0000\u0cda\u0cdc\u0003"+ + "\u0300\u0180\u0000\u0cdb\u0cda\u0001\u0000\u0000\u0000\u0cdb\u0cdc\u0001"+ + "\u0000\u0000\u0000\u0cdc\u0ce6\u0001\u0000\u0000\u0000\u0cdd\u0cdf\u0005"+ + "#\u0000\u0000\u0cde\u0ce0\u0003\u0300\u0180\u0000\u0cdf\u0cde\u0001\u0000"+ + "\u0000\u0000\u0cdf\u0ce0\u0001\u0000\u0000\u0000\u0ce0\u0ce6\u0001\u0000"+ + "\u0000\u0000\u0ce1\u0ce3\u0005\u00bf\u0000\u0000\u0ce2\u0ce1\u0001\u0000"+ + "\u0000\u0000\u0ce2\u0ce3\u0001\u0000\u0000\u0000\u0ce3\u0ce4\u0001\u0000"+ + "\u0000\u0000\u0ce4\u0ce6\u0003\u02bc\u015e\u0000\u0ce5\u0cb7\u0001\u0000"+ + "\u0000\u0000\u0ce5\u0cbb\u0001\u0000\u0000\u0000\u0ce5\u0cbf\u0001\u0000"+ + "\u0000\u0000\u0ce5\u0cc3\u0001\u0000\u0000\u0000\u0ce5\u0cc7\u0001\u0000"+ + "\u0000\u0000\u0ce5\u0ccb\u0001\u0000\u0000\u0000\u0ce5\u0ccf\u0001\u0000"+ + "\u0000\u0000\u0ce5\u0cd3\u0001\u0000\u0000\u0000\u0ce5\u0cdd\u0001\u0000"+ + "\u0000\u0000\u0ce5\u0ce2\u0001\u0000\u0000\u0000\u0ce6\u02b9\u0001\u0000"+ + "\u0000\u0000\u0ce7\u0ce9\u0005\u00d6\u0000\u0000\u0ce8\u0cea\u0003\u0300"+ + "\u0180\u0000\u0ce9\u0ce8\u0001\u0000\u0000\u0000\u0ce9\u0cea\u0001\u0000"+ + "\u0000\u0000\u0cea\u0d14\u0001\u0000\u0000\u0000\u0ceb\u0ced\u0005\u00d7"+ + "\u0000\u0000\u0cec\u0cee\u0003\u0300\u0180\u0000\u0ced\u0cec\u0001\u0000"+ + "\u0000\u0000\u0ced\u0cee\u0001\u0000\u0000\u0000\u0cee\u0d14\u0001\u0000"+ + "\u0000\u0000\u0cef\u0cf1\u0005\u00d8\u0000\u0000\u0cf0\u0cf2\u0003\u0300"+ + "\u0180\u0000\u0cf1\u0cf0\u0001\u0000\u0000\u0000\u0cf1\u0cf2\u0001\u0000"+ + "\u0000\u0000\u0cf2\u0d14\u0001\u0000\u0000\u0000\u0cf3\u0cf5\u0005\u00d9"+ + "\u0000\u0000\u0cf4\u0cf6\u0003\u0300\u0180\u0000\u0cf5\u0cf4\u0001\u0000"+ + "\u0000\u0000\u0cf5\u0cf6\u0001\u0000\u0000\u0000\u0cf6\u0d14\u0001\u0000"+ + "\u0000\u0000\u0cf7\u0cf9\u0005\u00da\u0000\u0000\u0cf8\u0cfa\u0003\u0300"+ + "\u0180\u0000\u0cf9\u0cf8\u0001\u0000\u0000\u0000\u0cf9\u0cfa\u0001\u0000"+ + "\u0000\u0000\u0cfa\u0d14\u0001\u0000\u0000\u0000\u0cfb\u0cfd\u0005\u00db"+ + "\u0000\u0000\u0cfc\u0cfe\u0003\u0300\u0180\u0000\u0cfd\u0cfc\u0001\u0000"+ + "\u0000\u0000\u0cfd\u0cfe\u0001\u0000\u0000\u0000\u0cfe\u0d14\u0001\u0000"+ + "\u0000\u0000\u0cff\u0d01\u0005\u00e0\u0000\u0000\u0d00\u0d02\u0003\u0300"+ + "\u0180\u0000\u0d01\u0d00\u0001\u0000\u0000\u0000\u0d01\u0d02\u0001\u0000"+ + "\u0000\u0000\u0d02\u0d14\u0001\u0000\u0000\u0000\u0d03\u0d08\u0005\u00d5"+ + "\u0000\u0000\u0d04\u0d05\u0005\u0173\u0000\u0000\u0d05\u0d06\u0003\u02c0"+ + "\u0160\u0000\u0d06\u0d07\u0005\u017e\u0000\u0000\u0d07\u0d09\u0001\u0000"+ + "\u0000\u0000\u0d08\u0d04\u0001\u0000\u0000\u0000\u0d08\u0d09\u0001\u0000"+ + "\u0000\u0000\u0d09\u0d0b\u0001\u0000\u0000\u0000\u0d0a\u0d0c\u0003\u0300"+ + "\u0180\u0000\u0d0b\u0d0a\u0001\u0000\u0000\u0000\u0d0b\u0d0c\u0001\u0000"+ + "\u0000\u0000\u0d0c\u0d14\u0001\u0000\u0000\u0000\u0d0d\u0d0f\u0005\u00d4"+ + "\u0000\u0000\u0d0e\u0d10\u0003\u0300\u0180\u0000\u0d0f\u0d0e\u0001\u0000"+ + "\u0000\u0000\u0d0f\u0d10\u0001\u0000\u0000\u0000\u0d10\u0d14\u0001\u0000"+ + "\u0000\u0000\u0d11\u0d12\u0005\u00dd\u0000\u0000\u0d12\u0d14\u0003\u02bc"+ + "\u015e\u0000\u0d13\u0ce7\u0001\u0000\u0000\u0000\u0d13\u0ceb\u0001\u0000"+ + "\u0000\u0000\u0d13\u0cef\u0001\u0000\u0000\u0000\u0d13\u0cf3\u0001\u0000"+ + "\u0000\u0000\u0d13\u0cf7\u0001\u0000\u0000\u0000\u0d13\u0cfb\u0001\u0000"+ + "\u0000\u0000\u0d13\u0cff\u0001\u0000\u0000\u0000\u0d13\u0d03\u0001\u0000"+ + "\u0000\u0000\u0d13\u0d0d\u0001\u0000\u0000\u0000\u0d13\u0d11\u0001\u0000"+ + "\u0000\u0000\u0d14\u02bb\u0001\u0000\u0000\u0000\u0d15\u0d17\u0005r\u0000"+ + "\u0000\u0d16\u0d18\u0003\u0300\u0180\u0000\u0d17\u0d16\u0001\u0000\u0000"+ + "\u0000\u0d17\u0d18\u0001\u0000\u0000\u0000\u0d18\u0d42\u0001\u0000\u0000"+ + "\u0000\u0d19\u0d1b\u0005t\u0000\u0000\u0d1a\u0d1c\u0003\u0300\u0180\u0000"+ + "\u0d1b\u0d1a\u0001\u0000\u0000\u0000\u0d1b\u0d1c\u0001\u0000\u0000\u0000"+ + "\u0d1c\u0d42\u0001\u0000\u0000\u0000\u0d1d\u0d1f\u0005v\u0000\u0000\u0d1e"+ + "\u0d20\u0003\u0300\u0180\u0000\u0d1f\u0d1e\u0001\u0000\u0000\u0000\u0d1f"+ + "\u0d20\u0001\u0000\u0000\u0000\u0d20\u0d42\u0001\u0000\u0000\u0000\u0d21"+ + "\u0d23\u0005x\u0000\u0000\u0d22\u0d24\u0003\u0300\u0180\u0000\u0d23\u0d22"+ + "\u0001\u0000\u0000\u0000\u0d23\u0d24\u0001\u0000\u0000\u0000\u0d24\u0d42"+ + "\u0001\u0000\u0000\u0000\u0d25\u0d27\u0005z\u0000\u0000\u0d26\u0d28\u0003"+ + "\u0300\u0180\u0000\u0d27\u0d26\u0001\u0000\u0000\u0000\u0d27\u0d28\u0001"+ + "\u0000\u0000\u0000\u0d28\u0d42\u0001\u0000\u0000\u0000\u0d29\u0d2b\u0005"+ + "|\u0000\u0000\u0d2a\u0d2c\u0003\u0300\u0180\u0000\u0d2b\u0d2a\u0001\u0000"+ + "\u0000\u0000\u0d2b\u0d2c\u0001\u0000\u0000\u0000\u0d2c\u0d42\u0001\u0000"+ + "\u0000\u0000\u0d2d\u0d2e\u0005\u00c4\u0000\u0000\u0d2e\u0d30\u0005p\u0000"+ + "\u0000\u0d2f\u0d31\u0003\u0300\u0180\u0000\u0d30\u0d2f\u0001\u0000\u0000"+ + "\u0000\u0d30\u0d31\u0001\u0000\u0000\u0000\u0d31\u0d42\u0001\u0000\u0000"+ + "\u0000\u0d32\u0d37\u0005p\u0000\u0000\u0d33\u0d34\u0005\u0173\u0000\u0000"+ + "\u0d34\u0d35\u0003\u02c0\u0160\u0000\u0d35\u0d36\u0005\u017e\u0000\u0000"+ + "\u0d36\u0d38\u0001\u0000\u0000\u0000\u0d37\u0d33\u0001\u0000\u0000\u0000"+ + "\u0d37\u0d38\u0001\u0000\u0000\u0000\u0d38\u0d3a\u0001\u0000\u0000\u0000"+ + "\u0d39\u0d3b\u0003\u0300\u0180\u0000\u0d3a\u0d39\u0001\u0000\u0000\u0000"+ + "\u0d3a\u0d3b\u0001\u0000\u0000\u0000\u0d3b\u0d42\u0001\u0000\u0000\u0000"+ + "\u0d3c\u0d3d\u0005\"\u0000\u0000\u0d3d\u0d3f\u0005p\u0000\u0000\u0d3e"+ + "\u0d40\u0003\u0300\u0180\u0000\u0d3f\u0d3e\u0001\u0000\u0000\u0000\u0d3f"+ + "\u0d40\u0001\u0000\u0000\u0000\u0d40\u0d42\u0001\u0000\u0000\u0000\u0d41"+ + "\u0d15\u0001\u0000\u0000\u0000\u0d41\u0d19\u0001\u0000\u0000\u0000\u0d41"+ + "\u0d1d\u0001\u0000\u0000\u0000\u0d41\u0d21\u0001\u0000\u0000\u0000\u0d41"+ + "\u0d25\u0001\u0000\u0000\u0000\u0d41\u0d29\u0001\u0000\u0000\u0000\u0d41"+ + "\u0d2d\u0001\u0000\u0000\u0000\u0d41\u0d32\u0001\u0000\u0000\u0000\u0d41"+ + "\u0d3c\u0001\u0000\u0000\u0000\u0d42\u02bd\u0001\u0000\u0000\u0000\u0d43"+ + "\u0d4e\u0007\u0012\u0000\u0000\u0d44\u0d45\u0005\u0173\u0000\u0000\u0d45"+ + "\u0d48\u0003\u02c0\u0160\u0000\u0d46\u0d47\u0005\u0169\u0000\u0000\u0d47"+ + "\u0d49\u0003\u02c2\u0161\u0000\u0d48\u0d46\u0001\u0000\u0000\u0000\u0d48"+ + "\u0d49\u0001\u0000\u0000\u0000\u0d49\u0d4a\u0001\u0000\u0000\u0000\u0d4a"+ + "\u0d4c\u0005\u017e\u0000\u0000\u0d4b\u0d4d\u0003\u0300\u0180\u0000\u0d4c"+ + "\u0d4b\u0001\u0000\u0000\u0000\u0d4c\u0d4d\u0001\u0000\u0000\u0000\u0d4d"+ + "\u0d4f\u0001\u0000\u0000\u0000\u0d4e\u0d44\u0001\u0000\u0000\u0000\u0d4e"+ + "\u0d4f\u0001\u0000\u0000\u0000\u0d4f\u02bf\u0001\u0000\u0000\u0000\u0d50"+ + "\u0d51\u0003\u0466\u0233\u0000\u0d51\u02c1\u0001\u0000\u0000\u0000\u0d52"+ + "\u0d53\u0003\u0466\u0233\u0000\u0d53\u02c3\u0001\u0000\u0000\u0000\u0d54"+ + "\u0d56\u0005^\u0000\u0000\u0d55\u0d57\u0003\u0300\u0180\u0000\u0d56\u0d55"+ + "\u0001\u0000\u0000\u0000\u0d56\u0d57\u0001\u0000\u0000\u0000\u0d57\u0d82"+ + "\u0001\u0000\u0000\u0000\u0d58\u0d5a\u0005_\u0000\u0000\u0d59\u0d5b\u0003"+ + "\u0300\u0180\u0000\u0d5a\u0d59\u0001\u0000\u0000\u0000\u0d5a\u0d5b\u0001"+ + "\u0000\u0000\u0000\u0d5b\u0d82\u0001\u0000\u0000\u0000\u0d5c\u0d5e\u0005"+ + "`\u0000\u0000\u0d5d\u0d5f\u0003\u0300\u0180\u0000\u0d5e\u0d5d\u0001\u0000"+ + "\u0000\u0000\u0d5e\u0d5f\u0001\u0000\u0000\u0000\u0d5f\u0d82\u0001\u0000"+ + "\u0000\u0000\u0d60\u0d62\u0005a\u0000\u0000\u0d61\u0d63\u0003\u0300\u0180"+ + "\u0000\u0d62\u0d61\u0001\u0000\u0000\u0000\u0d62\u0d63\u0001\u0000\u0000"+ + "\u0000\u0d63\u0d82\u0001\u0000\u0000\u0000\u0d64\u0d66\u0005b\u0000\u0000"+ + "\u0d65\u0d67\u0003\u0300\u0180\u0000\u0d66\u0d65\u0001\u0000\u0000\u0000"+ + "\u0d66\u0d67\u0001\u0000\u0000\u0000\u0d67\u0d82\u0001\u0000\u0000\u0000"+ + "\u0d68\u0d71\u0005]\u0000\u0000\u0d69\u0d6a\u0005\u0173\u0000\u0000\u0d6a"+ + "\u0d6d\u0003\u02c0\u0160\u0000\u0d6b\u0d6c\u0005\u0169\u0000\u0000\u0d6c"+ + "\u0d6e\u0003\u02c2\u0161\u0000\u0d6d\u0d6b\u0001\u0000\u0000\u0000\u0d6d"+ + "\u0d6e\u0001\u0000\u0000\u0000\u0d6e\u0d6f\u0001\u0000\u0000\u0000\u0d6f"+ + "\u0d70\u0005\u017e\u0000\u0000\u0d70\u0d72\u0001\u0000\u0000\u0000\u0d71"+ + "\u0d69\u0001\u0000\u0000\u0000\u0d71\u0d72\u0001\u0000\u0000\u0000\u0d72"+ + "\u0d74\u0001\u0000\u0000\u0000\u0d73\u0d75\u0003\u0300\u0180\u0000\u0d74"+ + "\u0d73\u0001\u0000\u0000\u0000\u0d74\u0d75\u0001\u0000\u0000\u0000\u0d75"+ + "\u0d82\u0001\u0000\u0000\u0000\u0d76\u0d78\u0005\u00af\u0000\u0000\u0d77"+ + "\u0d79\u0003\u0300\u0180\u0000\u0d78\u0d77\u0001\u0000\u0000\u0000\u0d78"+ + "\u0d79\u0001\u0000\u0000\u0000\u0d79\u0d82\u0001\u0000\u0000\u0000\u0d7a"+ + "\u0d7c\u0005Q\u0000\u0000\u0d7b\u0d7d\u0005\u00ac\u0000\u0000\u0d7c\u0d7b"+ + "\u0001\u0000\u0000\u0000\u0d7c\u0d7d\u0001\u0000\u0000\u0000\u0d7d\u0d7f"+ + "\u0001\u0000\u0000\u0000\u0d7e\u0d80\u0003\u0300\u0180\u0000\u0d7f\u0d7e"+ + "\u0001\u0000\u0000\u0000\u0d7f\u0d80\u0001\u0000\u0000\u0000\u0d80\u0d82"+ + "\u0001\u0000\u0000\u0000\u0d81\u0d54\u0001\u0000\u0000\u0000\u0d81\u0d58"+ + "\u0001\u0000\u0000\u0000\u0d81\u0d5c\u0001\u0000\u0000\u0000\u0d81\u0d60"+ + "\u0001\u0000\u0000\u0000\u0d81\u0d64\u0001\u0000\u0000\u0000\u0d81\u0d68"+ + "\u0001\u0000\u0000\u0000\u0d81\u0d76\u0001\u0000\u0000\u0000\u0d81\u0d7a"+ + "\u0001\u0000\u0000\u0000\u0d82\u02c5\u0001\u0000\u0000\u0000\u0d83\u0d86"+ + "\u0003\u02c8\u0164\u0000\u0d84\u0d86\u0003\u02d4\u016a\u0000\u0d85\u0d83"+ + "\u0001\u0000\u0000\u0000\u0d85\u0d84\u0001\u0000\u0000\u0000\u0d86\u02c7"+ + "\u0001\u0000\u0000\u0000\u0d87\u0d8d\u0003\u02ca\u0165\u0000\u0d88\u0d8d"+ + "\u0003\u02cc\u0166\u0000\u0d89\u0d8d\u0003\u02ce\u0167\u0000\u0d8a\u0d8d"+ + "\u0003\u02d0\u0168\u0000\u0d8b\u0d8d\u0003\u02d2\u0169\u0000\u0d8c\u0d87"+ + "\u0001\u0000\u0000\u0000\u0d8c\u0d88\u0001\u0000\u0000\u0000\u0d8c\u0d89"+ + "\u0001\u0000\u0000\u0000\u0d8c\u0d8a\u0001\u0000\u0000\u0000\u0d8c\u0d8b"+ + "\u0001\u0000\u0000\u0000\u0d8d\u02c9\u0001\u0000\u0000\u0000\u0d8e\u0d8f"+ + "\u0005\u00eb\u0000\u0000\u0d8f\u0d91\u0005G\u0000\u0000\u0d90\u0d92\u0003"+ + "\u0300\u0180\u0000\u0d91\u0d90\u0001\u0000\u0000\u0000\u0d91\u0d92\u0001"+ + "\u0000\u0000\u0000\u0d92\u0d9b\u0001\u0000\u0000\u0000\u0d93\u0d94\u0005"+ + "\u00d0\u0000\u0000\u0d94\u0d95\u0005\u00e7\u0000\u0000\u0d95\u0d96\u0005"+ + "\u00cf\u0000\u0000\u0d96\u0d98\u0005\u0144\u0000\u0000\u0d97\u0d99\u0003"+ + "\u0300\u0180\u0000\u0d98\u0d97\u0001\u0000\u0000\u0000\u0d98\u0d99\u0001"+ + "\u0000\u0000\u0000\u0d99\u0d9b\u0001\u0000\u0000\u0000\u0d9a\u0d8e\u0001"+ + "\u0000\u0000\u0000\u0d9a\u0d93\u0001\u0000\u0000\u0000\u0d9b\u02cb\u0001"+ + "\u0000\u0000\u0000\u0d9c\u0d9d\u0005\u0087\u0000\u0000\u0d9d\u0d9f\u0005"+ + "G\u0000\u0000\u0d9e\u0da0\u0003\u0300\u0180\u0000\u0d9f\u0d9e\u0001\u0000"+ + "\u0000\u0000\u0d9f\u0da0\u0001\u0000\u0000\u0000\u0da0\u0dab\u0001\u0000"+ + "\u0000\u0000\u0da1\u0da5\u0005\u00d0\u0000\u0000\u0da2\u0da3\u0005\u0142"+ + "\u0000\u0000\u0da3\u0da4\u0005\u00cf\u0000\u0000\u0da4\u0da6\u0005\u0144"+ + "\u0000\u0000\u0da5\u0da2\u0001\u0000\u0000\u0000\u0da5\u0da6\u0001\u0000"+ + "\u0000\u0000\u0da6\u0da8\u0001\u0000\u0000\u0000\u0da7\u0da9\u0003\u0300"+ + "\u0180\u0000\u0da8\u0da7\u0001\u0000\u0000\u0000\u0da8\u0da9\u0001\u0000"+ + "\u0000\u0000\u0da9\u0dab\u0001\u0000\u0000\u0000\u0daa\u0d9c\u0001\u0000"+ + "\u0000\u0000\u0daa\u0da1\u0001\u0000\u0000\u0000\u0dab\u02cd\u0001\u0000"+ + "\u0000\u0000\u0dac\u0dae\u0005F\u0000\u0000\u0dad\u0daf\u0003\u0300\u0180"+ + "\u0000\u0dae\u0dad\u0001\u0000\u0000\u0000\u0dae\u0daf\u0001\u0000\u0000"+ + "\u0000\u0daf\u02cf\u0001\u0000\u0000\u0000\u0db0\u0db1\u0005\u00eb\u0000"+ + "\u0000\u0db1\u0db3\u0005\u00cf\u0000\u0000\u0db2\u0db4\u0003\u0300\u0180"+ + "\u0000\u0db3\u0db2\u0001\u0000\u0000\u0000\u0db3\u0db4\u0001\u0000\u0000"+ + "\u0000\u0db4\u0dbd\u0001\u0000\u0000\u0000\u0db5\u0db6\u0005\u00cf\u0000"+ + "\u0000\u0db6\u0db7\u0005\u00e7\u0000\u0000\u0db7\u0db8\u0005\u00cf\u0000"+ + "\u0000\u0db8\u0dba\u0005\u0144\u0000\u0000\u0db9\u0dbb\u0003\u0300\u0180"+ + "\u0000\u0dba\u0db9\u0001\u0000\u0000\u0000\u0dba\u0dbb\u0001\u0000\u0000"+ + "\u0000\u0dbb\u0dbd\u0001\u0000\u0000\u0000\u0dbc\u0db0\u0001\u0000\u0000"+ + "\u0000\u0dbc\u0db5\u0001\u0000\u0000\u0000\u0dbd\u02d1\u0001\u0000\u0000"+ + "\u0000\u0dbe\u0dbf\u0005\u0087\u0000\u0000\u0dbf\u0dc1\u0005\u00cf\u0000"+ + "\u0000\u0dc0\u0dc2\u0003\u0300\u0180\u0000\u0dc1\u0dc0\u0001\u0000\u0000"+ + "\u0000\u0dc1\u0dc2\u0001\u0000\u0000\u0000\u0dc2\u0dcb\u0001\u0000\u0000"+ + "\u0000\u0dc3\u0dc4\u0005\u00cf\u0000\u0000\u0dc4\u0dc5\u0005\u0142\u0000"+ + "\u0000\u0dc5\u0dc6\u0005\u00cf\u0000\u0000\u0dc6\u0dc8\u0005\u0144\u0000"+ + "\u0000\u0dc7\u0dc9\u0003\u0300\u0180\u0000\u0dc8\u0dc7\u0001\u0000\u0000"+ + "\u0000\u0dc8\u0dc9\u0001\u0000\u0000\u0000\u0dc9\u0dcb\u0001\u0000\u0000"+ + "\u0000\u0dca\u0dbe\u0001\u0000\u0000\u0000\u0dca\u0dc3\u0001\u0000\u0000"+ + "\u0000\u0dcb\u02d3\u0001\u0000\u0000\u0000\u0dcc\u0dcd\u0005S\u0000\u0000"+ + "\u0dcd\u0dce\u0005\u0173\u0000\u0000\u0dce\u0dcf\u0003\u02d6\u016b\u0000"+ + "\u0dcf\u0dd1\u0005\u017e\u0000\u0000\u0dd0\u0dd2\u0003\u0300\u0180\u0000"+ + "\u0dd1\u0dd0\u0001\u0000\u0000\u0000\u0dd1\u0dd2\u0001\u0000\u0000\u0000"+ + "\u0dd2\u02d5\u0001\u0000\u0000\u0000\u0dd3\u0dd4\u0005\u00e9\u0000\u0000"+ + "\u0dd4\u0dd5\u0005\u013b\u0000\u0000\u0dd5\u0dda\u0005\u0094\u0000\u0000"+ + "\u0dd6\u0dd7\u0005H\u0000\u0000\u0dd7\u0dd8\u0005\u013b\u0000\u0000\u0dd8"+ + "\u0dda\u0005\u00ba\u0000\u0000\u0dd9\u0dd3\u0001\u0000\u0000\u0000\u0dd9"+ + "\u0dd6\u0001\u0000\u0000\u0000\u0dda\u02d7\u0001\u0000\u0000\u0000\u0ddb"+ + "\u0de0\u0003\u02e0\u0170\u0000\u0ddc\u0de0\u0003\u02e6\u0173\u0000\u0ddd"+ + "\u0de0\u0003\u02e8\u0174\u0000\u0dde\u0de0\u0003\u02ee\u0177\u0000\u0ddf"+ + "\u0ddb\u0001\u0000\u0000\u0000\u0ddf\u0ddc\u0001\u0000\u0000\u0000\u0ddf"+ + "\u0ddd\u0001\u0000\u0000\u0000\u0ddf\u0dde\u0001\u0000\u0000\u0000\u0de0"+ + "\u02d9\u0001\u0000\u0000\u0000\u0de1\u0de4\u0003\u02dc\u016e\u0000\u0de2"+ + "\u0de4\u0003\u02de\u016f\u0000\u0de3\u0de1\u0001\u0000\u0000\u0000\u0de3"+ + "\u0de2\u0001\u0000\u0000\u0000\u0de4\u02db\u0001\u0000\u0000\u0000\u0de5"+ + "\u0de6\u0005\u009a\u0000\u0000\u0de6\u02dd\u0001\u0000\u0000\u0000\u0de7"+ + "\u0de8\u0005\u009a\u0000\u0000\u0de8\u0deb\u0003\u0300\u0180\u0000\u0de9"+ + "\u0deb\u0005\u0099\u0000\u0000\u0dea\u0de7\u0001\u0000\u0000\u0000\u0dea"+ + "\u0de9\u0001\u0000\u0000\u0000\u0deb\u02df\u0001\u0000\u0000\u0000\u0dec"+ + "\u0def\u0003\u02e4\u0172\u0000\u0ded\u0def\u0003\u02e2\u0171\u0000\u0dee"+ + "\u0dec\u0001\u0000\u0000\u0000\u0dee\u0ded\u0001\u0000\u0000\u0000\u0def"+ + "\u02e1\u0001\u0000\u0000\u0000\u0df0\u0df2\u0005\u0131\u0000\u0000\u0df1"+ + "\u0df0\u0001\u0000\u0000\u0000\u0df1\u0df2\u0001\u0000\u0000\u0000\u0df2"+ + "\u0df3\u0001\u0000\u0000\u0000\u0df3\u0df4\u0005\u0121\u0000\u0000\u0df4"+ + "\u0df6\u0003\u023c\u011e\u0000\u0df5\u0df7\u0003\u0300\u0180\u0000\u0df6"+ + "\u0df5\u0001\u0000\u0000\u0000\u0df6\u0df7\u0001\u0000\u0000\u0000\u0df7"+ + "\u02e3\u0001\u0000\u0000\u0000\u0df8\u0dfa\u0005\u0019\u0000\u0000\u0df9"+ + "\u0dfb\u0005\u0131\u0000\u0000\u0dfa\u0df9\u0001\u0000\u0000\u0000\u0dfa"+ + "\u0dfb\u0001\u0000\u0000\u0000\u0dfb\u0dfc\u0001\u0000\u0000\u0000\u0dfc"+ + "\u0dfe\u0005\u0121\u0000\u0000\u0dfd\u0dff\u0003\u0300\u0180\u0000\u0dfe"+ + "\u0dfd\u0001\u0000\u0000\u0000\u0dfe\u0dff\u0001\u0000\u0000\u0000\u0dff"+ + "\u02e5\u0001\u0000\u0000\u0000\u0e00\u0e02\u0003\u029e\u014f\u0000\u0e01"+ + "\u0e03\u0003\u0300\u0180\u0000\u0e02\u0e01\u0001\u0000\u0000\u0000\u0e02"+ + "\u0e03\u0001\u0000\u0000\u0000\u0e03\u02e7\u0001\u0000\u0000\u0000\u0e04"+ + "\u0e07\u0003\u02ec\u0176\u0000\u0e05\u0e07\u0003\u02ea\u0175\u0000\u0e06"+ + "\u0e04\u0001\u0000\u0000\u0000\u0e06\u0e05\u0001\u0000\u0000\u0000\u0e07"+ + "\u02e9\u0001\u0000\u0000\u0000\u0e08\u0e0a\u0003\u0244\u0122\u0000\u0e09"+ + "\u0e0b\u0003\u0300\u0180\u0000\u0e0a\u0e09\u0001\u0000\u0000\u0000\u0e0a"+ + "\u0e0b\u0001\u0000\u0000\u0000\u0e0b\u02eb\u0001\u0000\u0000\u0000\u0e0c"+ + "\u0e0e\u0005\u0019\u0000\u0000\u0e0d\u0e0c\u0001\u0000\u0000\u0000\u0e0d"+ + "\u0e0e\u0001\u0000\u0000\u0000\u0e0e\u0e0f\u0001\u0000\u0000\u0000\u0e0f"+ + "\u0e11\u0003\u0474\u023a\u0000\u0e10\u0e12\u0003\u0300\u0180\u0000\u0e11"+ + "\u0e10\u0001\u0000\u0000\u0000\u0e11\u0e12\u0001\u0000\u0000\u0000\u0e12"+ + "\u02ed\u0001\u0000\u0000\u0000\u0e13\u0e16\u0003\u02f2\u0179\u0000\u0e14"+ + "\u0e16\u0003\u02f0\u0178\u0000\u0e15\u0e13\u0001\u0000\u0000\u0000\u0e15"+ + "\u0e14\u0001\u0000\u0000\u0000\u0e16\u02ef\u0001\u0000\u0000\u0000\u0e17"+ + "\u0e19\u0003\u0258\u012c\u0000\u0e18\u0e1a\u0003\u0300\u0180\u0000\u0e19"+ + "\u0e18\u0001\u0000\u0000\u0000\u0e19\u0e1a\u0001\u0000\u0000\u0000\u0e1a"+ + "\u02f1\u0001\u0000\u0000\u0000\u0e1b\u0e1d\u0005\u0019\u0000\u0000\u0e1c"+ + "\u0e1b\u0001\u0000\u0000\u0000\u0e1c\u0e1d\u0001\u0000\u0000\u0000\u0e1d"+ + "\u0e1e\u0001\u0000\u0000\u0000\u0e1e\u0e20\u0003\u0478\u023c\u0000\u0e1f"+ + "\u0e21\u0003\u0300\u0180\u0000\u0e20\u0e1f\u0001\u0000\u0000\u0000\u0e20"+ + "\u0e21\u0001\u0000\u0000\u0000\u0e21\u02f3\u0001\u0000\u0000\u0000\u0e22"+ + "\u0e24\u0005\u00a6\u0000\u0000\u0e23\u0e25\u0003\u0300\u0180\u0000\u0e24"+ + "\u0e23\u0001\u0000\u0000\u0000\u0e24\u0e25\u0001\u0000\u0000\u0000\u0e25"+ + "\u02f5\u0001\u0000\u0000\u0000\u0e26\u0e28\u0005f\u0000\u0000\u0e27\u0e26"+ + "\u0001\u0000\u0000\u0000\u0e27\u0e28\u0001\u0000\u0000\u0000\u0e28\u0e29"+ + "\u0001\u0000\u0000\u0000\u0e29\u0e2a\u0003\u02f8\u017c\u0000\u0e2a\u02f7"+ + "\u0001\u0000\u0000\u0000\u0e2b\u0e2c\u0007\u0013\u0000\u0000\u0e2c\u02f9"+ + "\u0001\u0000\u0000\u0000\u0e2d\u0e2f\u0005\u0019\u0000\u0000\u0e2e\u0e2d"+ + "\u0001\u0000\u0000\u0000\u0e2e\u0e2f\u0001\u0000\u0000\u0000\u0e2f\u0e30"+ + "\u0001\u0000\u0000\u0000\u0e30\u0e32\u0005\u00b0\u0000\u0000\u0e31\u0e33"+ + "\u0003\u0300\u0180\u0000\u0e32\u0e31\u0001\u0000\u0000\u0000\u0e32\u0e33"+ + "\u0001\u0000\u0000\u0000\u0e33\u0e3c\u0001\u0000\u0000\u0000\u0e34\u0e36"+ + "\u0005\u00b0\u0000\u0000\u0e35\u0e34\u0001\u0000\u0000\u0000\u0e35\u0e36"+ + "\u0001\u0000\u0000\u0000\u0e36\u0e37\u0001\u0000\u0000\u0000\u0e37\u0e39"+ + "\u0003\u02fc\u017e\u0000\u0e38\u0e3a\u0003\u0300\u0180\u0000\u0e39\u0e38"+ + "\u0001\u0000\u0000\u0000\u0e39\u0e3a\u0001\u0000\u0000\u0000\u0e3a\u0e3c"+ + "\u0001\u0000\u0000\u0000\u0e3b\u0e2e\u0001\u0000\u0000\u0000\u0e3b\u0e35"+ + "\u0001\u0000\u0000\u0000\u0e3c\u02fb\u0001\u0000\u0000\u0000\u0e3d\u0e3f"+ + "\u0005\u0171\u0000\u0000\u0e3e\u0e40\u0003\u02fe\u017f\u0000\u0e3f\u0e3e"+ + "\u0001\u0000\u0000\u0000\u0e3f\u0e40\u0001\u0000\u0000\u0000\u0e40\u0e41"+ + "\u0001\u0000\u0000\u0000\u0e41\u0e42\u0005\u017c\u0000\u0000\u0e42\u02fd"+ + "\u0001\u0000\u0000\u0000\u0e43\u0e48\u0003\u0302\u0181\u0000\u0e44\u0e45"+ + "\u0005\u0169\u0000\u0000\u0e45\u0e47\u0003\u0302\u0181\u0000\u0e46\u0e44"+ + "\u0001\u0000\u0000\u0000\u0e47\u0e4a\u0001\u0000\u0000\u0000\u0e48\u0e46"+ + "\u0001\u0000\u0000\u0000\u0e48\u0e49\u0001\u0000\u0000\u0000\u0e49\u02ff"+ + "\u0001\u0000\u0000\u0000\u0e4a\u0e48\u0001\u0000\u0000\u0000\u0e4b\u0e4c"+ + "\u0005\u0098\u0000\u0000\u0e4c\u0e4d\u0005\u009a\u0000\u0000\u0e4d\u0301"+ + "\u0001\u0000\u0000\u0000\u0e4e\u0e50\u0003\u043c\u021e\u0000\u0e4f\u0e51"+ + "\u0003\u02a2\u0151\u0000\u0e50\u0e4f\u0001\u0000\u0000\u0000\u0e50\u0e51"+ + "\u0001\u0000\u0000\u0000\u0e51\u0e52\u0001\u0000\u0000\u0000\u0e52\u0e53"+ + "\u0003\u02a0\u0150\u0000\u0e53\u0303\u0001\u0000\u0000\u0000\u0e54\u0e55"+ + "\u0003\u0336\u019b\u0000\u0e55\u0305\u0001\u0000\u0000\u0000\u0e56\u0e60"+ + "\u0003\u030c\u0186\u0000\u0e57\u0e60\u0003\u030e\u0187\u0000\u0e58\u0e60"+ + "\u0003\u0312\u0189\u0000\u0e59\u0e60\u0003\u0318\u018c\u0000\u0e5a\u0e60"+ + "\u0003\u031c\u018e\u0000\u0e5b\u0e60\u0003\u0322\u0191\u0000\u0e5c\u0e60"+ + "\u0003\u032c\u0196\u0000\u0e5d\u0e60\u0003\u032e\u0197\u0000\u0e5e\u0e60"+ + "\u0003\u0330\u0198\u0000\u0e5f\u0e56\u0001\u0000\u0000\u0000\u0e5f\u0e57"+ + "\u0001\u0000\u0000\u0000\u0e5f\u0e58\u0001\u0000\u0000\u0000\u0e5f\u0e59"+ + "\u0001\u0000\u0000\u0000\u0e5f\u0e5a\u0001\u0000\u0000\u0000\u0e5f\u0e5b"+ + "\u0001\u0000\u0000\u0000\u0e5f\u0e5c\u0001\u0000\u0000\u0000\u0e5f\u0e5d"+ + "\u0001\u0000\u0000\u0000\u0e5f\u0e5e\u0001\u0000\u0000\u0000\u0e60\u0307"+ + "\u0001\u0000\u0000\u0000\u0e61\u0e62\u0003\u030a\u0185\u0000\u0e62\u0e63"+ + "\u0003\u0332\u0199\u0000\u0e63\u0309\u0001\u0000\u0000\u0000\u0e64\u0e65"+ + "\u0007\u0014\u0000\u0000\u0e65\u030b\u0001\u0000\u0000\u0000\u0e66\u0e78"+ + "\u0005Y\u0000\u0000\u0e67\u0e68\u0005\u0171\u0000\u0000\u0e68\u0e69\u0003"+ + "\u012c\u0096\u0000\u0e69\u0e6a\u0005\u017c\u0000\u0000\u0e6a\u0e79\u0001"+ + "\u0000\u0000\u0000\u0e6b\u0e6c\u0005\u0173\u0000\u0000\u0e6c\u0e6d\u0003"+ + "\u012c\u0096\u0000\u0e6d\u0e6e\u0005\u017e\u0000\u0000\u0e6e\u0e79\u0001"+ + "\u0000\u0000\u0000\u0e6f\u0e70\u0005\u0171\u0000\u0000\u0e70\u0e71\u0003"+ + "\u00dam\u0000\u0e71\u0e72\u0005\u017c\u0000\u0000\u0e72\u0e79\u0001\u0000"+ + "\u0000\u0000\u0e73\u0e74\u0005\u0173\u0000\u0000\u0e74\u0e75\u0003\u00da"+ + "m\u0000\u0e75\u0e76\u0005\u017e\u0000\u0000\u0e76\u0e79\u0001\u0000\u0000"+ + "\u0000\u0e77\u0e79\u00038\u001c\u0000\u0e78\u0e67\u0001\u0000\u0000\u0000"+ + "\u0e78\u0e6b\u0001\u0000\u0000\u0000\u0e78\u0e6f\u0001\u0000\u0000\u0000"+ + "\u0e78\u0e73\u0001\u0000\u0000\u0000\u0e78\u0e77\u0001\u0000\u0000\u0000"+ + "\u0e79\u030d\u0001\u0000\u0000\u0000\u0e7a\u0e7b\u0003\u034a\u01a5\u0000"+ + "\u0e7b\u0e7c\u0003\u0310\u0188\u0000\u0e7c\u030f\u0001\u0000\u0000\u0000"+ + "\u0e7d\u0e7f\u0005\u007f\u0000\u0000\u0e7e\u0e80\u0005\u0098\u0000\u0000"+ + "\u0e7f\u0e7e\u0001\u0000\u0000\u0000\u0e7f\u0e80\u0001\u0000\u0000\u0000"+ + "\u0e80\u0e81\u0001\u0000\u0000\u0000\u0e81\u0e82\u0005\u009a\u0000\u0000"+ + "\u0e82\u0311\u0001\u0000\u0000\u0000\u0e83\u0e84\u0003\u034a\u01a5\u0000"+ + "\u0e84\u0e85\u0003\u0314\u018a\u0000\u0e85\u0313\u0001\u0000\u0000\u0000"+ + "\u0e86\u0e88\u0005\u007f\u0000\u0000\u0e87\u0e89\u0005\u0098\u0000\u0000"+ + "\u0e88\u0e87\u0001\u0000\u0000\u0000\u0e88\u0e89\u0001\u0000\u0000\u0000"+ + "\u0e89\u0e8a\u0001\u0000\u0000\u0000\u0e8a\u0e8b\u0003\u02a2\u0151\u0000"+ + "\u0e8b\u0e8c\u0003\u02a0\u0150\u0000\u0e8c\u0315\u0001\u0000\u0000\u0000"+ + "\u0e8d\u0e8f\u0005\u007f\u0000\u0000\u0e8e\u0e90\u0005\u0098\u0000\u0000"+ + "\u0e8f\u0e8e\u0001\u0000\u0000\u0000\u0e8f\u0e90\u0001\u0000\u0000\u0000"+ + "\u0e90\u0e92\u0001\u0000\u0000\u0000\u0e91\u0e93\u0003\u03f8\u01fc\u0000"+ + "\u0e92\u0e91\u0001\u0000\u0000\u0000\u0e92\u0e93\u0001\u0000\u0000\u0000"+ + "\u0e93\u0e94\u0001\u0000\u0000\u0000\u0e94\u0e95\u0005\u012e\u0000\u0000"+ + "\u0e95\u0317\u0001\u0000\u0000\u0000\u0e96\u0e97\u0003\u01ae\u00d7\u0000"+ + "\u0e97\u0e98\u0003\u031a\u018d\u0000\u0e98\u0319\u0001\u0000\u0000\u0000"+ + "\u0e99\u0e9b\u0005\u007f\u0000\u0000\u0e9a\u0e9c\u0005\u0098\u0000\u0000"+ + "\u0e9b\u0e9a\u0001\u0000\u0000\u0000\u0e9b\u0e9c\u0001\u0000\u0000\u0000"+ + "\u0e9c\u0e9d\u0001\u0000\u0000\u0000\u0e9d\u0e9e\u0005\u011b\u0000\u0000"+ + "\u0e9e\u031b\u0001\u0000\u0000\u0000\u0e9f\u0ea0\u0003\u01ae\u00d7\u0000"+ + "\u0ea0\u0ea1\u0003\u031e\u018f\u0000\u0ea1\u031d\u0001\u0000\u0000\u0000"+ + "\u0ea2\u0ea3\u0003\u0320\u0190\u0000\u0ea3\u0ea4\u0003\u01aa\u00d5\u0000"+ + "\u0ea4\u031f\u0001\u0000\u0000\u0000\u0ea5\u0ea7\u0005\u007f\u0000\u0000"+ + "\u0ea6\u0ea8\u0005\u0098\u0000\u0000\u0ea7\u0ea6\u0001\u0000\u0000\u0000"+ + "\u0ea7\u0ea8\u0001\u0000\u0000\u0000\u0ea8\u0ea9\u0001\u0000\u0000\u0000"+ + "\u0ea9\u0eac\u0005\u0125\u0000\u0000\u0eaa\u0eac\u0005\u0168\u0000\u0000"+ + "\u0eab\u0ea5\u0001\u0000\u0000\u0000\u0eab\u0eaa\u0001\u0000\u0000\u0000"+ + "\u0eac\u0321\u0001\u0000\u0000\u0000\u0ead\u0eae\u0003\u0324\u0192\u0000"+ + "\u0eae\u0eaf\u0003\u0326\u0193\u0000\u0eaf\u0eb4\u0001\u0000\u0000\u0000"+ + "\u0eb0\u0eb1\u0003\u0324\u0192\u0000\u0eb1\u0eb2\u0003\u0328\u0194\u0000"+ + "\u0eb2\u0eb4\u0001\u0000\u0000\u0000\u0eb3\u0ead\u0001\u0000\u0000\u0000"+ + "\u0eb3\u0eb0\u0001\u0000\u0000\u0000\u0eb4\u0323\u0001\u0000\u0000\u0000"+ + "\u0eb5\u0eb6\u0003\u01ae\u00d7\u0000\u0eb6\u0325\u0001\u0000\u0000\u0000"+ + "\u0eb7\u0eb9\u0005\u007f\u0000\u0000\u0eb8\u0eba\u0005\u0098\u0000\u0000"+ + "\u0eb9\u0eb8\u0001\u0000\u0000\u0000\u0eb9\u0eba\u0001\u0000\u0000\u0000"+ + "\u0eba\u0ebb\u0001\u0000\u0000\u0000\u0ebb\u0ebc\u0005\u0138\u0000\u0000"+ + "\u0ebc\u0ebd\u0005\u009e\u0000\u0000\u0ebd\u0ebe\u0003\u032a\u0195\u0000"+ + "\u0ebe\u0327\u0001\u0000\u0000\u0000\u0ebf\u0ec1\u0005\u007f\u0000\u0000"+ + "\u0ec0\u0ec2\u0005\u0098\u0000\u0000\u0ec1\u0ec0\u0001\u0000\u0000\u0000"+ + "\u0ec1\u0ec2\u0001\u0000\u0000\u0000\u0ec2\u0ec3\u0001\u0000\u0000\u0000"+ + "\u0ec3\u0ec4\u0005\u0119\u0000\u0000\u0ec4\u0ec5\u0005\u009e\u0000\u0000"+ + "\u0ec5\u0ec6\u0003\u032a\u0195\u0000\u0ec6\u0329\u0001\u0000\u0000\u0000"+ + "\u0ec7\u0ec8\u0003\u01ae\u00d7\u0000\u0ec8\u032b\u0001\u0000\u0000\u0000"+ + "\u0ec9\u0eca\u0005\u0017\u0000\u0000\u0eca\u0ecb\u0005\u0173\u0000\u0000"+ + "\u0ecb\u0ecc\u0003\u01ae\u00d7\u0000\u0ecc\u0ecd\u0005\u0169\u0000\u0000"+ + "\u0ecd\u0ed2\u0003\u01ae\u00d7\u0000\u0ece\u0ecf\u0005\u0169\u0000\u0000"+ + "\u0ecf\u0ed1\u0003\u01ae\u00d7\u0000\u0ed0\u0ece\u0001\u0000\u0000\u0000"+ + "\u0ed1\u0ed4\u0001\u0000\u0000\u0000\u0ed2\u0ed0\u0001\u0000\u0000\u0000"+ + "\u0ed2\u0ed3\u0001\u0000\u0000\u0000\u0ed3\u0ed5\u0001\u0000\u0000\u0000"+ + "\u0ed4\u0ed2\u0001\u0000\u0000\u0000\u0ed5\u0ed6\u0005\u017e\u0000\u0000"+ + "\u0ed6\u032d\u0001\u0000\u0000\u0000\u0ed7\u0ed8\u0005\u00b8\u0000\u0000"+ + "\u0ed8\u0ed9\u0005\u0173\u0000\u0000\u0ed9\u0eda\u0003\u01ae\u00d7\u0000"+ + "\u0eda\u0edb\u0005\u0169\u0000\u0000\u0edb\u0ee0\u0003\u01ae\u00d7\u0000"+ + "\u0edc\u0edd\u0005\u0169\u0000\u0000\u0edd\u0edf\u0003\u01ae\u00d7\u0000"+ + "\u0ede\u0edc\u0001\u0000\u0000\u0000\u0edf\u0ee2\u0001\u0000\u0000\u0000"+ + "\u0ee0\u0ede\u0001\u0000\u0000\u0000\u0ee0\u0ee1\u0001\u0000\u0000\u0000"+ + "\u0ee1\u0ee3\u0001\u0000\u0000\u0000\u0ee2\u0ee0\u0001\u0000\u0000\u0000"+ + "\u0ee3\u0ee4\u0005\u017e\u0000\u0000\u0ee4\u032f\u0001\u0000\u0000\u0000"+ + "\u0ee5\u0ee6\u0005\u00ad\u0000\u0000\u0ee6\u0ee7\u0005\u0173\u0000\u0000"+ + "\u0ee7\u0ee8\u0003\u01ae\u00d7\u0000\u0ee8\u0ee9\u0005\u0169\u0000\u0000"+ + "\u0ee9\u0eea\u0003\u043a\u021d\u0000\u0eea\u0eeb\u0005\u017e\u0000\u0000"+ + "\u0eeb\u0331\u0001\u0000\u0000\u0000\u0eec\u0eed\u0006\u0199\uffff\uffff"+ + "\u0000\u0eed\u0eee\u0007\u0015\u0000\u0000\u0eee\u0eff\u0003\u0332\u0199"+ + "\u000f\u0eef\u0ef0\u0005\u0098\u0000\u0000\u0ef0\u0eff\u0003\u0332\u0199"+ + "\u000b\u0ef1\u0eff\u0003\u0306\u0183\u0000\u0ef2\u0ef4\u0005\u0131\u0000"+ + "\u0000\u0ef3\u0ef2\u0001\u0000\u0000\u0000\u0ef3\u0ef4\u0001\u0000\u0000"+ + "\u0000\u0ef4\u0ef5\u0001\u0000\u0000\u0000\u0ef5\u0ef6\u0005\u0121\u0000"+ + "\u0000\u0ef6\u0eff\u0003X,\u0000\u0ef7\u0ef9\u0005\u0116\u0000\u0000\u0ef8"+ + "\u0ef7\u0001\u0000\u0000\u0000\u0ef8\u0ef9\u0001\u0000\u0000\u0000\u0ef9"+ + "\u0efa\u0001\u0000\u0000\u0000\u0efa\u0efb\u0005\u0139\u0000\u0000\u0efb"+ + "\u0eff\u0003\\.\u0000\u0efc\u0eff\u0003\u0334\u019a\u0000\u0efd\u0eff"+ + "\u0003\u034a\u01a5\u0000\u0efe\u0eec\u0001\u0000\u0000\u0000\u0efe\u0eef"+ + "\u0001\u0000\u0000\u0000\u0efe\u0ef1\u0001\u0000\u0000\u0000\u0efe\u0ef3"+ + "\u0001\u0000\u0000\u0000\u0efe\u0ef8\u0001\u0000\u0000\u0000\u0efe\u0efc"+ + "\u0001\u0000\u0000\u0000\u0efe\u0efd\u0001\u0000\u0000\u0000\u0eff\u0f1b"+ + "\u0001\u0000\u0000\u0000\u0f00\u0f01\n\u000e\u0000\u0000\u0f01\u0f02\u0007"+ + "\u0016\u0000\u0000\u0f02\u0f1a\u0003\u0332\u0199\u000f\u0f03\u0f04\n\r"+ + "\u0000\u0000\u0f04\u0f05\u0007\u0015\u0000\u0000\u0f05\u0f1a\u0003\u0332"+ + "\u0199\u000e\u0f06\u0f07\n\f\u0000\u0000\u0f07\u0f08\u0005\u014b\u0000"+ + "\u0000\u0f08\u0f1a\u0003\u0332\u0199\r\u0f09\u0f0a\n\t\u0000\u0000\u0f0a"+ + "\u0f0b\u0005\u0018\u0000\u0000\u0f0b\u0f1a\u0003\u0332\u0199\n\u0f0c\u0f0d"+ + "\n\b\u0000\u0000\u0f0d\u0f0e\u0007\u0017\u0000\u0000\u0f0e\u0f1a\u0003"+ + "\u0332\u0199\t\u0f0f\u0f10\n\n\u0000\u0000\u0f10\u0f12\u0005\u007f\u0000"+ + "\u0000\u0f11\u0f13\u0005\u0098\u0000\u0000\u0f12\u0f11\u0001\u0000\u0000"+ + "\u0000\u0f12\u0f13\u0001\u0000\u0000\u0000\u0f13\u0f14\u0001\u0000\u0000"+ + "\u0000\u0f14\u0f1a\u0003\u03b6\u01db\u0000\u0f15\u0f16\n\u0007\u0000\u0000"+ + "\u0f16\u0f1a\u0003\u0308\u0184\u0000\u0f17\u0f18\n\u0005\u0000\u0000\u0f18"+ + "\u0f1a\u0003\u0316\u018b\u0000\u0f19\u0f00\u0001\u0000\u0000\u0000\u0f19"+ + "\u0f03\u0001\u0000\u0000\u0000\u0f19\u0f06\u0001\u0000\u0000\u0000\u0f19"+ + "\u0f09\u0001\u0000\u0000\u0000\u0f19\u0f0c\u0001\u0000\u0000\u0000\u0f19"+ + "\u0f0f\u0001\u0000\u0000\u0000\u0f19\u0f15\u0001\u0000\u0000\u0000\u0f19"+ + "\u0f17\u0001\u0000\u0000\u0000\u0f1a\u0f1d\u0001\u0000\u0000\u0000\u0f1b"+ + "\u0f19\u0001\u0000\u0000\u0000\u0f1b\u0f1c\u0001\u0000\u0000\u0000\u0f1c"+ + "\u0333\u0001\u0000\u0000\u0000\u0f1d\u0f1b\u0001\u0000\u0000\u0000\u0f1e"+ + "\u0f25\u0003\u03ba\u01dd\u0000\u0f1f\u0f25\u0003\u0412\u0209\u0000\u0f20"+ + "\u0f25\u0003\u03fe\u01ff\u0000\u0f21\u0f25\u0003\u041a\u020d\u0000\u0f22"+ + "\u0f25\u0003\u0338\u019c\u0000\u0f23\u0f25\u0003\u03a0\u01d0\u0000\u0f24"+ + "\u0f1e\u0001\u0000\u0000\u0000\u0f24\u0f1f\u0001\u0000\u0000\u0000\u0f24"+ + "\u0f20\u0001\u0000\u0000\u0000\u0f24\u0f21\u0001\u0000\u0000\u0000\u0f24"+ + "\u0f22\u0001\u0000\u0000\u0000\u0f24\u0f23\u0001\u0000\u0000\u0000\u0f25"+ + "\u0335\u0001\u0000\u0000\u0000\u0f26\u0f27\u0003\u0332\u0199\u0000\u0f27"+ + "\u0337\u0001\u0000\u0000\u0000\u0f28\u0f2e\u0003\u033a\u019d\u0000\u0f29"+ + "\u0f2e\u0003\u033c\u019e\u0000\u0f2a\u0f2e\u0003\u033e\u019f\u0000\u0f2b"+ + "\u0f2e\u0003\u0340\u01a0\u0000\u0f2c\u0f2e\u0003\u0342\u01a1\u0000\u0f2d"+ + "\u0f28\u0001\u0000\u0000\u0000\u0f2d\u0f29\u0001\u0000\u0000\u0000\u0f2d"+ + "\u0f2a\u0001\u0000\u0000\u0000\u0f2d\u0f2b\u0001\u0000\u0000\u0000\u0f2d"+ + "\u0f2c\u0001\u0000\u0000\u0000\u0f2e\u0339\u0001\u0000\u0000\u0000\u0f2f"+ + "\u0f30\u0007\u0018\u0000\u0000\u0f30\u0f31\u0005\u0173\u0000\u0000\u0f31"+ + "\u0f32\u0003\u0332\u0199\u0000\u0f32\u0f33\u0005\u0169\u0000\u0000\u0f33"+ + "\u0f34\u0003\u03fa\u01fd\u0000\u0f34\u0f35\u0005\u017e\u0000\u0000\u0f35"+ + "\u033b\u0001\u0000\u0000\u0000\u0f36\u0f37\u0005\u00d2\u0000\u0000\u0f37"+ + "\u0f38\u0005\u0173\u0000\u0000\u0f38\u0f39\u0003\u03f0\u01f8\u0000\u0f39"+ + "\u0f3a\u0005\u017e\u0000\u0000\u0f3a\u033d\u0001\u0000\u0000\u0000\u0f3b"+ + "\u0f3c\u0007\u0019\u0000\u0000\u0f3c\u0f3d\u0005\u0173\u0000\u0000\u0f3d"+ + "\u0f3e\u0003\u0332\u0199\u0000\u0f3e\u0f3f\u0005\u017e\u0000\u0000\u0f3f"+ + "\u033f\u0001\u0000\u0000\u0000\u0f40\u0f41\u0007\u001a\u0000\u0000\u0f41"+ + "\u0f42\u0005\u0173\u0000\u0000\u0f42\u0f45\u0003\u0332\u0199\u0000\u0f43"+ + "\u0f44\u0005\u0169\u0000\u0000\u0f44\u0f46\u0003\u0332\u0199\u0000\u0f45"+ + "\u0f43\u0001\u0000\u0000\u0000\u0f45\u0f46\u0001\u0000\u0000\u0000\u0f46"+ + "\u0f47\u0001\u0000\u0000\u0000\u0f47\u0f48\u0005\u017e\u0000\u0000\u0f48"+ + "\u0341\u0001\u0000\u0000\u0000\u0f49\u0f4a\u0005\u0097\u0000\u0000\u0f4a"+ + "\u0f4b\u0005\u0173\u0000\u0000\u0f4b\u0f4e\u0003\u0332\u0199\u0000\u0f4c"+ + "\u0f4d\u0005\u0169\u0000\u0000\u0f4d\u0f4f\u0003\u03f8\u01fc\u0000\u0f4e"+ + "\u0f4c\u0001\u0000\u0000\u0000\u0f4e\u0f4f\u0001\u0000\u0000\u0000\u0f4f"+ + "\u0f50\u0001\u0000\u0000\u0000\u0f50\u0f51\u0005\u017e\u0000\u0000\u0f51"+ + "\u0343\u0001\u0000\u0000\u0000\u0f52\u0f53\u0003\u034a\u01a5\u0000\u0f53"+ + "\u0345\u0001\u0000\u0000\u0000\u0f54\u0f55\u0003\u034a\u01a5\u0000\u0f55"+ + "\u0347\u0001\u0000\u0000\u0000\u0f56\u0f57\u0003\u0332\u0199\u0000\u0f57"+ + "\u0349\u0001\u0000\u0000\u0000\u0f58\u0f59\u0006\u01a5\uffff\uffff\u0000"+ + "\u0f59\u0f64\u0003\u034c\u01a6\u0000\u0f5a\u0f64\u0003\u037e\u01bf\u0000"+ + "\u0f5b\u0f64\u0003\u0352\u01a9\u0000\u0f5c\u0f64\u0003\u0394\u01ca\u0000"+ + "\u0f5d\u0f64\u0003\u035c\u01ae\u0000\u0f5e\u0f64\u0003\u035e\u01af\u0000"+ + "\u0f5f\u0f64\u0003\u0378\u01bc\u0000\u0f60\u0f64\u0003\u038e\u01c7\u0000"+ + "\u0f61\u0f64\u0003\u035a\u01ad\u0000\u0f62\u0f64\u0003\u0390\u01c8\u0000"+ + "\u0f63\u0f58\u0001\u0000\u0000\u0000\u0f63\u0f5a\u0001\u0000\u0000\u0000"+ + "\u0f63\u0f5b\u0001\u0000\u0000\u0000\u0f63\u0f5c\u0001\u0000\u0000\u0000"+ + "\u0f63\u0f5d\u0001\u0000\u0000\u0000\u0f63\u0f5e\u0001\u0000\u0000\u0000"+ + "\u0f63\u0f5f\u0001\u0000\u0000\u0000\u0f63\u0f60\u0001\u0000\u0000\u0000"+ + "\u0f63\u0f61\u0001\u0000\u0000\u0000\u0f63\u0f62\u0001\u0000\u0000\u0000"+ + "\u0f64\u0f6a\u0001\u0000\u0000\u0000\u0f65\u0f66\n\u0007\u0000\u0000\u0f66"+ + "\u0f67\u0005\u0177\u0000\u0000\u0f67\u0f69\u0003\u043a\u021d\u0000\u0f68"+ + "\u0f65\u0001\u0000\u0000\u0000\u0f69\u0f6c\u0001\u0000\u0000\u0000\u0f6a"+ + "\u0f68\u0001\u0000\u0000\u0000\u0f6a\u0f6b\u0001\u0000\u0000\u0000\u0f6b"+ + "\u034b\u0001\u0000\u0000\u0000\u0f6c\u0f6a\u0001\u0000\u0000\u0000\u0f6d"+ + "\u0f6e\u0005\u0173\u0000\u0000\u0f6e\u0f6f\u0003\u0332\u0199\u0000\u0f6f"+ + "\u0f70\u0005\u017e\u0000\u0000\u0f70\u034d\u0001\u0000\u0000\u0000\u0f71"+ + "\u0f74\u0003\u0350\u01a8\u0000\u0f72\u0f74\u0003\u0390\u01c8\u0000\u0f73"+ + "\u0f71\u0001\u0000\u0000\u0000\u0f73\u0f72\u0001\u0000\u0000\u0000\u0f74"+ + "\u034f\u0001\u0000\u0000\u0000\u0f75\u0f82\u0003\u037e\u01bf\u0000\u0f76"+ + "\u0f82\u0003\u0352\u01a9\u0000\u0f77\u0f82\u0003\u0394\u01ca\u0000\u0f78"+ + "\u0f79\u0003\u034a\u01a5\u0000\u0f79\u0f7a\u0005\u0177\u0000\u0000\u0f7a"+ + "\u0f7b\u0003\u043a\u021d\u0000\u0f7b\u0f82\u0001\u0000\u0000\u0000\u0f7c"+ + "\u0f82\u0003\u035c\u01ae\u0000\u0f7d\u0f82\u0003\u035e\u01af\u0000\u0f7e"+ + "\u0f82\u0003\u0378\u01bc\u0000\u0f7f\u0f82\u0003\u038e\u01c7\u0000\u0f80"+ + "\u0f82\u0003\u035a\u01ad\u0000\u0f81\u0f75\u0001\u0000\u0000\u0000\u0f81"+ + "\u0f76\u0001\u0000\u0000\u0000\u0f81\u0f77\u0001\u0000\u0000\u0000\u0f81"+ + "\u0f78\u0001\u0000\u0000\u0000\u0f81\u0f7c\u0001\u0000\u0000\u0000\u0f81"+ + "\u0f7d\u0001\u0000\u0000\u0000\u0f81\u0f7e\u0001\u0000\u0000\u0000\u0f81"+ + "\u0f7f\u0001\u0000\u0000\u0000\u0f81\u0f80\u0001\u0000\u0000\u0000\u0f82"+ + "\u0351\u0001\u0000\u0000\u0000\u0f83\u0f86\u0003\u0446\u0223\u0000\u0f84"+ + "\u0f86\u0003\u0356\u01ab\u0000\u0f85\u0f83\u0001\u0000\u0000\u0000\u0f85"+ + "\u0f84\u0001\u0000\u0000\u0000\u0f86\u0353\u0001\u0000\u0000\u0000\u0f87"+ + "\u0f8a\u0003\u0464\u0232\u0000\u0f88\u0f8a\u0003\u0358\u01ac\u0000\u0f89"+ + "\u0f87\u0001\u0000\u0000\u0000\u0f89\u0f88\u0001\u0000\u0000\u0000\u0f8a"+ + "\u0355\u0001\u0000\u0000\u0000\u0f8b\u0f8e\u0003\u0358\u01ac\u0000\u0f8c"+ + "\u0f8e\u0005\u00bd\u0000\u0000\u0f8d\u0f8b\u0001\u0000\u0000\u0000\u0f8d"+ + "\u0f8c\u0001\u0000\u0000\u0000\u0f8e\u0357\u0001\u0000\u0000\u0000\u0f8f"+ + "\u0f90\u0005\u0147\u0000\u0000\u0f90\u0359\u0001\u0000\u0000\u0000\u0f91"+ + "\u0f92\u0005\u0082\u0000\u0000\u0f92\u0f93\u0003\u00e2q\u0000\u0f93\u0f94"+ + "\u0005m\u0000\u0000\u0f94\u0f95\u0003\u0332\u0199\u0000\u0f95\u0f96\u0005"+ + "W\u0000\u0000\u0f96\u035b\u0001\u0000\u0000\u0000\u0f97\u0f98\u0005\u00e1"+ + "\u0000\u0000\u0f98\u0f99\u00038\u001c\u0000\u0f99\u035d\u0001\u0000\u0000"+ + "\u0000\u0f9a\u0f9d\u0003\u0360\u01b0\u0000\u0f9b\u0f9d\u0003\u0362\u01b1"+ + "\u0000\u0f9c\u0f9a\u0001\u0000\u0000\u0000\u0f9c\u0f9b\u0001\u0000\u0000"+ + "\u0000\u0f9d\u035f\u0001\u0000\u0000\u0000\u0f9e\u0f9f\u0005\u009c\u0000"+ + "\u0000\u0f9f\u0fa0\u0005\u0173\u0000\u0000\u0fa0\u0fa1\u0003\u0332\u0199"+ + "\u0000\u0fa1\u0fa2\u0005\u0169\u0000\u0000\u0fa2\u0fa3\u0003\u0332\u0199"+ + "\u0000\u0fa3\u0fa4\u0005\u017e\u0000\u0000\u0fa4\u0fb1\u0001\u0000\u0000"+ + "\u0000\u0fa5\u0fa6\u00057\u0000\u0000\u0fa6\u0fa7\u0005\u0173\u0000\u0000"+ + "\u0fa7\u0faa\u0003\u0332\u0199\u0000\u0fa8\u0fa9\u0005\u0169\u0000\u0000"+ + "\u0fa9\u0fab\u0003\u0332\u0199\u0000\u0faa\u0fa8\u0001\u0000\u0000\u0000"+ + "\u0fab\u0fac\u0001\u0000\u0000\u0000\u0fac\u0faa\u0001\u0000\u0000\u0000"+ + "\u0fac\u0fad\u0001\u0000\u0000\u0000\u0fad\u0fae\u0001\u0000\u0000\u0000"+ + "\u0fae\u0faf\u0005\u017e\u0000\u0000\u0faf\u0fb1\u0001\u0000\u0000\u0000"+ + "\u0fb0\u0f9e\u0001\u0000\u0000\u0000\u0fb0\u0fa5\u0001\u0000\u0000\u0000"+ + "\u0fb1\u0361\u0001\u0000\u0000\u0000\u0fb2\u0fb5\u0003\u0364\u01b2\u0000"+ + "\u0fb3\u0fb5\u0003\u0366\u01b3\u0000\u0fb4\u0fb2\u0001\u0000\u0000\u0000"+ + "\u0fb4\u0fb3\u0001\u0000\u0000\u0000\u0fb5\u0363\u0001\u0000\u0000\u0000"+ + "\u0fb6\u0fb7\u0005.\u0000\u0000\u0fb7\u0fb9\u0003\u036e\u01b7\u0000\u0fb8"+ + "\u0fba\u0003\u0368\u01b4\u0000\u0fb9\u0fb8\u0001\u0000\u0000\u0000\u0fba"+ + "\u0fbb\u0001\u0000\u0000\u0000\u0fbb\u0fb9\u0001\u0000\u0000\u0000\u0fbb"+ + "\u0fbc\u0001\u0000\u0000\u0000\u0fbc\u0fbe\u0001\u0000\u0000\u0000\u0fbd"+ + "\u0fbf\u0003\u036c\u01b6\u0000\u0fbe\u0fbd\u0001\u0000\u0000\u0000\u0fbe"+ + "\u0fbf\u0001\u0000\u0000\u0000\u0fbf\u0fc0\u0001\u0000\u0000\u0000\u0fc0"+ + "\u0fc1\u0005W\u0000\u0000\u0fc1\u0365\u0001\u0000\u0000\u0000\u0fc2\u0fc4"+ + "\u0005.\u0000\u0000\u0fc3\u0fc5\u0003\u036a\u01b5\u0000\u0fc4\u0fc3\u0001"+ + "\u0000\u0000\u0000\u0fc5\u0fc6\u0001\u0000\u0000\u0000\u0fc6\u0fc4\u0001"+ + "\u0000\u0000\u0000\u0fc6\u0fc7\u0001\u0000\u0000\u0000\u0fc7\u0fc9\u0001"+ + "\u0000\u0000\u0000\u0fc8\u0fca\u0003\u036c\u01b6\u0000\u0fc9\u0fc8\u0001"+ + "\u0000\u0000\u0000\u0fc9\u0fca\u0001\u0000\u0000\u0000\u0fca\u0fcb\u0001"+ + "\u0000\u0000\u0000\u0fcb\u0fcc\u0005W\u0000\u0000\u0fcc\u0367\u0001\u0000"+ + "\u0000\u0000\u0fcd\u0fce\u0005\u00e5\u0000\u0000\u0fce\u0fcf\u0003\u0370"+ + "\u01b8\u0000\u0fcf\u0fd0\u0005\u00ce\u0000\u0000\u0fd0\u0fd1\u0003\u0374"+ + "\u01ba\u0000\u0fd1\u0369\u0001\u0000\u0000\u0000\u0fd2\u0fd3\u0005\u00e5"+ + "\u0000\u0000\u0fd3\u0fd4\u0003\u0304\u0182\u0000\u0fd4\u0fd5\u0005\u00ce"+ + "\u0000\u0000\u0fd5\u0fd6\u0003\u0374\u01ba\u0000\u0fd6\u036b\u0001\u0000"+ + "\u0000\u0000\u0fd7\u0fd8\u0005V\u0000\u0000\u0fd8\u0fd9\u0003\u0374\u01ba"+ + "\u0000\u0fd9\u036d\u0001\u0000\u0000\u0000\u0fda\u0fdd\u0003\u034e\u01a7"+ + "\u0000\u0fdb\u0fdd\u0003\u01ae\u00d7\u0000\u0fdc\u0fda\u0001\u0000\u0000"+ + "\u0000\u0fdc\u0fdb\u0001\u0000\u0000\u0000\u0fdd\u036f\u0001\u0000\u0000"+ + "\u0000\u0fde\u0fe3\u0003\u0372\u01b9\u0000\u0fdf\u0fe0\u0005\u0169\u0000"+ + "\u0000\u0fe0\u0fe2\u0003\u0372\u01b9\u0000\u0fe1\u0fdf\u0001\u0000\u0000"+ + "\u0000\u0fe2\u0fe5\u0001\u0000\u0000\u0000\u0fe3\u0fe1\u0001\u0000\u0000"+ + "\u0000\u0fe3\u0fe4\u0001\u0000\u0000\u0000\u0fe4\u0371\u0001\u0000\u0000"+ + "\u0000\u0fe5\u0fe3\u0001\u0000\u0000\u0000\u0fe6\u0ff0\u0003\u034e\u01a7"+ + "\u0000\u0fe7\u0ff0\u0003\u0308\u0184\u0000\u0fe8\u0ff0\u0003\u0310\u0188"+ + "\u0000\u0fe9\u0ff0\u0003\u0314\u018a\u0000\u0fea\u0ff0\u0003\u0316\u018b"+ + "\u0000\u0feb\u0ff0\u0003\u031a\u018d\u0000\u0fec\u0ff0\u0003\u031e\u018f"+ + "\u0000\u0fed\u0ff0\u0003\u0326\u0193\u0000\u0fee\u0ff0\u0003\u0328\u0194"+ + "\u0000\u0fef\u0fe6\u0001\u0000\u0000\u0000\u0fef\u0fe7\u0001\u0000\u0000"+ + "\u0000\u0fef\u0fe8\u0001\u0000\u0000\u0000\u0fef\u0fe9\u0001\u0000\u0000"+ + "\u0000\u0fef\u0fea\u0001\u0000\u0000\u0000\u0fef\u0feb\u0001\u0000\u0000"+ + "\u0000\u0fef\u0fec\u0001\u0000\u0000\u0000\u0fef\u0fed\u0001\u0000\u0000"+ + "\u0000\u0fef\u0fee\u0001\u0000\u0000\u0000\u0ff0\u0373\u0001\u0000\u0000"+ + "\u0000\u0ff1\u0ff4\u0003\u0376\u01bb\u0000\u0ff2\u0ff4\u0003\u0468\u0234"+ + "\u0000\u0ff3\u0ff1\u0001\u0000\u0000\u0000\u0ff3\u0ff2\u0001\u0000\u0000"+ + "\u0000\u0ff4\u0375\u0001\u0000\u0000\u0000\u0ff5\u0ff6\u0003\u0332\u0199"+ + "\u0000\u0ff6\u0377\u0001\u0000\u0000\u0000\u0ff7\u0ff8\u0005/\u0000\u0000"+ + "\u0ff8\u0ff9\u0005\u0173\u0000\u0000\u0ff9\u0ffa\u0003\u037a\u01bd\u0000"+ + "\u0ffa\u0ffb\u0005\u001b\u0000\u0000\u0ffb\u0ffc\u0003\u037c\u01be\u0000"+ + "\u0ffc\u0ffd\u0005\u017e\u0000\u0000\u0ffd\u0379\u0001\u0000\u0000\u0000"+ + "\u0ffe\u1001\u0003\u0332\u0199\u0000\u0fff\u1001\u0003\u0468\u0234\u0000"+ + "\u1000\u0ffe\u0001\u0000\u0000\u0000\u1000\u0fff\u0001\u0000\u0000\u0000"+ + "\u1001\u037b\u0001\u0000\u0000\u0000\u1002\u1003\u0003\u02a0\u0150\u0000"+ + "\u1003\u037d\u0001\u0000\u0000\u0000\u1004\u1005\u0005>\u0000\u0000\u1005"+ + "\u1006\u0005\u0173\u0000\u0000\u1006\u1007\u0005\u0167\u0000\u0000\u1007"+ + "\u100b\u0005\u017e\u0000\u0000\u1008\u100b\u0003\u0380\u01c0\u0000\u1009"+ + "\u100b\u0003\u0382\u01c1\u0000\u100a\u1004\u0001\u0000\u0000\u0000\u100a"+ + "\u1008\u0001\u0000\u0000\u0000\u100a\u1009\u0001\u0000\u0000\u0000\u100b"+ + "\u037f\u0001\u0000\u0000\u0000\u100c\u100d\u0003\u0384\u01c2\u0000\u100d"+ + "\u100f\u0005\u0173\u0000\u0000\u100e\u1010\u0003\u0386\u01c3\u0000\u100f"+ + "\u100e\u0001\u0000\u0000\u0000\u100f\u1010\u0001\u0000\u0000\u0000\u1010"+ + "\u1011\u0001\u0000\u0000\u0000\u1011\u1012\u0003\u0332\u0199\u0000\u1012"+ + "\u1013\u0005\u017e\u0000\u0000\u1013\u0381\u0001\u0000\u0000\u0000\u1014"+ + "\u1015\u0003\u0388\u01c4\u0000\u1015\u1016\u0005\u0173\u0000\u0000\u1016"+ + "\u1017\u0003\u038a\u01c5\u0000\u1017\u1018\u0005\u0169\u0000\u0000\u1018"+ + "\u1019\u0003\u038c\u01c6\u0000\u1019\u101a\u0005\u017e\u0000\u0000\u101a"+ + "\u0383\u0001\u0000\u0000\u0000\u101b\u101c\u0007\u001b\u0000\u0000\u101c"+ + "\u0385\u0001\u0000\u0000\u0000\u101d\u101e\u0007\u001c\u0000\u0000\u101e"+ + "\u0387\u0001\u0000\u0000\u0000\u101f\u1020\u0007\u001d\u0000\u0000\u1020"+ + "\u0389\u0001\u0000\u0000\u0000\u1021\u1023\u0003\u0386\u01c3\u0000\u1022"+ + "\u1021\u0001\u0000\u0000\u0000\u1022\u1023\u0001\u0000\u0000\u0000\u1023"+ + "\u1024\u0001\u0000\u0000\u0000\u1024\u1025\u0003\u03b8\u01dc\u0000\u1025"+ + "\u038b\u0001\u0000\u0000\u0000\u1026\u1027\u0003\u03b8\u01dc\u0000\u1027"+ + "\u038d\u0001\u0000\u0000\u0000\u1028\u1029\u0005U\u0000\u0000\u1029\u102a"+ + "\u0005\u0173\u0000\u0000\u102a\u102b\u0003\u01ae\u00d7\u0000\u102b\u102c"+ + "\u0005\u017e\u0000\u0000\u102c\u038f\u0001\u0000\u0000\u0000\u102d\u102e"+ + "\u0003\u0444\u0222\u0000\u102e\u0391\u0001\u0000\u0000\u0000\u102f\u1030"+ + "\u0003\u0332\u0199\u0000\u1030\u0393\u0001\u0000\u0000\u0000\u1031\u1032"+ + "\u0003\u0396\u01cb\u0000\u1032\u0395\u0001\u0000\u0000\u0000\u1033\u1034"+ + "\u0005\u00a6\u0000\u0000\u1034\u1035\u0005\u0172\u0000\u0000\u1035\u1036"+ + "\u0003\u0398\u01cc\u0000\u1036\u1037\u0005\u017d\u0000\u0000\u1037\u0397"+ + "\u0001\u0000\u0000\u0000\u1038\u103c\u0003\u039a\u01cd\u0000\u1039\u103b"+ + "\u0003\u039c\u01ce\u0000\u103a\u1039\u0001\u0000\u0000\u0000\u103b\u103e"+ + "\u0001\u0000\u0000\u0000\u103c\u103a\u0001\u0000\u0000\u0000\u103c\u103d"+ + "\u0001\u0000\u0000\u0000\u103d\u0399\u0001\u0000\u0000\u0000\u103e\u103c"+ + "\u0001\u0000\u0000\u0000\u103f\u1040\u0003\u0344\u01a2\u0000\u1040\u039b"+ + "\u0001\u0000\u0000\u0000\u1041\u1042\u0005\u0169\u0000\u0000\u1042\u1043"+ + "\u0003\u0346\u01a3\u0000\u1043\u1044\u0005\u0169\u0000\u0000\u1044\u1045"+ + "\u0003\u0344\u01a2\u0000\u1045\u039d\u0001\u0000\u0000\u0000\u1046\u1047"+ + "\u0003\u0332\u0199\u0000\u1047\u039f\u0001\u0000\u0000\u0000\u1048\u104b"+ + "\u0003\u03a2\u01d1\u0000\u1049\u104b\u0003\u03a4\u01d2\u0000\u104a\u1048"+ + "\u0001\u0000\u0000\u0000\u104a\u1049\u0001\u0000\u0000\u0000\u104b\u03a1"+ + "\u0001\u0000\u0000\u0000\u104c\u104d\u0005\u00d2\u0000\u0000\u104d\u104e"+ + "\u0005\u0173\u0000\u0000\u104e\u104f\u0003\u039e\u01cf\u0000\u104f\u1050"+ + "\u0005\u0169\u0000\u0000\u1050\u1051\u0003\u03b8\u01dc\u0000\u1051\u1052"+ + "\u0005\u017e\u0000\u0000\u1052\u03a3\u0001\u0000\u0000\u0000\u1053\u1054"+ + "\u0005\u011f\u0000\u0000\u1054\u1055\u0005\u0173\u0000\u0000\u1055\u1056"+ + "\u0003\u0392\u01c9\u0000\u1056\u1057\u0005\u017e\u0000\u0000\u1057\u03a5"+ + "\u0001\u0000\u0000\u0000\u1058\u1059\u0003\u03a8\u01d4\u0000\u1059\u03a7"+ + "\u0001\u0000\u0000\u0000\u105a\u105c\u0003\u02f6\u017b\u0000\u105b\u105a"+ + "\u0001\u0000\u0000\u0000\u105b\u105c\u0001\u0000\u0000\u0000\u105c\u105d"+ + "\u0001\u0000\u0000\u0000\u105d\u105f\u0005\u0172\u0000\u0000\u105e\u1060"+ + "\u0003\u03aa\u01d5\u0000\u105f\u105e\u0001\u0000\u0000\u0000\u105f\u1060"+ + "\u0001\u0000\u0000\u0000\u1060\u1061\u0001\u0000\u0000\u0000\u1061\u1062"+ + "\u0005\u017d\u0000\u0000\u1062\u03a9\u0001\u0000\u0000\u0000\u1063\u1068"+ + "\u0003\u03ac\u01d6\u0000\u1064\u1065\u0005\u0169\u0000\u0000\u1065\u1067"+ + "\u0003\u03ac\u01d6\u0000\u1066\u1064\u0001\u0000\u0000\u0000\u1067\u106a"+ + "\u0001\u0000\u0000\u0000\u1068\u1066\u0001\u0000\u0000\u0000\u1068\u1069"+ + "\u0001\u0000\u0000\u0000\u1069\u03ab\u0001\u0000\u0000\u0000\u106a\u1068"+ + "\u0001\u0000\u0000\u0000\u106b\u106c\u0003\u0332\u0199\u0000\u106c\u03ad"+ + "\u0001\u0000\u0000\u0000\u106d\u106f\u0005\u00b0\u0000\u0000\u106e\u106d"+ + "\u0001\u0000\u0000\u0000\u106e\u106f\u0001\u0000\u0000\u0000\u106f\u1070"+ + "\u0001\u0000\u0000\u0000\u1070\u1071\u0003\u03b0\u01d8\u0000\u1071\u03af"+ + "\u0001\u0000\u0000\u0000\u1072\u1074\u0005\u0171\u0000\u0000\u1073\u1075"+ + "\u0003\u03b2\u01d9\u0000\u1074\u1073\u0001\u0000\u0000\u0000\u1074\u1075"+ + "\u0001\u0000\u0000\u0000\u1075\u1076\u0001\u0000\u0000\u0000\u1076\u1077"+ + "\u0005\u017c\u0000\u0000\u1077\u03b1\u0001\u0000\u0000\u0000\u1078\u107d"+ + "\u0003\u03b4\u01da\u0000\u1079\u107a\u0005\u0169\u0000\u0000\u107a\u107c"+ + "\u0003\u03b4\u01da\u0000\u107b\u1079\u0001\u0000\u0000\u0000\u107c\u107f"+ + "\u0001\u0000\u0000\u0000\u107d\u107b\u0001\u0000\u0000\u0000\u107d\u107e"+ + "\u0001\u0000\u0000\u0000\u107e\u03b3\u0001\u0000\u0000\u0000\u107f\u107d"+ + "\u0001\u0000\u0000\u0000\u1080\u1081\u0003\u043c\u021e\u0000\u1081\u1082"+ + "\u0005\u0168\u0000\u0000\u1082\u1083\u0003\u0332\u0199\u0000\u1083\u03b5"+ + "\u0001\u0000\u0000\u0000\u1084\u1085\u0005\u0002\u0000\u0000\u1085\u03b7"+ + "\u0001\u0000\u0000\u0000\u1086\u1087\u0006\u01dc\uffff\uffff\u0000\u1087"+ + "\u1088\u0007\u0015\u0000\u0000\u1088\u108c\u0003\u03b8\u01dc\u0005\u1089"+ + "\u108c\u0003\u034a\u01a5\u0000\u108a\u108c\u0003\u03ba\u01dd\u0000\u108b"+ + "\u1086\u0001\u0000\u0000\u0000\u108b\u1089\u0001\u0000\u0000\u0000\u108b"+ + "\u108a\u0001\u0000\u0000\u0000\u108c\u1095\u0001\u0000\u0000\u0000\u108d"+ + "\u108e\n\u0004\u0000\u0000\u108e\u108f\u0007\u0016\u0000\u0000\u108f\u1094"+ + "\u0003\u03b8\u01dc\u0005\u1090\u1091\n\u0003\u0000\u0000\u1091\u1092\u0007"+ + "\u0015\u0000\u0000\u1092\u1094\u0003\u03b8\u01dc\u0004\u1093\u108d\u0001"+ + "\u0000\u0000\u0000\u1093\u1090\u0001\u0000\u0000\u0000\u1094\u1097\u0001"+ + "\u0000\u0000\u0000\u1095\u1093\u0001\u0000\u0000\u0000\u1095\u1096\u0001"+ + "\u0000\u0000\u0000\u1096\u03b9\u0001\u0000\u0000\u0000\u1097\u1095\u0001"+ + "\u0000\u0000\u0000\u1098\u10a6\u0003\u03bc\u01de\u0000\u1099\u10a6\u0003"+ + "\u03be\u01df\u0000\u109a\u10a6\u0003\u03c8\u01e4\u0000\u109b\u10a6\u0003"+ + "\u03ca\u01e5\u0000\u109c\u10a6\u0003\u03d0\u01e8\u0000\u109d\u10a6\u0003"+ + "\u03d4\u01ea\u0000\u109e\u10a6\u0003\u03da\u01ed\u0000\u109f\u10a6\u0003"+ + "\u03dc\u01ee\u0000\u10a0\u10a6\u0003\u03de\u01ef\u0000\u10a1\u10a6\u0003"+ + "\u03e0\u01f0\u0000\u10a2\u10a6\u0003\u03e6\u01f3\u0000\u10a3\u10a6\u0003"+ + "\u03e8\u01f4\u0000\u10a4\u10a6\u0003\u03ea\u01f5\u0000\u10a5\u1098\u0001"+ + "\u0000\u0000\u0000\u10a5\u1099\u0001\u0000\u0000\u0000\u10a5\u109a\u0001"+ + "\u0000\u0000\u0000\u10a5\u109b\u0001\u0000\u0000\u0000\u10a5\u109c\u0001"+ + "\u0000\u0000\u0000\u10a5\u109d\u0001\u0000\u0000\u0000\u10a5\u109e\u0001"+ + "\u0000\u0000\u0000\u10a5\u109f\u0001\u0000\u0000\u0000\u10a5\u10a0\u0001"+ + "\u0000\u0000\u0000\u10a5\u10a1\u0001\u0000\u0000\u0000\u10a5\u10a2\u0001"+ + "\u0000\u0000\u0000\u10a5\u10a3\u0001\u0000\u0000\u0000\u10a5\u10a4\u0001"+ + "\u0000\u0000\u0000\u10a6\u03bb\u0001\u0000\u0000\u0000\u10a7\u10ab\u0003"+ + "\u03c2\u01e1\u0000\u10a8\u10ab\u0003\u03c4\u01e2\u0000\u10a9\u10ab\u0003"+ + "\u03c6\u01e3\u0000\u10aa\u10a7\u0001\u0000\u0000\u0000\u10aa\u10a8\u0001"+ + "\u0000\u0000\u0000\u10aa\u10a9\u0001\u0000\u0000\u0000\u10ab\u03bd\u0001"+ + "\u0000\u0000\u0000\u10ac\u10ad\u0005-\u0000\u0000\u10ad\u10ae\u0005\u0173"+ + "\u0000\u0000\u10ae\u10af\u0003\u03c0\u01e0\u0000\u10af\u10b0\u0005\u017e"+ + "\u0000\u0000\u10b0\u10b7\u0001\u0000\u0000\u0000\u10b1\u10b2\u0005\u00c2"+ + "\u0000\u0000\u10b2\u10b3\u0005\u0173\u0000\u0000\u10b3\u10b4\u0003\u039e"+ + "\u01cf\u0000\u10b4\u10b5\u0005\u017e\u0000\u0000\u10b5\u10b7\u0001\u0000"+ + "\u0000\u0000\u10b6\u10ac\u0001\u0000\u0000\u0000\u10b6\u10b1\u0001\u0000"+ + "\u0000\u0000\u10b7\u03bf\u0001\u0000\u0000\u0000\u10b8\u10b9\u0003\u0332"+ + "\u0199\u0000\u10b9\u03c1\u0001\u0000\u0000\u0000\u10ba\u10bb\u0007\u001e"+ + "\u0000\u0000\u10bb\u10bc\u0005\u0173\u0000\u0000\u10bc\u10bd\u0003\u03ec"+ + "\u01f6\u0000\u10bd\u10be\u0005\u017e\u0000\u0000\u10be\u03c3\u0001\u0000"+ + "\u0000\u0000\u10bf\u10c0\u0007\u001f\u0000\u0000\u10c0\u10c1\u0005\u0173"+ + "\u0000\u0000\u10c1\u10c2\u0003\u03ee\u01f7\u0000\u10c2\u10c3\u0005\u017e"+ + "\u0000\u0000\u10c3\u03c5\u0001\u0000\u0000\u0000\u10c4\u10c5\u0005\u00a7"+ + "\u0000\u0000\u10c5\u10c6\u0005\u0173\u0000\u0000\u10c6\u10c7\u0003\u0392"+ + "\u01c9\u0000\u10c7\u10c8\u0005\u017e\u0000\u0000\u10c8\u03c7\u0001\u0000"+ + "\u0000\u0000\u10c9\u10ca\u0005\u0014\u0000\u0000\u10ca\u10cb\u0005\u0173"+ + "\u0000\u0000\u10cb\u10cc\u0003\u0332\u0199\u0000\u10cc\u10cd\u0005\u017e"+ + "\u0000\u0000\u10cd\u03c9\u0001\u0000\u0000\u0000\u10ce\u10cf\u0005\u0093"+ + "\u0000\u0000\u10cf\u10d0\u0005\u0173\u0000\u0000\u10d0\u10d1\u0003\u03cc"+ + "\u01e6\u0000\u10d1\u10d2\u0005\u0169\u0000\u0000\u10d2\u10d3\u0003\u03ce"+ + "\u01e7\u0000\u10d3\u10d4\u0005\u017e\u0000\u0000\u10d4\u03cb\u0001\u0000"+ + "\u0000\u0000\u10d5\u10d6\u0003\u03b8\u01dc\u0000\u10d6\u03cd\u0001\u0000"+ + "\u0000\u0000\u10d7\u10d8\u0003\u03b8\u01dc\u0000\u10d8\u03cf\u0001\u0000"+ + "\u0000\u0000\u10d9\u10da\u0003\u03d2\u01e9\u0000\u10da\u10db\u0005\u0173"+ + "\u0000\u0000\u10db\u10dc\u0003\u03b8\u01dc\u0000\u10dc\u10dd\u0005\u017e"+ + "\u0000\u0000\u10dd\u03d1\u0001\u0000\u0000\u0000\u10de\u10df\u0007 \u0000"+ + "\u0000\u10df\u03d3\u0001\u0000\u0000\u0000\u10e0\u10e1\u0005\u008b\u0000"+ + "\u0000\u10e1\u10e2\u0005\u0173\u0000\u0000\u10e2\u10e3\u0003\u03d6\u01eb"+ + "\u0000\u10e3\u10e4\u0005\u0169\u0000\u0000\u10e4\u10e5\u0003\u03d8\u01ec"+ + "\u0000\u10e5\u10e6\u0005\u017e\u0000\u0000\u10e6\u03d5\u0001\u0000\u0000"+ + "\u0000\u10e7\u10e8\u0003\u03b8\u01dc\u0000\u10e8\u03d7\u0001\u0000\u0000"+ + "\u0000\u10e9\u10ea\u0003\u03b8\u01dc\u0000\u10ea\u03d9\u0001\u0000\u0000"+ + "\u0000\u10eb\u10ec\u0005\u008c\u0000\u0000\u10ec\u10ed\u0005\u0173\u0000"+ + "\u0000\u10ed\u10ee\u0003\u03b8\u01dc\u0000\u10ee\u10ef\u0005\u017e\u0000"+ + "\u0000\u10ef\u03db\u0001\u0000\u0000\u0000\u10f0\u10f1\u0005\u0086\u0000"+ + "\u0000\u10f1\u10f2\u0005\u0173\u0000\u0000\u10f2\u10f3\u0003\u03b8\u01dc"+ + "\u0000\u10f3\u10f4\u0005\u017e\u0000\u0000\u10f4\u03dd\u0001\u0000\u0000"+ + "\u0000\u10f5\u10f6\u0005Z\u0000\u0000\u10f6\u10f7\u0005\u0173\u0000\u0000"+ + "\u10f7\u10f8\u0003\u03b8\u01dc\u0000\u10f8\u10f9\u0005\u017e\u0000\u0000"+ + "\u10f9\u03df\u0001\u0000\u0000\u0000\u10fa\u10fb\u0005\u00ab\u0000\u0000"+ + "\u10fb\u10fc\u0005\u0173\u0000\u0000\u10fc\u10fd\u0003\u03e2\u01f1\u0000"+ + "\u10fd\u10fe\u0005\u0169\u0000\u0000\u10fe\u10ff\u0003\u03e4\u01f2\u0000"+ + "\u10ff\u1100\u0005\u017e\u0000\u0000\u1100\u03e1\u0001\u0000\u0000\u0000"+ + "\u1101\u1102\u0003\u03b8\u01dc\u0000\u1102\u03e3\u0001\u0000\u0000\u0000"+ + "\u1103\u1104\u0003\u03b8\u01dc\u0000\u1104\u03e5\u0001\u0000\u0000\u0000"+ + "\u1105\u1106\u0005\u00c6\u0000\u0000\u1106\u1107\u0005\u0173\u0000\u0000"+ + "\u1107\u1108\u0003\u03b8\u01dc\u0000\u1108\u1109\u0005\u017e\u0000\u0000"+ + "\u1109\u03e7\u0001\u0000\u0000\u0000\u110a\u110b\u0005c\u0000\u0000\u110b"+ + "\u110c\u0005\u0173\u0000\u0000\u110c\u110d\u0003\u03b8\u01dc\u0000\u110d"+ + "\u110e\u0005\u017e\u0000\u0000\u110e\u03e9\u0001\u0000\u0000\u0000\u110f"+ + "\u1110\u0007!\u0000\u0000\u1110\u1111\u0005\u0173\u0000\u0000\u1111\u1112"+ + "\u0003\u03b8\u01dc\u0000\u1112\u1113\u0005\u017e\u0000\u0000\u1113\u03eb"+ + "\u0001\u0000\u0000\u0000\u1114\u1115\u0003\u0332\u0199\u0000\u1115\u03ed"+ + "\u0001\u0000\u0000\u0000\u1116\u1117\u0003\u0332\u0199\u0000\u1117\u03ef"+ + "\u0001\u0000\u0000\u0000\u1118\u111a\u0003\u03f4\u01fa\u0000\u1119\u1118"+ + "\u0001\u0000\u0000\u0000\u1119\u111a\u0001\u0000\u0000\u0000\u111a\u111c"+ + "\u0001\u0000\u0000\u0000\u111b\u111d\u0003\u03f6\u01fb\u0000\u111c\u111b"+ + "\u0001\u0000\u0000\u0000\u111c\u111d\u0001\u0000\u0000\u0000\u111d\u111e"+ + "\u0001\u0000\u0000\u0000\u111e\u1120\u0005e\u0000\u0000\u111f\u1119\u0001"+ + "\u0000\u0000\u0000\u111f\u1120\u0001\u0000\u0000\u0000\u1120\u1121\u0001"+ + "\u0000\u0000\u0000\u1121\u1122\u0003\u03f2\u01f9\u0000\u1122\u03f1\u0001"+ + "\u0000\u0000\u0000\u1123\u1124\u0003\u0332\u0199\u0000\u1124\u03f3\u0001"+ + "\u0000\u0000\u0000\u1125\u1126\u0007\"\u0000\u0000\u1126\u03f5\u0001\u0000"+ + "\u0000\u0000\u1127\u1128\u0003\u0332\u0199\u0000\u1128\u03f7\u0001\u0000"+ + "\u0000\u0000\u1129\u112a\u0007#\u0000\u0000\u112a\u03f9\u0001\u0000\u0000"+ + "\u0000\u112b\u112c\u0003\u03b8\u01dc\u0000\u112c\u03fb\u0001\u0000\u0000"+ + "\u0000\u112d\u112e\u0003\u0332\u0199\u0000\u112e\u03fd\u0001\u0000\u0000"+ + "\u0000\u112f\u1135\u0003\u0400\u0200\u0000\u1130\u1135\u0003\u0402\u0201"+ + "\u0000\u1131\u1135\u0003\u0406\u0203\u0000\u1132\u1135\u0003\u0404\u0202"+ + "\u0000\u1133\u1135\u0003\u0408\u0204\u0000\u1134\u112f\u0001\u0000\u0000"+ + "\u0000\u1134\u1130\u0001\u0000\u0000\u0000\u1134\u1131\u0001\u0000\u0000"+ + "\u0000\u1134\u1132\u0001\u0000\u0000\u0000\u1134\u1133\u0001\u0000\u0000"+ + "\u0000\u1135\u03ff\u0001\u0000\u0000\u0000\u1136\u113e\u0005@\u0000\u0000"+ + "\u1137\u1138\u0005F\u0000\u0000\u1138\u113a\u0005\u0173\u0000\u0000\u1139"+ + "\u113b\u0003\u040a\u0205\u0000\u113a\u1139\u0001\u0000\u0000\u0000\u113a"+ + "\u113b\u0001\u0000\u0000\u0000\u113b\u113c\u0001\u0000\u0000\u0000\u113c"+ + "\u113e\u0005\u017e\u0000\u0000\u113d\u1136\u0001\u0000\u0000\u0000\u113d"+ + "\u1137\u0001\u0000\u0000\u0000\u113e\u0401\u0001\u0000\u0000\u0000\u113f"+ + "\u1147\u0005D\u0000\u0000\u1140\u1141\u0005\u00ed\u0000\u0000\u1141\u1143"+ + "\u0005\u0173\u0000\u0000\u1142\u1144\u0003\u040c\u0206\u0000\u1143\u1142"+ + "\u0001\u0000\u0000\u0000\u1143\u1144\u0001\u0000\u0000\u0000\u1144\u1145"+ + "\u0001\u0000\u0000\u0000\u1145\u1147\u0005\u017e\u0000\u0000\u1146\u113f"+ + "\u0001\u0000\u0000\u0000\u1146\u1140\u0001\u0000\u0000\u0000\u1147\u0403"+ + "\u0001\u0000\u0000\u0000\u1148\u114e\u0005\u0089\u0000\u0000\u1149\u114b"+ + "\u0005\u0173\u0000\u0000\u114a\u114c\u0003\u040c\u0206\u0000\u114b\u114a"+ + "\u0001\u0000\u0000\u0000\u114b\u114c\u0001\u0000\u0000\u0000\u114c\u114d"+ + "\u0001\u0000\u0000\u0000\u114d\u114f\u0005\u017e\u0000\u0000\u114e\u1149"+ + "\u0001\u0000\u0000\u0000\u114e\u114f\u0001\u0000\u0000\u0000\u114f\u0405"+ + "\u0001\u0000\u0000\u0000\u1150\u1158\u0005E\u0000\u0000\u1151\u1152\u0005"+ + "\u00ec\u0000\u0000\u1152\u1154\u0005\u0173\u0000\u0000\u1153\u1155\u0003"+ + "\u040e\u0207\u0000\u1154\u1153\u0001\u0000\u0000\u0000\u1154\u1155\u0001"+ + "\u0000\u0000\u0000\u1155\u1156\u0001\u0000\u0000\u0000\u1156\u1158\u0005"+ + "\u017e\u0000\u0000\u1157\u1150\u0001\u0000\u0000\u0000\u1157\u1151\u0001"+ + "\u0000\u0000\u0000\u1158\u0407\u0001\u0000\u0000\u0000\u1159\u1161\u0005"+ + "\u008a\u0000\u0000\u115a\u115b\u0005\u0088\u0000\u0000\u115b\u115d\u0005"+ + "\u0173\u0000\u0000\u115c\u115e\u0003\u040e\u0207\u0000\u115d\u115c\u0001"+ + "\u0000\u0000\u0000\u115d\u115e\u0001\u0000\u0000\u0000\u115e\u115f\u0001"+ + "\u0000\u0000\u0000\u115f\u1161\u0005\u017e\u0000\u0000\u1160\u1159\u0001"+ + "\u0000\u0000\u0000\u1160\u115a\u0001\u0000\u0000\u0000\u1161\u0409\u0001"+ + "\u0000\u0000\u0000\u1162\u1165\u0003\u046a\u0235\u0000\u1163\u1165\u0003"+ + "\u03ae\u01d7\u0000\u1164\u1162\u0001\u0000\u0000\u0000\u1164\u1163\u0001"+ + "\u0000\u0000\u0000\u1165\u040b\u0001\u0000\u0000\u0000\u1166\u1169\u0003"+ + "\u046c\u0236\u0000\u1167\u1169\u0003\u03ae\u01d7\u0000\u1168\u1166\u0001"+ + "\u0000\u0000\u0000\u1168\u1167\u0001\u0000\u0000\u0000\u1169\u040d\u0001"+ + "\u0000\u0000\u0000\u116a\u116d\u0003\u046e\u0237\u0000\u116b\u116d\u0003"+ + "\u03ae\u01d7\u0000\u116c\u116a\u0001\u0000\u0000\u0000\u116c\u116b\u0001"+ + "\u0000\u0000\u0000\u116d\u040f\u0001\u0000\u0000\u0000\u116e\u116f\u0003"+ + "\u0332\u0199\u0000\u116f\u0411\u0001\u0000\u0000\u0000\u1170\u1171\u0005"+ + "T\u0000\u0000\u1171\u1172\u0005\u0173\u0000\u0000\u1172\u1173\u0003\u0414"+ + "\u020a\u0000\u1173\u1175\u0005\u017e\u0000\u0000\u1174\u1176\u0003\u02d6"+ + "\u016b\u0000\u1175\u1174\u0001\u0000\u0000\u0000\u1175\u1176\u0001\u0000"+ + "\u0000\u0000\u1176\u0413\u0001\u0000\u0000\u0000\u1177\u1178\u0003\u0416"+ + "\u020b\u0000\u1178\u1179\u0005\u0169\u0000\u0000\u1179\u117a\u0003\u0418"+ + "\u020c\u0000\u117a\u0415\u0001\u0000\u0000\u0000\u117b\u117c\u0003\u03fc"+ + "\u01fe\u0000\u117c\u0417\u0001\u0000\u0000\u0000\u117d\u117e\u0003\u03fc"+ + "\u01fe\u0000\u117e\u0419\u0001\u0000\u0000\u0000\u117f\u1182\u0003\u041c"+ + "\u020e\u0000\u1180\u1182\u0003\u03c8\u01e4\u0000\u1181\u117f\u0001\u0000"+ + "\u0000\u0000\u1181\u1180\u0001\u0000\u0000\u0000\u1182\u041b\u0001\u0000"+ + "\u0000\u0000\u1183\u1184\u0005S\u0000\u0000\u1184\u1185\u0005\u0173\u0000"+ + "\u0000\u1185\u1186\u0003\u041e\u020f\u0000\u1186\u1187\u0005\u017e\u0000"+ + "\u0000\u1187\u041d\u0001\u0000\u0000\u0000\u1188\u118b\u0003\u0472\u0239"+ + "\u0000\u1189\u118b\u0003\u03ae\u01d7\u0000\u118a\u1188\u0001\u0000\u0000"+ + "\u0000\u118a\u1189\u0001\u0000\u0000\u0000\u118b\u041f\u0001\u0000\u0000"+ + "\u0000\u118c\u118d\u0003\u0456\u022b\u0000\u118d\u0421\u0001\u0000\u0000"+ + "\u0000\u118e\u118f\u0003\u0458\u022c\u0000\u118f\u0423\u0001\u0000\u0000"+ + "\u0000\u1190\u1191\u0003\u0456\u022b\u0000\u1191\u0425\u0001\u0000\u0000"+ + "\u0000\u1192\u1193\u0003\u0456\u022b\u0000\u1193\u0427\u0001\u0000\u0000"+ + "\u0000\u1194\u1197\u0003\u0458\u022c\u0000\u1195\u1197\u0003\u042a\u0215"+ + "\u0000\u1196\u1194\u0001\u0000\u0000\u0000\u1196\u1195\u0001\u0000\u0000"+ + "\u0000\u1197\u0429\u0001\u0000\u0000\u0000\u1198\u1199\u0007$\u0000\u0000"+ + "\u1199\u042b\u0001\u0000\u0000\u0000\u119a\u119b\u0003\u0456\u022b\u0000"+ + "\u119b\u042d\u0001\u0000\u0000\u0000\u119c\u119d\u0003\u0456\u022b\u0000"+ + "\u119d\u042f\u0001\u0000\u0000\u0000\u119e\u119f\u0003\u0456\u022b\u0000"+ + "\u119f\u0431\u0001\u0000\u0000\u0000\u11a0\u11a3\u0003\u0458\u022c\u0000"+ + "\u11a1\u11a3\u0003\u0434\u021a\u0000\u11a2\u11a0\u0001\u0000\u0000\u0000"+ + "\u11a2\u11a1\u0001\u0000\u0000\u0000\u11a3\u0433\u0001\u0000\u0000\u0000"+ + "\u11a4\u11a5\u0007$\u0000\u0000\u11a5\u0435\u0001\u0000\u0000\u0000\u11a6"+ + "\u11a7\u0003\u0456\u022b\u0000\u11a7\u0437\u0001\u0000\u0000\u0000\u11a8"+ + "\u11a9\u0003\u0456\u022b\u0000\u11a9\u0439\u0001\u0000\u0000\u0000\u11aa"+ + "\u11ab\u0003\u0456\u022b\u0000\u11ab\u043b\u0001\u0000\u0000\u0000\u11ac"+ + "\u11ad\u0003\u0456\u022b\u0000\u11ad\u043d\u0001\u0000\u0000\u0000\u11ae"+ + "\u11af\u0003\u0444\u0222\u0000\u11af\u043f\u0001\u0000\u0000\u0000\u11b0"+ + "\u11b1\u0003\u0444\u0222\u0000\u11b1\u0441\u0001\u0000\u0000\u0000\u11b2"+ + "\u11b3\u0003\u0458\u022c\u0000\u11b3\u0443\u0001\u0000\u0000\u0000\u11b4"+ + "\u11b5\u0003\u0458\u022c\u0000\u11b5\u0445\u0001\u0000\u0000\u0000\u11b6"+ + "\u11b9\u0003\u045e\u022f\u0000\u11b7\u11b9\u0003\u0448\u0224\u0000\u11b8"+ + "\u11b6\u0001\u0000\u0000\u0000\u11b8\u11b7\u0001\u0000\u0000\u0000\u11b9"+ + "\u0447\u0001\u0000\u0000\u0000\u11ba\u11c3\u0005\u0002\u0000\u0000\u11bb"+ + "\u11c3\u0003\u045c\u022e\u0000\u11bc\u11c3\u0005\u0007\u0000\u0000\u11bd"+ + "\u11c3\u0003\u044a\u0225\u0000\u11be\u11c3\u0003\u0470\u0238\u0000\u11bf"+ + "\u11c3\u0003\u0468\u0234\u0000\u11c0\u11c3\u0003\u0452\u0229\u0000\u11c1"+ + "\u11c3\u0003\u0454\u022a\u0000\u11c2\u11ba\u0001\u0000\u0000\u0000\u11c2"+ + "\u11bb\u0001\u0000\u0000\u0000\u11c2\u11bc\u0001\u0000\u0000\u0000\u11c2"+ + "\u11bd\u0001\u0000\u0000\u0000\u11c2\u11be\u0001\u0000\u0000\u0000\u11c2"+ + "\u11bf\u0001\u0000\u0000\u0000\u11c2\u11c0\u0001\u0000\u0000\u0000\u11c2"+ + "\u11c1\u0001\u0000\u0000\u0000\u11c3\u0449\u0001\u0000\u0000\u0000\u11c4"+ + "\u11c8\u0003\u044c\u0226\u0000\u11c5\u11c8\u0003\u044e\u0227\u0000\u11c6"+ + "\u11c8\u0003\u0450\u0228\u0000\u11c7\u11c4\u0001\u0000\u0000\u0000\u11c7"+ + "\u11c5\u0001\u0000\u0000\u0000\u11c7\u11c6\u0001\u0000\u0000\u0000\u11c8"+ + "\u044b\u0001\u0000\u0000\u0000\u11c9\u11ca\u0005F\u0000\u0000\u11ca\u11cb"+ + "\u0003\u046a\u0235\u0000\u11cb\u044d\u0001\u0000\u0000\u0000\u11cc\u11cd"+ + "\u0005\u00cf\u0000\u0000\u11cd\u11ce\u0003\u046c\u0236\u0000\u11ce\u044f"+ + "\u0001\u0000\u0000\u0000\u11cf\u11d0\u0007%\u0000\u0000\u11d0\u11d1\u0003"+ + "\u046e\u0237\u0000\u11d1\u0451\u0001\u0000\u0000\u0000\u11d2\u11d3\u0003"+ + "\u03a8\u01d4\u0000\u11d3\u0453\u0001\u0000\u0000\u0000\u11d4\u11d5\u0003"+ + "\u03ae\u01d7\u0000\u11d5\u0455\u0001\u0000\u0000\u0000\u11d6\u11da\u0003"+ + "\u0458\u022c\u0000\u11d7\u11da\u0005\u0004\u0000\u0000\u11d8\u11da\u0005"+ + "\u0005\u0000\u0000\u11d9\u11d6\u0001\u0000\u0000\u0000\u11d9\u11d7\u0001"+ + "\u0000\u0000\u0000\u11d9\u11d8\u0001\u0000\u0000\u0000\u11da\u0457\u0001"+ + "\u0000\u0000\u0000\u11db\u11de\u0005\u0145\u0000\u0000\u11dc\u11de\u0003"+ + "\u047a\u023d\u0000\u11dd\u11db\u0001\u0000\u0000\u0000\u11dd\u11dc\u0001"+ + "\u0000\u0000\u0000\u11de\u0459\u0001\u0000\u0000\u0000\u11df\u11e0\u0003"+ + "\u045c\u022e\u0000\u11e0\u045b\u0001\u0000\u0000\u0000\u11e1\u11e2\u0007"+ + "&\u0000\u0000\u11e2\u045d\u0001\u0000\u0000\u0000\u11e3\u11e6\u0003\u0460"+ + "\u0230\u0000\u11e4\u11e6\u0003\u0462\u0231\u0000\u11e5\u11e3\u0001\u0000"+ + "\u0000\u0000\u11e5\u11e4\u0001\u0000\u0000\u0000\u11e6\u045f\u0001\u0000"+ + "\u0000\u0000\u11e7\u11ed\u0005\b\u0000\u0000\u11e8\u11ed\u0005\u000b\u0000"+ + "\u0000\u11e9\u11ed\u0005\f\u0000\u0000\u11ea\u11ed\u0005\u000e\u0000\u0000"+ + "\u11eb\u11ed\u0003\u0464\u0232\u0000\u11ec\u11e7\u0001\u0000\u0000\u0000"+ + "\u11ec\u11e8\u0001\u0000\u0000\u0000\u11ec\u11e9\u0001\u0000\u0000\u0000"+ + "\u11ec\u11ea\u0001\u0000\u0000\u0000\u11ec\u11eb\u0001\u0000\u0000\u0000"+ + "\u11ed\u0461\u0001\u0000\u0000\u0000\u11ee\u11ef\u0007\'\u0000\u0000\u11ef"+ + "\u0463\u0001\u0000\u0000\u0000\u11f0\u11f1\u0007(\u0000\u0000\u11f1\u0465"+ + "\u0001\u0000\u0000\u0000\u11f2\u11f3\u0005\u0010\u0000\u0000\u11f3\u0467"+ + "\u0001\u0000\u0000\u0000\u11f4\u11f5\u0005\u009a\u0000\u0000\u11f5\u0469"+ + "\u0001\u0000\u0000\u0000\u11f6\u11f7\u0003\u045c\u022e\u0000\u11f7\u046b"+ + "\u0001\u0000\u0000\u0000\u11f8\u11f9\u0003\u045c\u022e\u0000\u11f9\u046d"+ + "\u0001\u0000\u0000\u0000\u11fa\u11fb\u0003\u045c\u022e\u0000\u11fb\u046f"+ + "\u0001\u0000\u0000\u0000\u11fc\u11fd\u0005S\u0000\u0000\u11fd\u11fe\u0003"+ + "\u0472\u0239\u0000\u11fe\u0471\u0001\u0000\u0000\u0000\u11ff\u1200\u0003"+ + "\u045c\u022e\u0000\u1200\u0473\u0001\u0000\u0000\u0000\u1201\u1202\u0007"+ + ")\u0000\u0000\u1202\u0475\u0001\u0000\u0000\u0000\u1203\u1204\u0007*\u0000"+ + "\u0000\u1204\u0477\u0001\u0000\u0000\u0000\u1205\u1206\u0007+\u0000\u0000"+ + "\u1206\u0479\u0001\u0000\u0000\u0000\u1207\u1208\u0007,\u0000\u0000\u1208"+ + "\u047b\u0001\u0000\u0000\u0000\u01ff\u047e\u0485\u0489\u048e\u0493\u0498"+ + "\u049b\u04a0\u04a2\u04a6\u04a9\u04ad\u04b5\u04bb\u04c9\u04cc\u04d3\u04e0"+ + "\u04e7\u04ea\u04ef\u04f5\u04f8\u0502\u0509\u0512\u0527\u052a\u0531\u0536"+ + "\u053c\u0542\u0546\u054b\u0552\u0555\u055d\u0564\u0567\u0573\u0576\u0581"+ + "\u0589\u0591\u0596\u059a\u05a2\u05a9\u05b1\u05b7\u05bd\u05c2\u05c5\u05ca"+ + "\u05cd\u05d0\u05d4\u05d7\u05db\u05df\u05e2\u05e5\u05e8\u05f4\u05f9\u05ff"+ + "\u0606\u060b\u060f\u0615\u061a\u061d\u0625\u062b\u0633\u0637\u063c\u0643"+ + "\u0647\u064c\u0652\u0656\u065c\u0669\u066f\u067b\u068b\u0690\u069b\u06a5"+ + "\u06b7\u06bc\u06c0\u06c4\u06c8\u06ca\u06d0\u06d5\u06dc\u06ec\u06f0\u06f5"+ + "\u06f9\u0700\u0704\u0715\u071a\u0721\u072b\u0733\u0738\u0748\u074b\u074f"+ + "\u0752\u0756\u0759\u075f\u0763\u0766\u076a\u0771\u0776\u077d\u0781\u0785"+ + "\u0788\u078b\u078e\u0791\u0794\u0796\u079d\u07a2\u07ad\u07b4\u07be\u07c1"+ + "\u07c8\u07cb\u07d1\u07da\u07e0\u07e4\u07eb\u07f8\u0802\u0807\u080c\u0810"+ + "\u0813\u0817\u0821\u0824\u0828\u082b\u0832\u0836\u0839\u084d\u0856\u085b"+ + "\u0862\u0866\u086c\u0872\u0878\u087b\u087e\u0883\u0888\u088b\u088f\u0893"+ + "\u089a\u089e\u08a1\u08a7\u08aa\u08ad\u08b5\u08ba\u08bd\u08c2\u08c5\u08ca"+ + "\u08cd\u08d1\u08d4\u08d7\u08e3\u08ea\u08ec\u08f1\u08fa\u08ff\u0903\u090a"+ + "\u090d\u0910\u0913\u091e\u092c\u0935\u093e\u0960\u0963\u0967\u097a\u0982"+ + "\u0984\u098f\u0997\u099b\u09aa\u09cb\u09d4\u09de\u09e8\u09f3\u09f9\u0a03"+ + "\u0a0c\u0a27\u0a31\u0a3e\u0a43\u0a53\u0a57\u0a67\u0a6c\u0a6f\u0a79\u0a86"+ + "\u0a8c\u0a95\u0a9b\u0aa2\u0aa7\u0aae\u0ab6\u0ab9\u0ac1\u0ac4\u0acd\u0ad1"+ + "\u0ad4\u0ada\u0ae1\u0ae9\u0aeb\u0afa\u0aff\u0b03\u0b07\u0b0b\u0b0f\u0b12"+ + "\u0b18\u0b1d\u0b21\u0b24\u0b28\u0b2b\u0b34\u0b37\u0b41\u0b44\u0b48\u0b4c"+ + "\u0b50\u0b55\u0b5c\u0b5f\u0b63\u0b66\u0b6d\u0b70\u0b7a\u0b9a\u0b9d\u0ba5"+ + "\u0ba8\u0bb1\u0bb5\u0bd8\u0bdf\u0be4\u0bed\u0bf2\u0bf9\u0c09\u0c0c\u0c13"+ + "\u0c16\u0c1b\u0c1e\u0c21\u0c26\u0c2a\u0c32\u0c37\u0c42\u0c45\u0c47\u0c49"+ + "\u0c55\u0c59\u0c60\u0c65\u0c68\u0c6f\u0c72\u0c79\u0c7c\u0c7e\u0c85\u0c8a"+ + "\u0c8d\u0c94\u0c97\u0c9e\u0ca1\u0ca3\u0cad\u0cb1\u0cb5\u0cb9\u0cbd\u0cc1"+ + "\u0cc5\u0cc9\u0ccd\u0cd1\u0cd8\u0cdb\u0cdf\u0ce2\u0ce5\u0ce9\u0ced\u0cf1"+ + "\u0cf5\u0cf9\u0cfd\u0d01\u0d08\u0d0b\u0d0f\u0d13\u0d17\u0d1b\u0d1f\u0d23"+ + "\u0d27\u0d2b\u0d30\u0d37\u0d3a\u0d3f\u0d41\u0d48\u0d4c\u0d4e\u0d56\u0d5a"+ + "\u0d5e\u0d62\u0d66\u0d6d\u0d71\u0d74\u0d78\u0d7c\u0d7f\u0d81\u0d85\u0d8c"+ + "\u0d91\u0d98\u0d9a\u0d9f\u0da5\u0da8\u0daa\u0dae\u0db3\u0dba\u0dbc\u0dc1"+ + "\u0dc8\u0dca\u0dd1\u0dd9\u0ddf\u0de3\u0dea\u0dee\u0df1\u0df6\u0dfa\u0dfe"+ + "\u0e02\u0e06\u0e0a\u0e0d\u0e11\u0e15\u0e19\u0e1c\u0e20\u0e24\u0e27\u0e2e"+ + "\u0e32\u0e35\u0e39\u0e3b\u0e3f\u0e48\u0e50\u0e5f\u0e78\u0e7f\u0e88\u0e8f"+ + "\u0e92\u0e9b\u0ea7\u0eab\u0eb3\u0eb9\u0ec1\u0ed2\u0ee0\u0ef3\u0ef8\u0efe"+ + "\u0f12\u0f19\u0f1b\u0f24\u0f2d\u0f45\u0f4e\u0f63\u0f6a\u0f73\u0f81\u0f85"+ + "\u0f89\u0f8d\u0f9c\u0fac\u0fb0\u0fb4\u0fbb\u0fbe\u0fc6\u0fc9\u0fdc\u0fe3"+ + "\u0fef\u0ff3\u1000\u100a\u100f\u1022\u103c\u104a\u105b\u105f\u1068\u106e"+ + "\u1074\u107d\u108b\u1093\u1095\u10a5\u10aa\u10b6\u1119\u111c\u111f\u1134"+ + "\u113a\u113d\u1143\u1146\u114b\u114e\u1154\u1157\u115d\u1160\u1164\u1168"+ + "\u116c\u1175\u1181\u118a\u1196\u11a2\u11b8\u11c2\u11c7\u11d9\u11dd\u11e5"+ + "\u11ec"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_20240424Lexer.interp b/developer/javac/ANTLR/GQL_20240424Lexer.interp new file mode 100644 index 0000000..dfcdffd --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240424Lexer.interp @@ -0,0 +1,1239 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'ABS' +'ACOS' +'ALL' +'ALL_DIFFERENT' +'AND' +'ANY' +'ARRAY' +'AS' +'ASC' +'ASCENDING' +'ASIN' +'AT' +'ATAN' +'AVG' +'BIG' +'BIGINT' +'BINARY' +'BOOL' +'BOOLEAN' +'BOTH' +'BTRIM' +'BY' +'BYTE_LENGTH' +'BYTES' +'CALL' +'CARDINALITY' +'CASE' +'CAST' +'CEIL' +'CEILING' +'CHAR' +'CHAR_LENGTH' +'CHARACTER_LENGTH' +'CHARACTERISTICS' +'CLOSE' +'COALESCE' +'COLLECT_LIST' +'COMMIT' +'COPY' +'COS' +'COSH' +'COT' +'COUNT' +'CREATE' +'CURRENT_DATE' +'CURRENT_GRAPH' +'CURRENT_PROPERTY_GRAPH' +'CURRENT_SCHEMA' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'DATE' +'DATETIME' +'DAY' +'DEC' +'DECIMAL' +'DEGREES' +'DELETE' +'DESC' +'DESCENDING' +'DETACH' +'DISTINCT' +'DOUBLE' +'DROP' +'DURATION' +'DURATION_BETWEEN' +'ELEMENT_ID' +'ELSE' +'END' +'EXCEPT' +'EXISTS' +'EXP' +'FILTER' +'FINISH' +'FLOAT' +'FLOAT16' +'FLOAT32' +'FLOAT64' +'FLOAT128' +'FLOAT256' +'FLOOR' +'FOR' +'FROM' +'GROUP' +'HAVING' +'HOME_GRAPH' +'HOME_PROPERTY_GRAPH' +'HOME_SCHEMA' +'HOUR' +'IF' +'IN' +'INSERT' +'INT' +'INTEGER' +'INT8' +'INTEGER8' +'INT16' +'INTEGER16' +'INT32' +'INTEGER32' +'INT64' +'INTEGER64' +'INT128' +'INTEGER128' +'INT256' +'INTEGER256' +'INTERSECT' +'INTERVAL' +'IS' +'LEADING' +'LEFT' +'LET' +'LIKE' +'LIMIT' +'LIST' +'LN' +'LOCAL' +'LOCAL_DATETIME' +'LOCAL_TIME' +'LOCAL_TIMESTAMP' +'LOG' +'LOG10' +'LOWER' +'LTRIM' +'MATCH' +'MAX' +'MIN' +'MINUTE' +'MOD' +'MONTH' +'NEXT' +'NODETACH' +'NORMALIZE' +'NOT' +'NOTHING' +'NULL' +'NULLS' +'NULLIF' +'OCTET_LENGTH' +'OF' +'OFFSET' +'OPTIONAL' +'OR' +'ORDER' +'OTHERWISE' +'PARAMETER' +'PARAMETERS' +'PATH' +'PATH_LENGTH' +'PATHS' +'PERCENTILE_CONT' +'PERCENTILE_DISC' +'POWER' +'PRECISION' +'PROPERTY_EXISTS' +'RADIANS' +'REAL' +'RECORD' +'REMOVE' +'REPLACE' +'RESET' +'RETURN' +'RIGHT' +'ROLLBACK' +'RTRIM' +'SAME' +'SCHEMA' +'SECOND' +'SELECT' +'SESSION' +'SESSION_USER' +'SET' +'SIGNED' +'SIN' +'SINH' +'SIZE' +'SKIP' +'SMALL' +'SMALLINT' +'SQRT' +'START' +'STDDEV_POP' +'STDDEV_SAMP' +'STRING' +'SUM' +'TAN' +'TANH' +'THEN' +'TIME' +'TIMESTAMP' +'TRAILING' +'TRIM' +'TYPED' +'UBIGINT' +'UINT' +'UINT8' +'UINT16' +'UINT32' +'UINT64' +'UINT128' +'UINT256' +'UNION' +'UNSIGNED' +'UPPER' +'USE' +'USMALLINT' +'VALUE' +'VARBINARY' +'VARCHAR' +'VARIABLE' +'WHEN' +'WHERE' +'WITH' +'XOR' +'YEAR' +'YIELD' +'ZONED' +'ZONED_DATETIME' +'ZONED_TIME' +'ABSTRACT' +'AGGREGATE' +'AGGREGATES' +'ALTER' +'CATALOG' +'CLEAR' +'CLONE' +'CONSTRAINT' +'CURRENT_ROLE' +'CURRENT_USER' +'DATA' +'DIRECTORY' +'DRYRUN' +'EXACT' +'EXISTING' +'FUNCTION' +'GQLSTATUS' +'GRANT' +'INSTANT' +'INFINITY' +'NUMBER' +'NUMERIC' +'ON' +'OPEN' +'PARTITION' +'PROCEDURE' +'PRODUCT' +'PROJECT' +'QUERY' +'RECORDS' +'REFERENCE' +'RENAME' +'REVOKE' +'SUBSTRING' +'SYSTEM_USER' +'TEMPORAL' +'UNIQUE' +'UNIT' +'VALUES' +'ACYCLIC' +'BINDING' +'BINDINGS' +'CONNECTING' +'DESTINATION' +'DIFFERENT' +'DIRECTED' +'EDGE' +'EDGES' +'ELEMENT' +'ELEMENTS' +'FIRST' +'GRAPH' +'GROUPS' +'KEEP' +'LABEL' +'LABELED' +'LABELS' +'LAST' +'NFC' +'NFD' +'NFKC' +'NFKD' +'NO' +'NODE' +'NORMALIZED' +'ONLY' +'ORDINALITY' +'PROPERTY' +'READ' +'RELATIONSHIP' +'RELATIONSHIPS' +'REPEATABLE' +'SHORTEST' +'SIMPLE' +'SOURCE' +'TABLE' +'TEMP' +'TO' +'TRAIL' +'TRANSACTION' +'TYPE' +'UNDIRECTED' +'VERTEX' +'WALK' +'WITHOUT' +'WRITE' +'ZONE' +null +null +null +'|+|' +']->' +']~>' +'||' +'::' +'$$' +'..' +'>=' +'<-' +'<~' +'<-[' +'<~[' +'<->' +'<-/' +'<~/' +'<=' +'-[' +'-/' +'<>' +'->' +']-' +']~' +'=>' +'/-' +'/->' +'/~' +'/~>' +'~[' +'~>' +'~/' +'&' +'*' +':' +',' +'@' +'$' +'"' +'=' +'!' +'>' +'`' +'{' +'[' +'(' +'<' +'-' +'%' +'.' +'+' +'?' +'\'' +'\\' +'}' +']' +')' +'/' +'~' +'_' +'|' +null +null +null +null +null + +token symbolic names: +null +IMPLIES +BOOLEAN_LITERAL +SINGLE_QUOTED_CHARACTER_SEQUENCE +DOUBLE_QUOTED_CHARACTER_SEQUENCE +ACCENT_QUOTED_CHARACTER_SEQUENCE +NO_ESCAPE +BYTE_STRING_LITERAL +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER +UNSIGNED_HEXADECIMAL_INTEGER +UNSIGNED_OCTAL_INTEGER +UNSIGNED_BINARY_INTEGER +ABS +ACOS +ALL +ALL_DIFFERENT +AND +ANY +ARRAY +AS +ASC +ASCENDING +ASIN +AT +ATAN +AVG +BIG +BIGINT +BINARY +BOOL +BOOLEAN +BOTH +BTRIM +BY +BYTE_LENGTH +BYTES +CALL +CARDINALITY +CASE +CAST +CEIL +CEILING +CHAR +CHAR_LENGTH +CHARACTER_LENGTH +CHARACTERISTICS +CLOSE +COALESCE +COLLECT_LIST +COMMIT +COPY +COS +COSH +COT +COUNT +CREATE +CURRENT_DATE +CURRENT_GRAPH +CURRENT_PROPERTY_GRAPH +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +DATE +DATETIME +DAY +DEC +DECIMAL +DEGREES +DELETE +DESC +DESCENDING +DETACH +DISTINCT +DOUBLE +DROP +DURATION +DURATION_BETWEEN +ELEMENT_ID +ELSE +END +EXCEPT +EXISTS +EXP +FILTER +FINISH +FLOAT +FLOAT16 +FLOAT32 +FLOAT64 +FLOAT128 +FLOAT256 +FLOOR +FOR +FROM +GROUP +HAVING +HOME_GRAPH +HOME_PROPERTY_GRAPH +HOME_SCHEMA +HOUR +IF +IN +INSERT +INT +INTEGER +INT8 +INTEGER8 +INT16 +INTEGER16 +INT32 +INTEGER32 +INT64 +INTEGER64 +INT128 +INTEGER128 +INT256 +INTEGER256 +INTERSECT +INTERVAL +IS +LEADING +LEFT +LET +LIKE +LIMIT +LIST +LN +LOCAL +LOCAL_DATETIME +LOCAL_TIME +LOCAL_TIMESTAMP +LOG +LOG10 +LOWER +LTRIM +MATCH +MAX +MIN +MINUTE +MOD +MONTH +NEXT +NODETACH +NORMALIZE +NOT +NOTHING +NULL +NULLS +NULLIF +OCTET_LENGTH +OF +OFFSET +OPTIONAL +OR +ORDER +OTHERWISE +PARAMETER +PARAMETERS +PATH +PATH_LENGTH +PATHS +PERCENTILE_CONT +PERCENTILE_DISC +POWER +PRECISION +PROPERTY_EXISTS +RADIANS +REAL +RECORD +REMOVE +REPLACE +RESET +RETURN +RIGHT +ROLLBACK +RTRIM +SAME +SCHEMA +SECOND +SELECT +SESSION +SESSION_USER +SET +SIGNED +SIN +SINH +SIZE +SKIP_RESERVED_WORD +SMALL +SMALLINT +SQRT +START +STDDEV_POP +STDDEV_SAMP +STRING +SUM +TAN +TANH +THEN +TIME +TIMESTAMP +TRAILING +TRIM +TYPED +UBIGINT +UINT +UINT8 +UINT16 +UINT32 +UINT64 +UINT128 +UINT256 +UNION +UNSIGNED +UPPER +USE +USMALLINT +VALUE +VARBINARY +VARCHAR +VARIABLE +WHEN +WHERE +WITH +XOR +YEAR +YIELD +ZONED +ZONED_DATETIME +ZONED_TIME +ABSTRACT +AGGREGATE +AGGREGATES +ALTER +CATALOG +CLEAR +CLONE +CONSTRAINT +CURRENT_ROLE +CURRENT_USER +DATA +DIRECTORY +DRYRUN +EXACT +EXISTING +FUNCTION +GQLSTATUS +GRANT +INSTANT +INFINITY +NUMBER +NUMERIC +ON +OPEN +PARTITION +PROCEDURE +PRODUCT +PROJECT +QUERY +RECORDS +REFERENCE +RENAME +REVOKE +SUBSTRING +SYSTEM_USER +TEMPORAL +UNIQUE +UNIT +VALUES +ACYCLIC +BINDING +BINDINGS +CONNECTING +DESTINATION +DIFFERENT +DIRECTED +EDGE +EDGES +ELEMENT +ELEMENTS +FIRST +GRAPH +GROUPS +KEEP +LABEL +LABELED +LABELS +LAST +NFC +NFD +NFKC +NFKD +NO +NODE +NORMALIZED +ONLY +ORDINALITY +PROPERTY +READ +RELATIONSHIP +RELATIONSHIPS +REPEATABLE +SHORTEST +SIMPLE +SOURCE +TABLE +TEMP +TO +TRAIL +TRANSACTION +TYPE +UNDIRECTED +VERTEX +WALK +WITHOUT +WRITE +ZONE +REGULAR_IDENTIFIER +SUBSTITUTED_PARAMETER_REFERENCE +GENERAL_PARAMETER_REFERENCE +MULTISET_ALTERNATION_OPERATOR +BRACKET_RIGHT_ARROW +BRACKET_TILDE_RIGHT_ARROW +CONCATENATION_OPERATOR +DOUBLE_COLON +DOUBLE_DOLLAR_SIGN +DOUBLE_PERIOD +GREATER_THAN_OR_EQUALS_OPERATOR +LEFT_ARROW +LEFT_ARROW_TILDE +LEFT_ARROW_BRACKET +LEFT_ARROW_TILDE_BRACKET +LEFT_MINUS_RIGHT +LEFT_MINUS_SLASH +LEFT_TILDE_SLASH +LESS_THAN_OR_EQUALS_OPERATOR +MINUS_LEFT_BRACKET +MINUS_SLASH +NOT_EQUALS_OPERATOR +RIGHT_ARROW +RIGHT_BRACKET_MINUS +RIGHT_BRACKET_TILDE +RIGHT_DOUBLE_ARROW +SLASH_MINUS +SLASH_MINUS_RIGHT +SLASH_TILDE +SLASH_TILDE_RIGHT +TILDE_LEFT_BRACKET +TILDE_RIGHT_ARROW +TILDE_SLASH +AMPERSAND +ASTERISK +COLON +COMMA +COMMERCIAL_AT +DOLLAR_SIGN +DOUBLE_QUOTE +EQUALS_OPERATOR +EXCLAMATION_MARK +RIGHT_ANGLE_BRACKET +GRAVE_ACCENT +LEFT_BRACE +LEFT_BRACKET +LEFT_PAREN +LEFT_ANGLE_BRACKET +MINUS_SIGN +PERCENT +PERIOD +PLUS_SIGN +QUESTION_MARK +QUOTE +REVERSE_SOLIDUS +RIGHT_BRACE +RIGHT_BRACKET +RIGHT_PAREN +SOLIDUS +TILDE +UNDERSCORE +VERTICAL_BAR +SP +WHITESPACE +BRACKETED_COMMENT +SIMPLE_COMMENT_SOLIDUS +SIMPLE_COMMENT_MINUS + +rule names: +IMPLIES +PARAMETER_NAME +BOOLEAN_LITERAL +SINGLE_QUOTED_CHARACTER_SEQUENCE +DOUBLE_QUOTED_CHARACTER_SEQUENCE +ACCENT_QUOTED_CHARACTER_SEQUENCE +NO_ESCAPE +UNBROKEN_SINGLE_QUOTED_CHARACTER_SEQUENCE +UNBROKEN_DOUBLE_QUOTED_CHARACTER_SEQUENCE +UNBROKEN_ACCENT_QUOTED_CHARACTER_SEQUENCE +SINGLE_QUOTED_CHARACTER_REPRESENTATION +DOUBLE_QUOTED_CHARACTER_REPRESENTATION +ACCENT_QUOTED_CHARACTER_REPRESENTATION +ESCAPED_CHARACTER +ESCAPED_REVERSE_SOLIDUS +ESCAPED_QUOTE +ESCAPED_DOUBLE_QUOTE +ESCAPED_GRAVE_ACCENT +ESCAPED_TAB +ESCAPED_BACKSPACE +ESCAPED_NEW_LINE +ESCAPED_CARRIAGE_RETURN +ESCAPED_FORM_FEED +ESCAPED_UNICODE4_DIGIT_VALUE +ESCAPED_UNICODE6_DIGIT_VALUE +BYTE_STRING_LITERAL +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX +UNSIGNED_DECIMAL_INTEGER +EXACT_NUMBER_SUFFIX +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION +MANTISSA +EXPONENT +UNSIGNED_DECIMAL_IN_COMMON_NOTATION +SIGNED_DECIMAL_INTEGER +UNSIGNED_HEXADECIMAL_INTEGER +UNSIGNED_OCTAL_INTEGER +UNSIGNED_BINARY_INTEGER +APPROXIMATE_NUMBER_SUFFIX +ABS +ACOS +ALL +ALL_DIFFERENT +AND +ANY +ARRAY +AS +ASC +ASCENDING +ASIN +AT +ATAN +AVG +BIG +BIGINT +BINARY +BOOL +BOOLEAN +BOTH +BTRIM +BY +BYTE_LENGTH +BYTES +CALL +CARDINALITY +CASE +CAST +CEIL +CEILING +CHAR +CHAR_LENGTH +CHARACTER_LENGTH +CHARACTERISTICS +CLOSE +COALESCE +COLLECT_LIST +COMMIT +COPY +COS +COSH +COT +COUNT +CREATE +CURRENT_DATE +CURRENT_GRAPH +CURRENT_PROPERTY_GRAPH +CURRENT_SCHEMA +CURRENT_TIME +CURRENT_TIMESTAMP +DATE +DATETIME +DAY +DEC +DECIMAL +DEGREES +DELETE +DESC +DESCENDING +DETACH +DISTINCT +DOUBLE +DROP +DURATION +DURATION_BETWEEN +ELEMENT_ID +ELSE +END +EXCEPT +EXISTS +EXP +FILTER +FINISH +FLOAT +FLOAT16 +FLOAT32 +FLOAT64 +FLOAT128 +FLOAT256 +FLOOR +FOR +FROM +GROUP +HAVING +HOME_GRAPH +HOME_PROPERTY_GRAPH +HOME_SCHEMA +HOUR +IF +IN +INSERT +INT +INTEGER +INT8 +INTEGER8 +INT16 +INTEGER16 +INT32 +INTEGER32 +INT64 +INTEGER64 +INT128 +INTEGER128 +INT256 +INTEGER256 +INTERSECT +INTERVAL +IS +LEADING +LEFT +LET +LIKE +LIMIT +LIST +LN +LOCAL +LOCAL_DATETIME +LOCAL_TIME +LOCAL_TIMESTAMP +LOG +LOG10 +LOWER +LTRIM +MATCH +MAX +MIN +MINUTE +MOD +MONTH +NEXT +NODETACH +NORMALIZE +NOT +NOTHING +NULL +NULLS +NULLIF +OCTET_LENGTH +OF +OFFSET +OPTIONAL +OR +ORDER +OTHERWISE +PARAMETER +PARAMETERS +PATH +PATH_LENGTH +PATHS +PERCENTILE_CONT +PERCENTILE_DISC +POWER +PRECISION +PROPERTY_EXISTS +RADIANS +REAL +RECORD +REMOVE +REPLACE +RESET +RETURN +RIGHT +ROLLBACK +RTRIM +SAME +SCHEMA +SECOND +SELECT +SESSION +SESSION_USER +SET +SIGNED +SIN +SINH +SIZE +SKIP_RESERVED_WORD +SMALL +SMALLINT +SQRT +START +STDDEV_POP +STDDEV_SAMP +STRING +SUM +TAN +TANH +THEN +TIME +TIMESTAMP +TRAILING +TRIM +TYPED +UBIGINT +UINT +UINT8 +UINT16 +UINT32 +UINT64 +UINT128 +UINT256 +UNION +UNSIGNED +UPPER +USE +USMALLINT +VALUE +VARBINARY +VARCHAR +VARIABLE +WHEN +WHERE +WITH +XOR +YEAR +YIELD +ZONED +ZONED_DATETIME +ZONED_TIME +ABSTRACT +AGGREGATE +AGGREGATES +ALTER +CATALOG +CLEAR +CLONE +CONSTRAINT +CURRENT_ROLE +CURRENT_USER +DATA +DIRECTORY +DRYRUN +EXACT +EXISTING +FUNCTION +GQLSTATUS +GRANT +INSTANT +INFINITY +NUMBER +NUMERIC +ON +OPEN +PARTITION +PROCEDURE +PRODUCT +PROJECT +QUERY +RECORDS +REFERENCE +RENAME +REVOKE +SUBSTRING +SYSTEM_USER +TEMPORAL +UNIQUE +UNIT +VALUES +ACYCLIC +BINDING +BINDINGS +CONNECTING +DESTINATION +DIFFERENT +DIRECTED +EDGE +EDGES +ELEMENT +ELEMENTS +FIRST +GRAPH +GROUPS +KEEP +LABEL +LABELED +LABELS +LAST +NFC +NFD +NFKC +NFKD +NO +NODE +NORMALIZED +ONLY +ORDINALITY +PROPERTY +READ +RELATIONSHIP +RELATIONSHIPS +REPEATABLE +SHORTEST +SIMPLE +SOURCE +TABLE +TEMP +TO +TRAIL +TRANSACTION +TYPE +UNDIRECTED +VERTEX +WALK +WITHOUT +WRITE +ZONE +SEPARATED_IDENTIFIER +REGULAR_IDENTIFIER +EXTENDED_IDENTIFIER +DELIMITED_IDENTIFIER +SUBSTITUTED_PARAMETER_REFERENCE +GENERAL_PARAMETER_REFERENCE +IDENTIFIER_START +IDENTIFIER_EXTEND +ID_Start +ID_Continue +MULTISET_ALTERNATION_OPERATOR +BRACKET_RIGHT_ARROW +BRACKET_TILDE_RIGHT_ARROW +CONCATENATION_OPERATOR +DOUBLE_COLON +DOUBLE_DOLLAR_SIGN +DOUBLE_PERIOD +GREATER_THAN_OR_EQUALS_OPERATOR +LEFT_ARROW +LEFT_ARROW_TILDE +LEFT_ARROW_BRACKET +LEFT_ARROW_TILDE_BRACKET +LEFT_MINUS_RIGHT +LEFT_MINUS_SLASH +LEFT_TILDE_SLASH +LESS_THAN_OR_EQUALS_OPERATOR +MINUS_LEFT_BRACKET +MINUS_SLASH +NOT_EQUALS_OPERATOR +RIGHT_ARROW +RIGHT_BRACKET_MINUS +RIGHT_BRACKET_TILDE +RIGHT_DOUBLE_ARROW +SLASH_MINUS +SLASH_MINUS_RIGHT +SLASH_TILDE +SLASH_TILDE_RIGHT +TILDE_LEFT_BRACKET +TILDE_RIGHT_ARROW +TILDE_SLASH +AMPERSAND +ASTERISK +COLON +COMMA +COMMERCIAL_AT +DOLLAR_SIGN +DOUBLE_QUOTE +EQUALS_OPERATOR +EXCLAMATION_MARK +RIGHT_ANGLE_BRACKET +GRAVE_ACCENT +LEFT_BRACE +LEFT_BRACKET +LEFT_PAREN +LEFT_ANGLE_BRACKET +MINUS_SIGN +PERCENT +PERIOD +PLUS_SIGN +QUESTION_MARK +QUOTE +REVERSE_SOLIDUS +RIGHT_BRACE +RIGHT_BRACKET +RIGHT_PAREN +SOLIDUS +TILDE +UNDERSCORE +VERTICAL_BAR +HEX_DIGIT +DIGIT +OCTAL_DIGIT +BINARY_DIGIT +SP +WHITESPACE +BRACKETED_COMMENT +SIMPLE_COMMENT_SOLIDUS +SIMPLE_COMMENT_MINUS +GS +FS +CR +Sc +SPACE +Pc +TAB +LF +VT +US +FF +RS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 391, 3724, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 890, 8, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 910, 8, 2, 1, 3, 3, 3, 913, 8, 3, 1, 3, 1, 3, 1, 4, 3, 4, 918, 8, 4, 1, 4, 1, 4, 1, 5, 3, 5, 923, 8, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 5, 7, 931, 8, 7, 10, 7, 12, 7, 934, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 5, 8, 940, 8, 8, 10, 8, 12, 8, 943, 9, 8, 1, 8, 1, 8, 1, 9, 1, 9, 5, 9, 949, 8, 9, 10, 9, 12, 9, 952, 9, 9, 1, 9, 1, 9, 1, 10, 1, 10, 4, 10, 958, 8, 10, 11, 10, 12, 10, 959, 1, 11, 1, 11, 4, 11, 964, 8, 11, 11, 11, 12, 11, 965, 1, 12, 1, 12, 4, 12, 970, 8, 12, 11, 12, 12, 12, 971, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 985, 8, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 5, 25, 1033, 8, 25, 10, 25, 12, 25, 1036, 9, 25, 1, 25, 1, 25, 5, 25, 1040, 8, 25, 10, 25, 12, 25, 1043, 9, 25, 1, 25, 1, 25, 5, 25, 1047, 8, 25, 10, 25, 12, 25, 1050, 9, 25, 5, 25, 1052, 8, 25, 10, 25, 12, 25, 1055, 9, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 3, 34, 1083, 8, 34, 1, 34, 5, 34, 1086, 8, 34, 10, 34, 12, 34, 1089, 9, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 1099, 8, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 3, 39, 1106, 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 1111, 8, 39, 1, 40, 1, 40, 3, 40, 1115, 8, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 1123, 8, 41, 1, 41, 4, 41, 1126, 8, 41, 11, 41, 12, 41, 1127, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 1134, 8, 42, 1, 42, 4, 42, 1137, 8, 42, 11, 42, 12, 42, 1138, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1145, 8, 43, 1, 43, 4, 43, 1148, 8, 43, 11, 43, 12, 43, 1149, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 183, 1, 183, 1, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 186, 1, 186, 1, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 213, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 214, 1, 215, 1, 215, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 218, 1, 218, 1, 218, 1, 219, 1, 219, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 221, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 222, 1, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 1, 232, 1, 232, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 233, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 243, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 244, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 253, 1, 254, 1, 254, 1, 254, 1, 254, 1, 254, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 1, 257, 1, 257, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 260, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 261, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 262, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 263, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 264, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 265, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 299, 1, 300, 1, 300, 1, 300, 1, 300, 1, 300, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 308, 1, 309, 1, 309, 1, 309, 1, 309, 1, 309, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 311, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 314, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 320, 1, 320, 1, 320, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 323, 1, 323, 1, 323, 1, 323, 1, 323, 1, 324, 1, 324, 1, 324, 1, 324, 1, 324, 1, 325, 1, 325, 1, 325, 1, 326, 1, 326, 1, 326, 1, 326, 1, 326, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 327, 1, 328, 1, 328, 1, 328, 1, 328, 1, 328, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 334, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 335, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 339, 1, 339, 1, 339, 1, 340, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 342, 1, 343, 1, 343, 1, 343, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 346, 1, 346, 1, 346, 1, 346, 1, 346, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 3, 350, 3445, 8, 350, 1, 351, 1, 351, 5, 351, 3449, 8, 351, 10, 351, 12, 351, 3452, 9, 351, 1, 352, 4, 352, 3455, 8, 352, 11, 352, 12, 352, 3456, 1, 353, 1, 353, 3, 353, 3461, 8, 353, 1, 354, 1, 354, 1, 354, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 3, 356, 3471, 8, 356, 1, 357, 1, 357, 1, 358, 1, 358, 1, 359, 1, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 361, 1, 361, 1, 361, 1, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 367, 1, 367, 1, 367, 1, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 1, 374, 1, 374, 1, 375, 1, 375, 1, 375, 1, 376, 1, 376, 1, 376, 1, 377, 1, 377, 1, 377, 1, 378, 1, 378, 1, 378, 1, 379, 1, 379, 1, 379, 1, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 1, 382, 1, 382, 1, 382, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 389, 1, 389, 1, 389, 1, 390, 1, 390, 1, 391, 1, 391, 1, 392, 1, 392, 1, 393, 1, 393, 1, 394, 1, 394, 1, 395, 1, 395, 1, 396, 1, 396, 1, 397, 1, 397, 1, 398, 1, 398, 1, 399, 1, 399, 1, 400, 1, 400, 1, 401, 1, 401, 1, 402, 1, 402, 1, 403, 1, 403, 1, 404, 1, 404, 1, 405, 1, 405, 1, 406, 1, 406, 1, 407, 1, 407, 1, 408, 1, 408, 1, 409, 1, 409, 1, 410, 1, 410, 1, 411, 1, 411, 1, 412, 1, 412, 1, 413, 1, 413, 1, 414, 1, 414, 1, 415, 1, 415, 1, 416, 1, 416, 1, 417, 1, 417, 1, 418, 1, 418, 1, 419, 1, 419, 1, 420, 1, 420, 1, 421, 1, 421, 1, 422, 1, 422, 1, 423, 4, 423, 3646, 8, 423, 11, 423, 12, 423, 3647, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 1, 424, 3, 424, 3663, 8, 424, 1, 425, 1, 425, 1, 425, 1, 425, 5, 425, 3669, 8, 425, 10, 425, 12, 425, 3672, 9, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 5, 426, 3683, 8, 426, 10, 426, 12, 426, 3686, 9, 426, 1, 426, 1, 426, 1, 427, 1, 427, 1, 427, 1, 427, 5, 427, 3694, 8, 427, 10, 427, 12, 427, 3697, 9, 427, 1, 427, 1, 427, 1, 428, 1, 428, 1, 429, 1, 429, 1, 430, 1, 430, 1, 431, 1, 431, 1, 432, 1, 432, 1, 433, 1, 433, 1, 434, 1, 434, 1, 435, 1, 435, 1, 436, 1, 436, 1, 437, 1, 437, 1, 438, 1, 438, 1, 439, 1, 439, 1, 3670, 0, 440, 1, 1, 3, 0, 5, 2, 7, 3, 9, 4, 11, 5, 13, 6, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 7, 53, 8, 55, 9, 57, 10, 59, 11, 61, 12, 63, 13, 65, 14, 67, 15, 69, 16, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0, 81, 0, 83, 17, 85, 18, 87, 19, 89, 0, 91, 20, 93, 21, 95, 22, 97, 23, 99, 24, 101, 25, 103, 26, 105, 27, 107, 28, 109, 29, 111, 30, 113, 31, 115, 32, 117, 33, 119, 34, 121, 35, 123, 36, 125, 37, 127, 38, 129, 39, 131, 40, 133, 41, 135, 42, 137, 43, 139, 44, 141, 45, 143, 46, 145, 47, 147, 48, 149, 49, 151, 50, 153, 51, 155, 52, 157, 53, 159, 54, 161, 55, 163, 56, 165, 57, 167, 58, 169, 59, 171, 60, 173, 61, 175, 62, 177, 63, 179, 64, 181, 65, 183, 66, 185, 67, 187, 68, 189, 69, 191, 70, 193, 71, 195, 72, 197, 73, 199, 74, 201, 75, 203, 76, 205, 77, 207, 78, 209, 79, 211, 80, 213, 81, 215, 82, 217, 83, 219, 84, 221, 85, 223, 86, 225, 87, 227, 88, 229, 89, 231, 90, 233, 91, 235, 92, 237, 93, 239, 94, 241, 95, 243, 96, 245, 97, 247, 98, 249, 99, 251, 100, 253, 101, 255, 102, 257, 103, 259, 104, 261, 105, 263, 106, 265, 107, 267, 108, 269, 109, 271, 110, 273, 111, 275, 112, 277, 113, 279, 114, 281, 115, 283, 116, 285, 117, 287, 118, 289, 119, 291, 120, 293, 121, 295, 122, 297, 123, 299, 124, 301, 125, 303, 126, 305, 127, 307, 128, 309, 129, 311, 130, 313, 131, 315, 132, 317, 133, 319, 134, 321, 135, 323, 136, 325, 137, 327, 138, 329, 139, 331, 140, 333, 141, 335, 142, 337, 143, 339, 144, 341, 145, 343, 146, 345, 147, 347, 148, 349, 149, 351, 150, 353, 151, 355, 152, 357, 153, 359, 154, 361, 155, 363, 156, 365, 157, 367, 158, 369, 159, 371, 160, 373, 161, 375, 162, 377, 163, 379, 164, 381, 165, 383, 166, 385, 167, 387, 168, 389, 169, 391, 170, 393, 171, 395, 172, 397, 173, 399, 174, 401, 175, 403, 176, 405, 177, 407, 178, 409, 179, 411, 180, 413, 181, 415, 182, 417, 183, 419, 184, 421, 185, 423, 186, 425, 187, 427, 188, 429, 189, 431, 190, 433, 191, 435, 192, 437, 193, 439, 194, 441, 195, 443, 196, 445, 197, 447, 198, 449, 199, 451, 200, 453, 201, 455, 202, 457, 203, 459, 204, 461, 205, 463, 206, 465, 207, 467, 208, 469, 209, 471, 210, 473, 211, 475, 212, 477, 213, 479, 214, 481, 215, 483, 216, 485, 217, 487, 218, 489, 219, 491, 220, 493, 221, 495, 222, 497, 223, 499, 224, 501, 225, 503, 226, 505, 227, 507, 228, 509, 229, 511, 230, 513, 231, 515, 232, 517, 233, 519, 234, 521, 235, 523, 236, 525, 237, 527, 238, 529, 239, 531, 240, 533, 241, 535, 242, 537, 243, 539, 244, 541, 245, 543, 246, 545, 247, 547, 248, 549, 249, 551, 250, 553, 251, 555, 252, 557, 253, 559, 254, 561, 255, 563, 256, 565, 257, 567, 258, 569, 259, 571, 260, 573, 261, 575, 262, 577, 263, 579, 264, 581, 265, 583, 266, 585, 267, 587, 268, 589, 269, 591, 270, 593, 271, 595, 272, 597, 273, 599, 274, 601, 275, 603, 276, 605, 277, 607, 278, 609, 279, 611, 280, 613, 281, 615, 282, 617, 283, 619, 284, 621, 285, 623, 286, 625, 287, 627, 288, 629, 289, 631, 290, 633, 291, 635, 292, 637, 293, 639, 294, 641, 295, 643, 296, 645, 297, 647, 298, 649, 299, 651, 300, 653, 301, 655, 302, 657, 303, 659, 304, 661, 305, 663, 306, 665, 307, 667, 308, 669, 309, 671, 310, 673, 311, 675, 312, 677, 313, 679, 314, 681, 315, 683, 316, 685, 317, 687, 318, 689, 319, 691, 320, 693, 321, 695, 322, 697, 323, 699, 324, 701, 0, 703, 325, 705, 0, 707, 0, 709, 326, 711, 327, 713, 0, 715, 0, 717, 0, 719, 0, 721, 328, 723, 329, 725, 330, 727, 331, 729, 332, 731, 333, 733, 334, 735, 335, 737, 336, 739, 337, 741, 338, 743, 339, 745, 340, 747, 341, 749, 342, 751, 343, 753, 344, 755, 345, 757, 346, 759, 347, 761, 348, 763, 349, 765, 350, 767, 351, 769, 352, 771, 353, 773, 354, 775, 355, 777, 356, 779, 357, 781, 358, 783, 359, 785, 360, 787, 361, 789, 362, 791, 363, 793, 364, 795, 365, 797, 366, 799, 367, 801, 368, 803, 369, 805, 370, 807, 371, 809, 372, 811, 373, 813, 374, 815, 375, 817, 376, 819, 377, 821, 378, 823, 379, 825, 380, 827, 381, 829, 382, 831, 383, 833, 384, 835, 385, 837, 386, 839, 0, 841, 0, 843, 0, 845, 0, 847, 387, 849, 388, 851, 389, 853, 390, 855, 391, 857, 0, 859, 0, 861, 0, 863, 0, 865, 0, 867, 0, 869, 0, 871, 0, 873, 0, 875, 0, 877, 0, 879, 0, 1, 0, 50, 2, 0, 73, 73, 105, 105, 2, 0, 77, 77, 109, 109, 2, 0, 80, 80, 112, 112, 2, 0, 76, 76, 108, 108, 2, 0, 69, 69, 101, 101, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 82, 82, 114, 114, 2, 0, 85, 85, 117, 117, 2, 0, 70, 70, 102, 102, 2, 0, 65, 65, 97, 97, 2, 0, 78, 78, 110, 110, 2, 0, 75, 75, 107, 107, 2, 0, 79, 79, 111, 111, 2, 0, 87, 87, 119, 119, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 92, 92, 96, 96, 2, 0, 66, 66, 98, 98, 2, 0, 88, 88, 120, 120, 4, 0, 68, 68, 70, 70, 100, 100, 102, 102, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 89, 89, 121, 121, 2, 0, 71, 71, 103, 103, 2, 0, 86, 86, 118, 118, 2, 0, 72, 72, 104, 104, 2, 0, 90, 90, 122, 122, 2, 0, 81, 81, 113, 113, 2, 0, 74, 74, 106, 106, 648, 0, 65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2160, 2183, 2185, 2190, 2208, 2249, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3165, 3165, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3293, 3294, 3296, 3297, 3313, 3314, 3332, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5905, 5919, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6988, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69248, 69289, 69296, 69297, 69376, 69404, 69415, 69415, 69424, 69445, 69488, 69505, 69552, 69572, 69600, 69622, 69635, 69687, 69745, 69746, 69749, 69749, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69959, 69959, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70753, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71488, 71494, 71680, 71723, 71840, 71903, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71983, 71999, 71999, 72001, 72001, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92784, 92862, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 122624, 122654, 123136, 123180, 123191, 123197, 123214, 123214, 123536, 123565, 123584, 123627, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173791, 173824, 177976, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 756, 0, 48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2160, 2183, 2185, 2190, 2200, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3132, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3165, 3165, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3293, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3328, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3457, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5909, 5919, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6159, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6847, 6862, 6912, 6988, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43047, 43052, 43052, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69248, 69289, 69291, 69292, 69296, 69297, 69376, 69404, 69415, 69415, 69424, 69456, 69488, 69509, 69552, 69572, 69600, 69622, 69632, 69702, 69734, 69749, 69759, 69818, 69826, 69826, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69959, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70094, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70206, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70753, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71488, 71494, 71680, 71738, 71840, 71913, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71989, 71991, 71992, 71995, 72003, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92784, 92862, 92864, 92873, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 118528, 118573, 118576, 118598, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122624, 122654, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123536, 123566, 123584, 123641, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 130032, 130041, 131072, 173791, 173824, 177976, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 196608, 201546, 917760, 917999, 3, 0, 48, 57, 65, 70, 97, 102, 1, 0, 48, 57, 1, 0, 48, 55, 1, 0, 48, 49, 8, 0, 160, 160, 5760, 5760, 6158, 6158, 8192, 8202, 8232, 8233, 8239, 8239, 8287, 8287, 12288, 12288, 2, 0, 10, 10, 13, 13, 1, 0, 29, 29, 1, 0, 28, 28, 1, 0, 13, 13, 21, 0, 36, 36, 162, 165, 1423, 1423, 1547, 1547, 2046, 2047, 2546, 2547, 2555, 2555, 2801, 2801, 3065, 3065, 3647, 3647, 6107, 6107, 8352, 8384, 43064, 43064, 65020, 65020, 65129, 65129, 65284, 65284, 65504, 65505, 65509, 65510, 73693, 73696, 123647, 123647, 126128, 126128, 1, 0, 32, 32, 6, 0, 95, 95, 8255, 8256, 8276, 8276, 65075, 65076, 65101, 65103, 65343, 65343, 1, 0, 9, 9, 1, 0, 10, 10, 1, 0, 11, 11, 1, 0, 31, 31, 1, 0, 12, 12, 1, 0, 30, 30, 3735, 0, 1, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 0, 463, 1, 0, 0, 0, 0, 465, 1, 0, 0, 0, 0, 467, 1, 0, 0, 0, 0, 469, 1, 0, 0, 0, 0, 471, 1, 0, 0, 0, 0, 473, 1, 0, 0, 0, 0, 475, 1, 0, 0, 0, 0, 477, 1, 0, 0, 0, 0, 479, 1, 0, 0, 0, 0, 481, 1, 0, 0, 0, 0, 483, 1, 0, 0, 0, 0, 485, 1, 0, 0, 0, 0, 487, 1, 0, 0, 0, 0, 489, 1, 0, 0, 0, 0, 491, 1, 0, 0, 0, 0, 493, 1, 0, 0, 0, 0, 495, 1, 0, 0, 0, 0, 497, 1, 0, 0, 0, 0, 499, 1, 0, 0, 0, 0, 501, 1, 0, 0, 0, 0, 503, 1, 0, 0, 0, 0, 505, 1, 0, 0, 0, 0, 507, 1, 0, 0, 0, 0, 509, 1, 0, 0, 0, 0, 511, 1, 0, 0, 0, 0, 513, 1, 0, 0, 0, 0, 515, 1, 0, 0, 0, 0, 517, 1, 0, 0, 0, 0, 519, 1, 0, 0, 0, 0, 521, 1, 0, 0, 0, 0, 523, 1, 0, 0, 0, 0, 525, 1, 0, 0, 0, 0, 527, 1, 0, 0, 0, 0, 529, 1, 0, 0, 0, 0, 531, 1, 0, 0, 0, 0, 533, 1, 0, 0, 0, 0, 535, 1, 0, 0, 0, 0, 537, 1, 0, 0, 0, 0, 539, 1, 0, 0, 0, 0, 541, 1, 0, 0, 0, 0, 543, 1, 0, 0, 0, 0, 545, 1, 0, 0, 0, 0, 547, 1, 0, 0, 0, 0, 549, 1, 0, 0, 0, 0, 551, 1, 0, 0, 0, 0, 553, 1, 0, 0, 0, 0, 555, 1, 0, 0, 0, 0, 557, 1, 0, 0, 0, 0, 559, 1, 0, 0, 0, 0, 561, 1, 0, 0, 0, 0, 563, 1, 0, 0, 0, 0, 565, 1, 0, 0, 0, 0, 567, 1, 0, 0, 0, 0, 569, 1, 0, 0, 0, 0, 571, 1, 0, 0, 0, 0, 573, 1, 0, 0, 0, 0, 575, 1, 0, 0, 0, 0, 577, 1, 0, 0, 0, 0, 579, 1, 0, 0, 0, 0, 581, 1, 0, 0, 0, 0, 583, 1, 0, 0, 0, 0, 585, 1, 0, 0, 0, 0, 587, 1, 0, 0, 0, 0, 589, 1, 0, 0, 0, 0, 591, 1, 0, 0, 0, 0, 593, 1, 0, 0, 0, 0, 595, 1, 0, 0, 0, 0, 597, 1, 0, 0, 0, 0, 599, 1, 0, 0, 0, 0, 601, 1, 0, 0, 0, 0, 603, 1, 0, 0, 0, 0, 605, 1, 0, 0, 0, 0, 607, 1, 0, 0, 0, 0, 609, 1, 0, 0, 0, 0, 611, 1, 0, 0, 0, 0, 613, 1, 0, 0, 0, 0, 615, 1, 0, 0, 0, 0, 617, 1, 0, 0, 0, 0, 619, 1, 0, 0, 0, 0, 621, 1, 0, 0, 0, 0, 623, 1, 0, 0, 0, 0, 625, 1, 0, 0, 0, 0, 627, 1, 0, 0, 0, 0, 629, 1, 0, 0, 0, 0, 631, 1, 0, 0, 0, 0, 633, 1, 0, 0, 0, 0, 635, 1, 0, 0, 0, 0, 637, 1, 0, 0, 0, 0, 639, 1, 0, 0, 0, 0, 641, 1, 0, 0, 0, 0, 643, 1, 0, 0, 0, 0, 645, 1, 0, 0, 0, 0, 647, 1, 0, 0, 0, 0, 649, 1, 0, 0, 0, 0, 651, 1, 0, 0, 0, 0, 653, 1, 0, 0, 0, 0, 655, 1, 0, 0, 0, 0, 657, 1, 0, 0, 0, 0, 659, 1, 0, 0, 0, 0, 661, 1, 0, 0, 0, 0, 663, 1, 0, 0, 0, 0, 665, 1, 0, 0, 0, 0, 667, 1, 0, 0, 0, 0, 669, 1, 0, 0, 0, 0, 671, 1, 0, 0, 0, 0, 673, 1, 0, 0, 0, 0, 675, 1, 0, 0, 0, 0, 677, 1, 0, 0, 0, 0, 679, 1, 0, 0, 0, 0, 681, 1, 0, 0, 0, 0, 683, 1, 0, 0, 0, 0, 685, 1, 0, 0, 0, 0, 687, 1, 0, 0, 0, 0, 689, 1, 0, 0, 0, 0, 691, 1, 0, 0, 0, 0, 693, 1, 0, 0, 0, 0, 695, 1, 0, 0, 0, 0, 697, 1, 0, 0, 0, 0, 699, 1, 0, 0, 0, 0, 703, 1, 0, 0, 0, 0, 709, 1, 0, 0, 0, 0, 711, 1, 0, 0, 0, 0, 721, 1, 0, 0, 0, 0, 723, 1, 0, 0, 0, 0, 725, 1, 0, 0, 0, 0, 727, 1, 0, 0, 0, 0, 729, 1, 0, 0, 0, 0, 731, 1, 0, 0, 0, 0, 733, 1, 0, 0, 0, 0, 735, 1, 0, 0, 0, 0, 737, 1, 0, 0, 0, 0, 739, 1, 0, 0, 0, 0, 741, 1, 0, 0, 0, 0, 743, 1, 0, 0, 0, 0, 745, 1, 0, 0, 0, 0, 747, 1, 0, 0, 0, 0, 749, 1, 0, 0, 0, 0, 751, 1, 0, 0, 0, 0, 753, 1, 0, 0, 0, 0, 755, 1, 0, 0, 0, 0, 757, 1, 0, 0, 0, 0, 759, 1, 0, 0, 0, 0, 761, 1, 0, 0, 0, 0, 763, 1, 0, 0, 0, 0, 765, 1, 0, 0, 0, 0, 767, 1, 0, 0, 0, 0, 769, 1, 0, 0, 0, 0, 771, 1, 0, 0, 0, 0, 773, 1, 0, 0, 0, 0, 775, 1, 0, 0, 0, 0, 777, 1, 0, 0, 0, 0, 779, 1, 0, 0, 0, 0, 781, 1, 0, 0, 0, 0, 783, 1, 0, 0, 0, 0, 785, 1, 0, 0, 0, 0, 787, 1, 0, 0, 0, 0, 789, 1, 0, 0, 0, 0, 791, 1, 0, 0, 0, 0, 793, 1, 0, 0, 0, 0, 795, 1, 0, 0, 0, 0, 797, 1, 0, 0, 0, 0, 799, 1, 0, 0, 0, 0, 801, 1, 0, 0, 0, 0, 803, 1, 0, 0, 0, 0, 805, 1, 0, 0, 0, 0, 807, 1, 0, 0, 0, 0, 809, 1, 0, 0, 0, 0, 811, 1, 0, 0, 0, 0, 813, 1, 0, 0, 0, 0, 815, 1, 0, 0, 0, 0, 817, 1, 0, 0, 0, 0, 819, 1, 0, 0, 0, 0, 821, 1, 0, 0, 0, 0, 823, 1, 0, 0, 0, 0, 825, 1, 0, 0, 0, 0, 827, 1, 0, 0, 0, 0, 829, 1, 0, 0, 0, 0, 831, 1, 0, 0, 0, 0, 833, 1, 0, 0, 0, 0, 835, 1, 0, 0, 0, 0, 837, 1, 0, 0, 0, 0, 847, 1, 0, 0, 0, 0, 849, 1, 0, 0, 0, 0, 851, 1, 0, 0, 0, 0, 853, 1, 0, 0, 0, 0, 855, 1, 0, 0, 0, 1, 889, 1, 0, 0, 0, 3, 891, 1, 0, 0, 0, 5, 909, 1, 0, 0, 0, 7, 912, 1, 0, 0, 0, 9, 917, 1, 0, 0, 0, 11, 922, 1, 0, 0, 0, 13, 926, 1, 0, 0, 0, 15, 928, 1, 0, 0, 0, 17, 937, 1, 0, 0, 0, 19, 946, 1, 0, 0, 0, 21, 957, 1, 0, 0, 0, 23, 963, 1, 0, 0, 0, 25, 969, 1, 0, 0, 0, 27, 984, 1, 0, 0, 0, 29, 986, 1, 0, 0, 0, 31, 989, 1, 0, 0, 0, 33, 992, 1, 0, 0, 0, 35, 995, 1, 0, 0, 0, 37, 998, 1, 0, 0, 0, 39, 1001, 1, 0, 0, 0, 41, 1004, 1, 0, 0, 0, 43, 1007, 1, 0, 0, 0, 45, 1010, 1, 0, 0, 0, 47, 1013, 1, 0, 0, 0, 49, 1020, 1, 0, 0, 0, 51, 1029, 1, 0, 0, 0, 53, 1058, 1, 0, 0, 0, 55, 1061, 1, 0, 0, 0, 57, 1063, 1, 0, 0, 0, 59, 1066, 1, 0, 0, 0, 61, 1069, 1, 0, 0, 0, 63, 1071, 1, 0, 0, 0, 65, 1074, 1, 0, 0, 0, 67, 1077, 1, 0, 0, 0, 69, 1080, 1, 0, 0, 0, 71, 1090, 1, 0, 0, 0, 73, 1092, 1, 0, 0, 0, 75, 1098, 1, 0, 0, 0, 77, 1100, 1, 0, 0, 0, 79, 1110, 1, 0, 0, 0, 81, 1114, 1, 0, 0, 0, 83, 1118, 1, 0, 0, 0, 85, 1129, 1, 0, 0, 0, 87, 1140, 1, 0, 0, 0, 89, 1151, 1, 0, 0, 0, 91, 1153, 1, 0, 0, 0, 93, 1157, 1, 0, 0, 0, 95, 1162, 1, 0, 0, 0, 97, 1166, 1, 0, 0, 0, 99, 1180, 1, 0, 0, 0, 101, 1184, 1, 0, 0, 0, 103, 1188, 1, 0, 0, 0, 105, 1194, 1, 0, 0, 0, 107, 1197, 1, 0, 0, 0, 109, 1201, 1, 0, 0, 0, 111, 1211, 1, 0, 0, 0, 113, 1216, 1, 0, 0, 0, 115, 1219, 1, 0, 0, 0, 117, 1224, 1, 0, 0, 0, 119, 1228, 1, 0, 0, 0, 121, 1232, 1, 0, 0, 0, 123, 1239, 1, 0, 0, 0, 125, 1246, 1, 0, 0, 0, 127, 1251, 1, 0, 0, 0, 129, 1259, 1, 0, 0, 0, 131, 1264, 1, 0, 0, 0, 133, 1270, 1, 0, 0, 0, 135, 1273, 1, 0, 0, 0, 137, 1285, 1, 0, 0, 0, 139, 1291, 1, 0, 0, 0, 141, 1296, 1, 0, 0, 0, 143, 1308, 1, 0, 0, 0, 145, 1313, 1, 0, 0, 0, 147, 1318, 1, 0, 0, 0, 149, 1323, 1, 0, 0, 0, 151, 1331, 1, 0, 0, 0, 153, 1336, 1, 0, 0, 0, 155, 1348, 1, 0, 0, 0, 157, 1365, 1, 0, 0, 0, 159, 1381, 1, 0, 0, 0, 161, 1387, 1, 0, 0, 0, 163, 1396, 1, 0, 0, 0, 165, 1409, 1, 0, 0, 0, 167, 1416, 1, 0, 0, 0, 169, 1421, 1, 0, 0, 0, 171, 1425, 1, 0, 0, 0, 173, 1430, 1, 0, 0, 0, 175, 1434, 1, 0, 0, 0, 177, 1440, 1, 0, 0, 0, 179, 1447, 1, 0, 0, 0, 181, 1460, 1, 0, 0, 0, 183, 1474, 1, 0, 0, 0, 185, 1497, 1, 0, 0, 0, 187, 1512, 1, 0, 0, 0, 189, 1525, 1, 0, 0, 0, 191, 1543, 1, 0, 0, 0, 193, 1548, 1, 0, 0, 0, 195, 1557, 1, 0, 0, 0, 197, 1561, 1, 0, 0, 0, 199, 1565, 1, 0, 0, 0, 201, 1573, 1, 0, 0, 0, 203, 1581, 1, 0, 0, 0, 205, 1588, 1, 0, 0, 0, 207, 1593, 1, 0, 0, 0, 209, 1604, 1, 0, 0, 0, 211, 1611, 1, 0, 0, 0, 213, 1620, 1, 0, 0, 0, 215, 1627, 1, 0, 0, 0, 217, 1632, 1, 0, 0, 0, 219, 1641, 1, 0, 0, 0, 221, 1658, 1, 0, 0, 0, 223, 1669, 1, 0, 0, 0, 225, 1674, 1, 0, 0, 0, 227, 1678, 1, 0, 0, 0, 229, 1685, 1, 0, 0, 0, 231, 1692, 1, 0, 0, 0, 233, 1696, 1, 0, 0, 0, 235, 1703, 1, 0, 0, 0, 237, 1710, 1, 0, 0, 0, 239, 1716, 1, 0, 0, 0, 241, 1724, 1, 0, 0, 0, 243, 1732, 1, 0, 0, 0, 245, 1740, 1, 0, 0, 0, 247, 1749, 1, 0, 0, 0, 249, 1758, 1, 0, 0, 0, 251, 1764, 1, 0, 0, 0, 253, 1768, 1, 0, 0, 0, 255, 1773, 1, 0, 0, 0, 257, 1779, 1, 0, 0, 0, 259, 1786, 1, 0, 0, 0, 261, 1797, 1, 0, 0, 0, 263, 1817, 1, 0, 0, 0, 265, 1829, 1, 0, 0, 0, 267, 1834, 1, 0, 0, 0, 269, 1837, 1, 0, 0, 0, 271, 1840, 1, 0, 0, 0, 273, 1847, 1, 0, 0, 0, 275, 1851, 1, 0, 0, 0, 277, 1859, 1, 0, 0, 0, 279, 1864, 1, 0, 0, 0, 281, 1873, 1, 0, 0, 0, 283, 1879, 1, 0, 0, 0, 285, 1889, 1, 0, 0, 0, 287, 1895, 1, 0, 0, 0, 289, 1905, 1, 0, 0, 0, 291, 1911, 1, 0, 0, 0, 293, 1921, 1, 0, 0, 0, 295, 1928, 1, 0, 0, 0, 297, 1939, 1, 0, 0, 0, 299, 1946, 1, 0, 0, 0, 301, 1957, 1, 0, 0, 0, 303, 1967, 1, 0, 0, 0, 305, 1976, 1, 0, 0, 0, 307, 1979, 1, 0, 0, 0, 309, 1987, 1, 0, 0, 0, 311, 1992, 1, 0, 0, 0, 313, 1996, 1, 0, 0, 0, 315, 2001, 1, 0, 0, 0, 317, 2007, 1, 0, 0, 0, 319, 2012, 1, 0, 0, 0, 321, 2015, 1, 0, 0, 0, 323, 2021, 1, 0, 0, 0, 325, 2036, 1, 0, 0, 0, 327, 2047, 1, 0, 0, 0, 329, 2063, 1, 0, 0, 0, 331, 2067, 1, 0, 0, 0, 333, 2073, 1, 0, 0, 0, 335, 2079, 1, 0, 0, 0, 337, 2085, 1, 0, 0, 0, 339, 2091, 1, 0, 0, 0, 341, 2095, 1, 0, 0, 0, 343, 2099, 1, 0, 0, 0, 345, 2106, 1, 0, 0, 0, 347, 2110, 1, 0, 0, 0, 349, 2116, 1, 0, 0, 0, 351, 2121, 1, 0, 0, 0, 353, 2130, 1, 0, 0, 0, 355, 2140, 1, 0, 0, 0, 357, 2144, 1, 0, 0, 0, 359, 2152, 1, 0, 0, 0, 361, 2157, 1, 0, 0, 0, 363, 2163, 1, 0, 0, 0, 365, 2170, 1, 0, 0, 0, 367, 2183, 1, 0, 0, 0, 369, 2186, 1, 0, 0, 0, 371, 2193, 1, 0, 0, 0, 373, 2202, 1, 0, 0, 0, 375, 2205, 1, 0, 0, 0, 377, 2211, 1, 0, 0, 0, 379, 2221, 1, 0, 0, 0, 381, 2231, 1, 0, 0, 0, 383, 2242, 1, 0, 0, 0, 385, 2247, 1, 0, 0, 0, 387, 2259, 1, 0, 0, 0, 389, 2265, 1, 0, 0, 0, 391, 2281, 1, 0, 0, 0, 393, 2297, 1, 0, 0, 0, 395, 2303, 1, 0, 0, 0, 397, 2313, 1, 0, 0, 0, 399, 2329, 1, 0, 0, 0, 401, 2337, 1, 0, 0, 0, 403, 2342, 1, 0, 0, 0, 405, 2349, 1, 0, 0, 0, 407, 2356, 1, 0, 0, 0, 409, 2364, 1, 0, 0, 0, 411, 2370, 1, 0, 0, 0, 413, 2377, 1, 0, 0, 0, 415, 2383, 1, 0, 0, 0, 417, 2392, 1, 0, 0, 0, 419, 2398, 1, 0, 0, 0, 421, 2403, 1, 0, 0, 0, 423, 2410, 1, 0, 0, 0, 425, 2417, 1, 0, 0, 0, 427, 2424, 1, 0, 0, 0, 429, 2432, 1, 0, 0, 0, 431, 2445, 1, 0, 0, 0, 433, 2449, 1, 0, 0, 0, 435, 2456, 1, 0, 0, 0, 437, 2460, 1, 0, 0, 0, 439, 2465, 1, 0, 0, 0, 441, 2470, 1, 0, 0, 0, 443, 2475, 1, 0, 0, 0, 445, 2481, 1, 0, 0, 0, 447, 2490, 1, 0, 0, 0, 449, 2495, 1, 0, 0, 0, 451, 2501, 1, 0, 0, 0, 453, 2512, 1, 0, 0, 0, 455, 2524, 1, 0, 0, 0, 457, 2531, 1, 0, 0, 0, 459, 2535, 1, 0, 0, 0, 461, 2539, 1, 0, 0, 0, 463, 2544, 1, 0, 0, 0, 465, 2549, 1, 0, 0, 0, 467, 2554, 1, 0, 0, 0, 469, 2564, 1, 0, 0, 0, 471, 2573, 1, 0, 0, 0, 473, 2578, 1, 0, 0, 0, 475, 2584, 1, 0, 0, 0, 477, 2592, 1, 0, 0, 0, 479, 2597, 1, 0, 0, 0, 481, 2603, 1, 0, 0, 0, 483, 2610, 1, 0, 0, 0, 485, 2617, 1, 0, 0, 0, 487, 2624, 1, 0, 0, 0, 489, 2632, 1, 0, 0, 0, 491, 2640, 1, 0, 0, 0, 493, 2646, 1, 0, 0, 0, 495, 2655, 1, 0, 0, 0, 497, 2661, 1, 0, 0, 0, 499, 2665, 1, 0, 0, 0, 501, 2675, 1, 0, 0, 0, 503, 2681, 1, 0, 0, 0, 505, 2691, 1, 0, 0, 0, 507, 2699, 1, 0, 0, 0, 509, 2708, 1, 0, 0, 0, 511, 2713, 1, 0, 0, 0, 513, 2719, 1, 0, 0, 0, 515, 2724, 1, 0, 0, 0, 517, 2728, 1, 0, 0, 0, 519, 2733, 1, 0, 0, 0, 521, 2739, 1, 0, 0, 0, 523, 2745, 1, 0, 0, 0, 525, 2760, 1, 0, 0, 0, 527, 2771, 1, 0, 0, 0, 529, 2780, 1, 0, 0, 0, 531, 2790, 1, 0, 0, 0, 533, 2801, 1, 0, 0, 0, 535, 2807, 1, 0, 0, 0, 537, 2815, 1, 0, 0, 0, 539, 2821, 1, 0, 0, 0, 541, 2827, 1, 0, 0, 0, 543, 2838, 1, 0, 0, 0, 545, 2851, 1, 0, 0, 0, 547, 2864, 1, 0, 0, 0, 549, 2869, 1, 0, 0, 0, 551, 2879, 1, 0, 0, 0, 553, 2886, 1, 0, 0, 0, 555, 2892, 1, 0, 0, 0, 557, 2901, 1, 0, 0, 0, 559, 2910, 1, 0, 0, 0, 561, 2920, 1, 0, 0, 0, 563, 2926, 1, 0, 0, 0, 565, 2934, 1, 0, 0, 0, 567, 2943, 1, 0, 0, 0, 569, 2950, 1, 0, 0, 0, 571, 2958, 1, 0, 0, 0, 573, 2961, 1, 0, 0, 0, 575, 2966, 1, 0, 0, 0, 577, 2976, 1, 0, 0, 0, 579, 2986, 1, 0, 0, 0, 581, 2994, 1, 0, 0, 0, 583, 3002, 1, 0, 0, 0, 585, 3008, 1, 0, 0, 0, 587, 3016, 1, 0, 0, 0, 589, 3026, 1, 0, 0, 0, 591, 3033, 1, 0, 0, 0, 593, 3040, 1, 0, 0, 0, 595, 3050, 1, 0, 0, 0, 597, 3062, 1, 0, 0, 0, 599, 3071, 1, 0, 0, 0, 601, 3078, 1, 0, 0, 0, 603, 3083, 1, 0, 0, 0, 605, 3090, 1, 0, 0, 0, 607, 3098, 1, 0, 0, 0, 609, 3106, 1, 0, 0, 0, 611, 3115, 1, 0, 0, 0, 613, 3126, 1, 0, 0, 0, 615, 3138, 1, 0, 0, 0, 617, 3148, 1, 0, 0, 0, 619, 3157, 1, 0, 0, 0, 621, 3162, 1, 0, 0, 0, 623, 3168, 1, 0, 0, 0, 625, 3176, 1, 0, 0, 0, 627, 3185, 1, 0, 0, 0, 629, 3191, 1, 0, 0, 0, 631, 3197, 1, 0, 0, 0, 633, 3204, 1, 0, 0, 0, 635, 3209, 1, 0, 0, 0, 637, 3215, 1, 0, 0, 0, 639, 3223, 1, 0, 0, 0, 641, 3230, 1, 0, 0, 0, 643, 3235, 1, 0, 0, 0, 645, 3239, 1, 0, 0, 0, 647, 3243, 1, 0, 0, 0, 649, 3248, 1, 0, 0, 0, 651, 3253, 1, 0, 0, 0, 653, 3256, 1, 0, 0, 0, 655, 3261, 1, 0, 0, 0, 657, 3272, 1, 0, 0, 0, 659, 3277, 1, 0, 0, 0, 661, 3288, 1, 0, 0, 0, 663, 3297, 1, 0, 0, 0, 665, 3302, 1, 0, 0, 0, 667, 3315, 1, 0, 0, 0, 669, 3329, 1, 0, 0, 0, 671, 3340, 1, 0, 0, 0, 673, 3349, 1, 0, 0, 0, 675, 3356, 1, 0, 0, 0, 677, 3363, 1, 0, 0, 0, 679, 3369, 1, 0, 0, 0, 681, 3374, 1, 0, 0, 0, 683, 3377, 1, 0, 0, 0, 685, 3383, 1, 0, 0, 0, 687, 3395, 1, 0, 0, 0, 689, 3400, 1, 0, 0, 0, 691, 3411, 1, 0, 0, 0, 693, 3418, 1, 0, 0, 0, 695, 3423, 1, 0, 0, 0, 697, 3431, 1, 0, 0, 0, 699, 3437, 1, 0, 0, 0, 701, 3444, 1, 0, 0, 0, 703, 3446, 1, 0, 0, 0, 705, 3454, 1, 0, 0, 0, 707, 3460, 1, 0, 0, 0, 709, 3462, 1, 0, 0, 0, 711, 3465, 1, 0, 0, 0, 713, 3470, 1, 0, 0, 0, 715, 3472, 1, 0, 0, 0, 717, 3474, 1, 0, 0, 0, 719, 3476, 1, 0, 0, 0, 721, 3478, 1, 0, 0, 0, 723, 3482, 1, 0, 0, 0, 725, 3486, 1, 0, 0, 0, 727, 3490, 1, 0, 0, 0, 729, 3493, 1, 0, 0, 0, 731, 3496, 1, 0, 0, 0, 733, 3499, 1, 0, 0, 0, 735, 3502, 1, 0, 0, 0, 737, 3505, 1, 0, 0, 0, 739, 3508, 1, 0, 0, 0, 741, 3511, 1, 0, 0, 0, 743, 3515, 1, 0, 0, 0, 745, 3519, 1, 0, 0, 0, 747, 3523, 1, 0, 0, 0, 749, 3527, 1, 0, 0, 0, 751, 3531, 1, 0, 0, 0, 753, 3534, 1, 0, 0, 0, 755, 3537, 1, 0, 0, 0, 757, 3540, 1, 0, 0, 0, 759, 3543, 1, 0, 0, 0, 761, 3546, 1, 0, 0, 0, 763, 3549, 1, 0, 0, 0, 765, 3552, 1, 0, 0, 0, 767, 3555, 1, 0, 0, 0, 769, 3558, 1, 0, 0, 0, 771, 3562, 1, 0, 0, 0, 773, 3565, 1, 0, 0, 0, 775, 3569, 1, 0, 0, 0, 777, 3572, 1, 0, 0, 0, 779, 3575, 1, 0, 0, 0, 781, 3578, 1, 0, 0, 0, 783, 3580, 1, 0, 0, 0, 785, 3582, 1, 0, 0, 0, 787, 3584, 1, 0, 0, 0, 789, 3586, 1, 0, 0, 0, 791, 3588, 1, 0, 0, 0, 793, 3590, 1, 0, 0, 0, 795, 3592, 1, 0, 0, 0, 797, 3594, 1, 0, 0, 0, 799, 3596, 1, 0, 0, 0, 801, 3598, 1, 0, 0, 0, 803, 3600, 1, 0, 0, 0, 805, 3602, 1, 0, 0, 0, 807, 3604, 1, 0, 0, 0, 809, 3606, 1, 0, 0, 0, 811, 3608, 1, 0, 0, 0, 813, 3610, 1, 0, 0, 0, 815, 3612, 1, 0, 0, 0, 817, 3614, 1, 0, 0, 0, 819, 3616, 1, 0, 0, 0, 821, 3618, 1, 0, 0, 0, 823, 3620, 1, 0, 0, 0, 825, 3622, 1, 0, 0, 0, 827, 3624, 1, 0, 0, 0, 829, 3626, 1, 0, 0, 0, 831, 3628, 1, 0, 0, 0, 833, 3630, 1, 0, 0, 0, 835, 3632, 1, 0, 0, 0, 837, 3634, 1, 0, 0, 0, 839, 3636, 1, 0, 0, 0, 841, 3638, 1, 0, 0, 0, 843, 3640, 1, 0, 0, 0, 845, 3642, 1, 0, 0, 0, 847, 3645, 1, 0, 0, 0, 849, 3662, 1, 0, 0, 0, 851, 3664, 1, 0, 0, 0, 853, 3678, 1, 0, 0, 0, 855, 3689, 1, 0, 0, 0, 857, 3700, 1, 0, 0, 0, 859, 3702, 1, 0, 0, 0, 861, 3704, 1, 0, 0, 0, 863, 3706, 1, 0, 0, 0, 865, 3708, 1, 0, 0, 0, 867, 3710, 1, 0, 0, 0, 869, 3712, 1, 0, 0, 0, 871, 3714, 1, 0, 0, 0, 873, 3716, 1, 0, 0, 0, 875, 3718, 1, 0, 0, 0, 877, 3720, 1, 0, 0, 0, 879, 3722, 1, 0, 0, 0, 881, 890, 3, 765, 382, 0, 882, 883, 7, 0, 0, 0, 883, 884, 7, 1, 0, 0, 884, 885, 7, 2, 0, 0, 885, 886, 7, 3, 0, 0, 886, 887, 7, 0, 0, 0, 887, 888, 7, 4, 0, 0, 888, 890, 7, 5, 0, 0, 889, 881, 1, 0, 0, 0, 889, 882, 1, 0, 0, 0, 890, 2, 1, 0, 0, 0, 891, 892, 3, 701, 350, 0, 892, 4, 1, 0, 0, 0, 893, 894, 7, 6, 0, 0, 894, 895, 7, 7, 0, 0, 895, 896, 7, 8, 0, 0, 896, 910, 7, 4, 0, 0, 897, 898, 7, 9, 0, 0, 898, 899, 7, 10, 0, 0, 899, 900, 7, 3, 0, 0, 900, 901, 7, 5, 0, 0, 901, 910, 7, 4, 0, 0, 902, 903, 7, 8, 0, 0, 903, 904, 7, 11, 0, 0, 904, 905, 7, 12, 0, 0, 905, 906, 7, 11, 0, 0, 906, 907, 7, 13, 0, 0, 907, 908, 7, 14, 0, 0, 908, 910, 7, 11, 0, 0, 909, 893, 1, 0, 0, 0, 909, 897, 1, 0, 0, 0, 909, 902, 1, 0, 0, 0, 910, 6, 1, 0, 0, 0, 911, 913, 3, 13, 6, 0, 912, 911, 1, 0, 0, 0, 912, 913, 1, 0, 0, 0, 913, 914, 1, 0, 0, 0, 914, 915, 3, 15, 7, 0, 915, 8, 1, 0, 0, 0, 916, 918, 3, 13, 6, 0, 917, 916, 1, 0, 0, 0, 917, 918, 1, 0, 0, 0, 918, 919, 1, 0, 0, 0, 919, 920, 3, 17, 8, 0, 920, 10, 1, 0, 0, 0, 921, 923, 3, 13, 6, 0, 922, 921, 1, 0, 0, 0, 922, 923, 1, 0, 0, 0, 923, 924, 1, 0, 0, 0, 924, 925, 3, 19, 9, 0, 925, 12, 1, 0, 0, 0, 926, 927, 3, 789, 394, 0, 927, 14, 1, 0, 0, 0, 928, 932, 3, 821, 410, 0, 929, 931, 3, 21, 10, 0, 930, 929, 1, 0, 0, 0, 931, 934, 1, 0, 0, 0, 932, 930, 1, 0, 0, 0, 932, 933, 1, 0, 0, 0, 933, 935, 1, 0, 0, 0, 934, 932, 1, 0, 0, 0, 935, 936, 3, 821, 410, 0, 936, 16, 1, 0, 0, 0, 937, 941, 3, 793, 396, 0, 938, 940, 3, 23, 11, 0, 939, 938, 1, 0, 0, 0, 940, 943, 1, 0, 0, 0, 941, 939, 1, 0, 0, 0, 941, 942, 1, 0, 0, 0, 942, 944, 1, 0, 0, 0, 943, 941, 1, 0, 0, 0, 944, 945, 3, 793, 396, 0, 945, 18, 1, 0, 0, 0, 946, 950, 3, 801, 400, 0, 947, 949, 3, 25, 12, 0, 948, 947, 1, 0, 0, 0, 949, 952, 1, 0, 0, 0, 950, 948, 1, 0, 0, 0, 950, 951, 1, 0, 0, 0, 951, 953, 1, 0, 0, 0, 952, 950, 1, 0, 0, 0, 953, 954, 3, 801, 400, 0, 954, 20, 1, 0, 0, 0, 955, 958, 3, 27, 13, 0, 956, 958, 8, 15, 0, 0, 957, 955, 1, 0, 0, 0, 957, 956, 1, 0, 0, 0, 958, 959, 1, 0, 0, 0, 959, 957, 1, 0, 0, 0, 959, 960, 1, 0, 0, 0, 960, 22, 1, 0, 0, 0, 961, 964, 3, 27, 13, 0, 962, 964, 8, 16, 0, 0, 963, 961, 1, 0, 0, 0, 963, 962, 1, 0, 0, 0, 964, 965, 1, 0, 0, 0, 965, 963, 1, 0, 0, 0, 965, 966, 1, 0, 0, 0, 966, 24, 1, 0, 0, 0, 967, 970, 3, 27, 13, 0, 968, 970, 8, 17, 0, 0, 969, 967, 1, 0, 0, 0, 969, 968, 1, 0, 0, 0, 970, 971, 1, 0, 0, 0, 971, 969, 1, 0, 0, 0, 971, 972, 1, 0, 0, 0, 972, 26, 1, 0, 0, 0, 973, 985, 3, 29, 14, 0, 974, 985, 3, 31, 15, 0, 975, 985, 3, 33, 16, 0, 976, 985, 3, 35, 17, 0, 977, 985, 3, 37, 18, 0, 978, 985, 3, 39, 19, 0, 979, 985, 3, 41, 20, 0, 980, 985, 3, 43, 21, 0, 981, 985, 3, 45, 22, 0, 982, 985, 3, 47, 23, 0, 983, 985, 3, 49, 24, 0, 984, 973, 1, 0, 0, 0, 984, 974, 1, 0, 0, 0, 984, 975, 1, 0, 0, 0, 984, 976, 1, 0, 0, 0, 984, 977, 1, 0, 0, 0, 984, 978, 1, 0, 0, 0, 984, 979, 1, 0, 0, 0, 984, 980, 1, 0, 0, 0, 984, 981, 1, 0, 0, 0, 984, 982, 1, 0, 0, 0, 984, 983, 1, 0, 0, 0, 985, 28, 1, 0, 0, 0, 986, 987, 3, 823, 411, 0, 987, 988, 3, 823, 411, 0, 988, 30, 1, 0, 0, 0, 989, 990, 3, 823, 411, 0, 990, 991, 3, 821, 410, 0, 991, 32, 1, 0, 0, 0, 992, 993, 3, 823, 411, 0, 993, 994, 3, 793, 396, 0, 994, 34, 1, 0, 0, 0, 995, 996, 3, 823, 411, 0, 996, 997, 3, 801, 400, 0, 997, 36, 1, 0, 0, 0, 998, 999, 3, 823, 411, 0, 999, 1000, 7, 6, 0, 0, 1000, 38, 1, 0, 0, 0, 1001, 1002, 3, 823, 411, 0, 1002, 1003, 7, 18, 0, 0, 1003, 40, 1, 0, 0, 0, 1004, 1005, 3, 823, 411, 0, 1005, 1006, 7, 11, 0, 0, 1006, 42, 1, 0, 0, 0, 1007, 1008, 3, 823, 411, 0, 1008, 1009, 7, 7, 0, 0, 1009, 44, 1, 0, 0, 0, 1010, 1011, 3, 823, 411, 0, 1011, 1012, 7, 9, 0, 0, 1012, 46, 1, 0, 0, 0, 1013, 1014, 3, 823, 411, 0, 1014, 1015, 7, 8, 0, 0, 1015, 1016, 3, 839, 419, 0, 1016, 1017, 3, 839, 419, 0, 1017, 1018, 3, 839, 419, 0, 1018, 1019, 3, 839, 419, 0, 1019, 48, 1, 0, 0, 0, 1020, 1021, 3, 823, 411, 0, 1021, 1022, 7, 8, 0, 0, 1022, 1023, 3, 839, 419, 0, 1023, 1024, 3, 839, 419, 0, 1024, 1025, 3, 839, 419, 0, 1025, 1026, 3, 839, 419, 0, 1026, 1027, 3, 839, 419, 0, 1027, 1028, 3, 839, 419, 0, 1028, 50, 1, 0, 0, 0, 1029, 1030, 7, 19, 0, 0, 1030, 1034, 3, 821, 410, 0, 1031, 1033, 3, 865, 432, 0, 1032, 1031, 1, 0, 0, 0, 1033, 1036, 1, 0, 0, 0, 1034, 1032, 1, 0, 0, 0, 1034, 1035, 1, 0, 0, 0, 1035, 1053, 1, 0, 0, 0, 1036, 1034, 1, 0, 0, 0, 1037, 1041, 3, 839, 419, 0, 1038, 1040, 3, 865, 432, 0, 1039, 1038, 1, 0, 0, 0, 1040, 1043, 1, 0, 0, 0, 1041, 1039, 1, 0, 0, 0, 1041, 1042, 1, 0, 0, 0, 1042, 1044, 1, 0, 0, 0, 1043, 1041, 1, 0, 0, 0, 1044, 1048, 3, 839, 419, 0, 1045, 1047, 3, 865, 432, 0, 1046, 1045, 1, 0, 0, 0, 1047, 1050, 1, 0, 0, 0, 1048, 1046, 1, 0, 0, 0, 1048, 1049, 1, 0, 0, 0, 1049, 1052, 1, 0, 0, 0, 1050, 1048, 1, 0, 0, 0, 1051, 1037, 1, 0, 0, 0, 1052, 1055, 1, 0, 0, 0, 1053, 1051, 1, 0, 0, 0, 1053, 1054, 1, 0, 0, 0, 1054, 1056, 1, 0, 0, 0, 1055, 1053, 1, 0, 0, 0, 1056, 1057, 3, 821, 410, 0, 1057, 52, 1, 0, 0, 0, 1058, 1059, 3, 73, 36, 0, 1059, 1060, 3, 71, 35, 0, 1060, 54, 1, 0, 0, 0, 1061, 1062, 3, 73, 36, 0, 1062, 56, 1, 0, 0, 0, 1063, 1064, 3, 73, 36, 0, 1064, 1065, 3, 89, 44, 0, 1065, 58, 1, 0, 0, 0, 1066, 1067, 3, 79, 39, 0, 1067, 1068, 3, 71, 35, 0, 1068, 60, 1, 0, 0, 0, 1069, 1070, 3, 79, 39, 0, 1070, 62, 1, 0, 0, 0, 1071, 1072, 3, 79, 39, 0, 1072, 1073, 3, 89, 44, 0, 1073, 64, 1, 0, 0, 0, 1074, 1075, 3, 69, 34, 0, 1075, 1076, 3, 71, 35, 0, 1076, 66, 1, 0, 0, 0, 1077, 1078, 3, 69, 34, 0, 1078, 1079, 3, 89, 44, 0, 1079, 68, 1, 0, 0, 0, 1080, 1087, 3, 841, 420, 0, 1081, 1083, 3, 835, 417, 0, 1082, 1081, 1, 0, 0, 0, 1082, 1083, 1, 0, 0, 0, 1083, 1084, 1, 0, 0, 0, 1084, 1086, 3, 841, 420, 0, 1085, 1082, 1, 0, 0, 0, 1086, 1089, 1, 0, 0, 0, 1087, 1085, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 70, 1, 0, 0, 0, 1089, 1087, 1, 0, 0, 0, 1090, 1091, 7, 1, 0, 0, 1091, 72, 1, 0, 0, 0, 1092, 1093, 3, 75, 37, 0, 1093, 1094, 7, 4, 0, 0, 1094, 1095, 3, 77, 38, 0, 1095, 74, 1, 0, 0, 0, 1096, 1099, 3, 79, 39, 0, 1097, 1099, 3, 69, 34, 0, 1098, 1096, 1, 0, 0, 0, 1098, 1097, 1, 0, 0, 0, 1099, 76, 1, 0, 0, 0, 1100, 1101, 3, 81, 40, 0, 1101, 78, 1, 0, 0, 0, 1102, 1103, 3, 69, 34, 0, 1103, 1105, 3, 815, 407, 0, 1104, 1106, 3, 69, 34, 0, 1105, 1104, 1, 0, 0, 0, 1105, 1106, 1, 0, 0, 0, 1106, 1111, 1, 0, 0, 0, 1107, 1108, 3, 815, 407, 0, 1108, 1109, 3, 69, 34, 0, 1109, 1111, 1, 0, 0, 0, 1110, 1102, 1, 0, 0, 0, 1110, 1107, 1, 0, 0, 0, 1111, 80, 1, 0, 0, 0, 1112, 1115, 3, 817, 408, 0, 1113, 1115, 3, 811, 405, 0, 1114, 1112, 1, 0, 0, 0, 1114, 1113, 1, 0, 0, 0, 1114, 1115, 1, 0, 0, 0, 1115, 1116, 1, 0, 0, 0, 1116, 1117, 3, 69, 34, 0, 1117, 82, 1, 0, 0, 0, 1118, 1119, 5, 48, 0, 0, 1119, 1120, 7, 19, 0, 0, 1120, 1125, 1, 0, 0, 0, 1121, 1123, 5, 95, 0, 0, 1122, 1121, 1, 0, 0, 0, 1122, 1123, 1, 0, 0, 0, 1123, 1124, 1, 0, 0, 0, 1124, 1126, 3, 839, 419, 0, 1125, 1122, 1, 0, 0, 0, 1126, 1127, 1, 0, 0, 0, 1127, 1125, 1, 0, 0, 0, 1127, 1128, 1, 0, 0, 0, 1128, 84, 1, 0, 0, 0, 1129, 1130, 5, 48, 0, 0, 1130, 1131, 7, 13, 0, 0, 1131, 1136, 1, 0, 0, 0, 1132, 1134, 5, 95, 0, 0, 1133, 1132, 1, 0, 0, 0, 1133, 1134, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 1137, 3, 843, 421, 0, 1136, 1133, 1, 0, 0, 0, 1137, 1138, 1, 0, 0, 0, 1138, 1136, 1, 0, 0, 0, 1138, 1139, 1, 0, 0, 0, 1139, 86, 1, 0, 0, 0, 1140, 1141, 5, 48, 0, 0, 1141, 1142, 7, 18, 0, 0, 1142, 1147, 1, 0, 0, 0, 1143, 1145, 5, 95, 0, 0, 1144, 1143, 1, 0, 0, 0, 1144, 1145, 1, 0, 0, 0, 1145, 1146, 1, 0, 0, 0, 1146, 1148, 3, 845, 422, 0, 1147, 1144, 1, 0, 0, 0, 1148, 1149, 1, 0, 0, 0, 1149, 1147, 1, 0, 0, 0, 1149, 1150, 1, 0, 0, 0, 1150, 88, 1, 0, 0, 0, 1151, 1152, 7, 20, 0, 0, 1152, 90, 1, 0, 0, 0, 1153, 1154, 7, 10, 0, 0, 1154, 1155, 7, 18, 0, 0, 1155, 1156, 7, 5, 0, 0, 1156, 92, 1, 0, 0, 0, 1157, 1158, 7, 10, 0, 0, 1158, 1159, 7, 21, 0, 0, 1159, 1160, 7, 13, 0, 0, 1160, 1161, 7, 5, 0, 0, 1161, 94, 1, 0, 0, 0, 1162, 1163, 7, 10, 0, 0, 1163, 1164, 7, 3, 0, 0, 1164, 1165, 7, 3, 0, 0, 1165, 96, 1, 0, 0, 0, 1166, 1167, 7, 10, 0, 0, 1167, 1168, 7, 3, 0, 0, 1168, 1169, 7, 3, 0, 0, 1169, 1170, 5, 95, 0, 0, 1170, 1171, 7, 22, 0, 0, 1171, 1172, 7, 0, 0, 0, 1172, 1173, 7, 9, 0, 0, 1173, 1174, 7, 9, 0, 0, 1174, 1175, 7, 4, 0, 0, 1175, 1176, 7, 7, 0, 0, 1176, 1177, 7, 4, 0, 0, 1177, 1178, 7, 11, 0, 0, 1178, 1179, 7, 6, 0, 0, 1179, 98, 1, 0, 0, 0, 1180, 1181, 7, 10, 0, 0, 1181, 1182, 7, 11, 0, 0, 1182, 1183, 7, 22, 0, 0, 1183, 100, 1, 0, 0, 0, 1184, 1185, 7, 10, 0, 0, 1185, 1186, 7, 11, 0, 0, 1186, 1187, 7, 23, 0, 0, 1187, 102, 1, 0, 0, 0, 1188, 1189, 7, 10, 0, 0, 1189, 1190, 7, 7, 0, 0, 1190, 1191, 7, 7, 0, 0, 1191, 1192, 7, 10, 0, 0, 1192, 1193, 7, 23, 0, 0, 1193, 104, 1, 0, 0, 0, 1194, 1195, 7, 10, 0, 0, 1195, 1196, 7, 5, 0, 0, 1196, 106, 1, 0, 0, 0, 1197, 1198, 7, 10, 0, 0, 1198, 1199, 7, 5, 0, 0, 1199, 1200, 7, 21, 0, 0, 1200, 108, 1, 0, 0, 0, 1201, 1202, 7, 10, 0, 0, 1202, 1203, 7, 5, 0, 0, 1203, 1204, 7, 21, 0, 0, 1204, 1205, 7, 4, 0, 0, 1205, 1206, 7, 11, 0, 0, 1206, 1207, 7, 22, 0, 0, 1207, 1208, 7, 0, 0, 0, 1208, 1209, 7, 11, 0, 0, 1209, 1210, 7, 24, 0, 0, 1210, 110, 1, 0, 0, 0, 1211, 1212, 7, 10, 0, 0, 1212, 1213, 7, 5, 0, 0, 1213, 1214, 7, 0, 0, 0, 1214, 1215, 7, 11, 0, 0, 1215, 112, 1, 0, 0, 0, 1216, 1217, 7, 10, 0, 0, 1217, 1218, 7, 6, 0, 0, 1218, 114, 1, 0, 0, 0, 1219, 1220, 7, 10, 0, 0, 1220, 1221, 7, 6, 0, 0, 1221, 1222, 7, 10, 0, 0, 1222, 1223, 7, 11, 0, 0, 1223, 116, 1, 0, 0, 0, 1224, 1225, 7, 10, 0, 0, 1225, 1226, 7, 25, 0, 0, 1226, 1227, 7, 24, 0, 0, 1227, 118, 1, 0, 0, 0, 1228, 1229, 7, 18, 0, 0, 1229, 1230, 7, 0, 0, 0, 1230, 1231, 7, 24, 0, 0, 1231, 120, 1, 0, 0, 0, 1232, 1233, 7, 18, 0, 0, 1233, 1234, 7, 0, 0, 0, 1234, 1235, 7, 24, 0, 0, 1235, 1236, 7, 0, 0, 0, 1236, 1237, 7, 11, 0, 0, 1237, 1238, 7, 6, 0, 0, 1238, 122, 1, 0, 0, 0, 1239, 1240, 7, 18, 0, 0, 1240, 1241, 7, 0, 0, 0, 1241, 1242, 7, 11, 0, 0, 1242, 1243, 7, 10, 0, 0, 1243, 1244, 7, 7, 0, 0, 1244, 1245, 7, 23, 0, 0, 1245, 124, 1, 0, 0, 0, 1246, 1247, 7, 18, 0, 0, 1247, 1248, 7, 13, 0, 0, 1248, 1249, 7, 13, 0, 0, 1249, 1250, 7, 3, 0, 0, 1250, 126, 1, 0, 0, 0, 1251, 1252, 7, 18, 0, 0, 1252, 1253, 7, 13, 0, 0, 1253, 1254, 7, 13, 0, 0, 1254, 1255, 7, 3, 0, 0, 1255, 1256, 7, 4, 0, 0, 1256, 1257, 7, 10, 0, 0, 1257, 1258, 7, 11, 0, 0, 1258, 128, 1, 0, 0, 0, 1259, 1260, 7, 18, 0, 0, 1260, 1261, 7, 13, 0, 0, 1261, 1262, 7, 6, 0, 0, 1262, 1263, 7, 26, 0, 0, 1263, 130, 1, 0, 0, 0, 1264, 1265, 7, 18, 0, 0, 1265, 1266, 7, 6, 0, 0, 1266, 1267, 7, 7, 0, 0, 1267, 1268, 7, 0, 0, 0, 1268, 1269, 7, 1, 0, 0, 1269, 132, 1, 0, 0, 0, 1270, 1271, 7, 18, 0, 0, 1271, 1272, 7, 23, 0, 0, 1272, 134, 1, 0, 0, 0, 1273, 1274, 7, 18, 0, 0, 1274, 1275, 7, 23, 0, 0, 1275, 1276, 7, 6, 0, 0, 1276, 1277, 7, 4, 0, 0, 1277, 1278, 5, 95, 0, 0, 1278, 1279, 7, 3, 0, 0, 1279, 1280, 7, 4, 0, 0, 1280, 1281, 7, 11, 0, 0, 1281, 1282, 7, 24, 0, 0, 1282, 1283, 7, 6, 0, 0, 1283, 1284, 7, 26, 0, 0, 1284, 136, 1, 0, 0, 0, 1285, 1286, 7, 18, 0, 0, 1286, 1287, 7, 23, 0, 0, 1287, 1288, 7, 6, 0, 0, 1288, 1289, 7, 4, 0, 0, 1289, 1290, 7, 5, 0, 0, 1290, 138, 1, 0, 0, 0, 1291, 1292, 7, 21, 0, 0, 1292, 1293, 7, 10, 0, 0, 1293, 1294, 7, 3, 0, 0, 1294, 1295, 7, 3, 0, 0, 1295, 140, 1, 0, 0, 0, 1296, 1297, 7, 21, 0, 0, 1297, 1298, 7, 10, 0, 0, 1298, 1299, 7, 7, 0, 0, 1299, 1300, 7, 22, 0, 0, 1300, 1301, 7, 0, 0, 0, 1301, 1302, 7, 11, 0, 0, 1302, 1303, 7, 10, 0, 0, 1303, 1304, 7, 3, 0, 0, 1304, 1305, 7, 0, 0, 0, 1305, 1306, 7, 6, 0, 0, 1306, 1307, 7, 23, 0, 0, 1307, 142, 1, 0, 0, 0, 1308, 1309, 7, 21, 0, 0, 1309, 1310, 7, 10, 0, 0, 1310, 1311, 7, 5, 0, 0, 1311, 1312, 7, 4, 0, 0, 1312, 144, 1, 0, 0, 0, 1313, 1314, 7, 21, 0, 0, 1314, 1315, 7, 10, 0, 0, 1315, 1316, 7, 5, 0, 0, 1316, 1317, 7, 6, 0, 0, 1317, 146, 1, 0, 0, 0, 1318, 1319, 7, 21, 0, 0, 1319, 1320, 7, 4, 0, 0, 1320, 1321, 7, 0, 0, 0, 1321, 1322, 7, 3, 0, 0, 1322, 148, 1, 0, 0, 0, 1323, 1324, 7, 21, 0, 0, 1324, 1325, 7, 4, 0, 0, 1325, 1326, 7, 0, 0, 0, 1326, 1327, 7, 3, 0, 0, 1327, 1328, 7, 0, 0, 0, 1328, 1329, 7, 11, 0, 0, 1329, 1330, 7, 24, 0, 0, 1330, 150, 1, 0, 0, 0, 1331, 1332, 7, 21, 0, 0, 1332, 1333, 7, 26, 0, 0, 1333, 1334, 7, 10, 0, 0, 1334, 1335, 7, 7, 0, 0, 1335, 152, 1, 0, 0, 0, 1336, 1337, 7, 21, 0, 0, 1337, 1338, 7, 26, 0, 0, 1338, 1339, 7, 10, 0, 0, 1339, 1340, 7, 7, 0, 0, 1340, 1341, 5, 95, 0, 0, 1341, 1342, 7, 3, 0, 0, 1342, 1343, 7, 4, 0, 0, 1343, 1344, 7, 11, 0, 0, 1344, 1345, 7, 24, 0, 0, 1345, 1346, 7, 6, 0, 0, 1346, 1347, 7, 26, 0, 0, 1347, 154, 1, 0, 0, 0, 1348, 1349, 7, 21, 0, 0, 1349, 1350, 7, 26, 0, 0, 1350, 1351, 7, 10, 0, 0, 1351, 1352, 7, 7, 0, 0, 1352, 1353, 7, 10, 0, 0, 1353, 1354, 7, 21, 0, 0, 1354, 1355, 7, 6, 0, 0, 1355, 1356, 7, 4, 0, 0, 1356, 1357, 7, 7, 0, 0, 1357, 1358, 5, 95, 0, 0, 1358, 1359, 7, 3, 0, 0, 1359, 1360, 7, 4, 0, 0, 1360, 1361, 7, 11, 0, 0, 1361, 1362, 7, 24, 0, 0, 1362, 1363, 7, 6, 0, 0, 1363, 1364, 7, 26, 0, 0, 1364, 156, 1, 0, 0, 0, 1365, 1366, 7, 21, 0, 0, 1366, 1367, 7, 26, 0, 0, 1367, 1368, 7, 10, 0, 0, 1368, 1369, 7, 7, 0, 0, 1369, 1370, 7, 10, 0, 0, 1370, 1371, 7, 21, 0, 0, 1371, 1372, 7, 6, 0, 0, 1372, 1373, 7, 4, 0, 0, 1373, 1374, 7, 7, 0, 0, 1374, 1375, 7, 0, 0, 0, 1375, 1376, 7, 5, 0, 0, 1376, 1377, 7, 6, 0, 0, 1377, 1378, 7, 0, 0, 0, 1378, 1379, 7, 21, 0, 0, 1379, 1380, 7, 5, 0, 0, 1380, 158, 1, 0, 0, 0, 1381, 1382, 7, 21, 0, 0, 1382, 1383, 7, 3, 0, 0, 1383, 1384, 7, 13, 0, 0, 1384, 1385, 7, 5, 0, 0, 1385, 1386, 7, 4, 0, 0, 1386, 160, 1, 0, 0, 0, 1387, 1388, 7, 21, 0, 0, 1388, 1389, 7, 13, 0, 0, 1389, 1390, 7, 10, 0, 0, 1390, 1391, 7, 3, 0, 0, 1391, 1392, 7, 4, 0, 0, 1392, 1393, 7, 5, 0, 0, 1393, 1394, 7, 21, 0, 0, 1394, 1395, 7, 4, 0, 0, 1395, 162, 1, 0, 0, 0, 1396, 1397, 7, 21, 0, 0, 1397, 1398, 7, 13, 0, 0, 1398, 1399, 7, 3, 0, 0, 1399, 1400, 7, 3, 0, 0, 1400, 1401, 7, 4, 0, 0, 1401, 1402, 7, 21, 0, 0, 1402, 1403, 7, 6, 0, 0, 1403, 1404, 5, 95, 0, 0, 1404, 1405, 7, 3, 0, 0, 1405, 1406, 7, 0, 0, 0, 1406, 1407, 7, 5, 0, 0, 1407, 1408, 7, 6, 0, 0, 1408, 164, 1, 0, 0, 0, 1409, 1410, 7, 21, 0, 0, 1410, 1411, 7, 13, 0, 0, 1411, 1412, 7, 1, 0, 0, 1412, 1413, 7, 1, 0, 0, 1413, 1414, 7, 0, 0, 0, 1414, 1415, 7, 6, 0, 0, 1415, 166, 1, 0, 0, 0, 1416, 1417, 7, 21, 0, 0, 1417, 1418, 7, 13, 0, 0, 1418, 1419, 7, 2, 0, 0, 1419, 1420, 7, 23, 0, 0, 1420, 168, 1, 0, 0, 0, 1421, 1422, 7, 21, 0, 0, 1422, 1423, 7, 13, 0, 0, 1423, 1424, 7, 5, 0, 0, 1424, 170, 1, 0, 0, 0, 1425, 1426, 7, 21, 0, 0, 1426, 1427, 7, 13, 0, 0, 1427, 1428, 7, 5, 0, 0, 1428, 1429, 7, 26, 0, 0, 1429, 172, 1, 0, 0, 0, 1430, 1431, 7, 21, 0, 0, 1431, 1432, 7, 13, 0, 0, 1432, 1433, 7, 6, 0, 0, 1433, 174, 1, 0, 0, 0, 1434, 1435, 7, 21, 0, 0, 1435, 1436, 7, 13, 0, 0, 1436, 1437, 7, 8, 0, 0, 1437, 1438, 7, 11, 0, 0, 1438, 1439, 7, 6, 0, 0, 1439, 176, 1, 0, 0, 0, 1440, 1441, 7, 21, 0, 0, 1441, 1442, 7, 7, 0, 0, 1442, 1443, 7, 4, 0, 0, 1443, 1444, 7, 10, 0, 0, 1444, 1445, 7, 6, 0, 0, 1445, 1446, 7, 4, 0, 0, 1446, 178, 1, 0, 0, 0, 1447, 1448, 7, 21, 0, 0, 1448, 1449, 7, 8, 0, 0, 1449, 1450, 7, 7, 0, 0, 1450, 1451, 7, 7, 0, 0, 1451, 1452, 7, 4, 0, 0, 1452, 1453, 7, 11, 0, 0, 1453, 1454, 7, 6, 0, 0, 1454, 1455, 5, 95, 0, 0, 1455, 1456, 7, 22, 0, 0, 1456, 1457, 7, 10, 0, 0, 1457, 1458, 7, 6, 0, 0, 1458, 1459, 7, 4, 0, 0, 1459, 180, 1, 0, 0, 0, 1460, 1461, 7, 21, 0, 0, 1461, 1462, 7, 8, 0, 0, 1462, 1463, 7, 7, 0, 0, 1463, 1464, 7, 7, 0, 0, 1464, 1465, 7, 4, 0, 0, 1465, 1466, 7, 11, 0, 0, 1466, 1467, 7, 6, 0, 0, 1467, 1468, 5, 95, 0, 0, 1468, 1469, 7, 24, 0, 0, 1469, 1470, 7, 7, 0, 0, 1470, 1471, 7, 10, 0, 0, 1471, 1472, 7, 2, 0, 0, 1472, 1473, 7, 26, 0, 0, 1473, 182, 1, 0, 0, 0, 1474, 1475, 7, 21, 0, 0, 1475, 1476, 7, 8, 0, 0, 1476, 1477, 7, 7, 0, 0, 1477, 1478, 7, 7, 0, 0, 1478, 1479, 7, 4, 0, 0, 1479, 1480, 7, 11, 0, 0, 1480, 1481, 7, 6, 0, 0, 1481, 1482, 5, 95, 0, 0, 1482, 1483, 7, 2, 0, 0, 1483, 1484, 7, 7, 0, 0, 1484, 1485, 7, 13, 0, 0, 1485, 1486, 7, 2, 0, 0, 1486, 1487, 7, 4, 0, 0, 1487, 1488, 7, 7, 0, 0, 1488, 1489, 7, 6, 0, 0, 1489, 1490, 7, 23, 0, 0, 1490, 1491, 5, 95, 0, 0, 1491, 1492, 7, 24, 0, 0, 1492, 1493, 7, 7, 0, 0, 1493, 1494, 7, 10, 0, 0, 1494, 1495, 7, 2, 0, 0, 1495, 1496, 7, 26, 0, 0, 1496, 184, 1, 0, 0, 0, 1497, 1498, 7, 21, 0, 0, 1498, 1499, 7, 8, 0, 0, 1499, 1500, 7, 7, 0, 0, 1500, 1501, 7, 7, 0, 0, 1501, 1502, 7, 4, 0, 0, 1502, 1503, 7, 11, 0, 0, 1503, 1504, 7, 6, 0, 0, 1504, 1505, 5, 95, 0, 0, 1505, 1506, 7, 5, 0, 0, 1506, 1507, 7, 21, 0, 0, 1507, 1508, 7, 26, 0, 0, 1508, 1509, 7, 4, 0, 0, 1509, 1510, 7, 1, 0, 0, 1510, 1511, 7, 10, 0, 0, 1511, 186, 1, 0, 0, 0, 1512, 1513, 7, 21, 0, 0, 1513, 1514, 7, 8, 0, 0, 1514, 1515, 7, 7, 0, 0, 1515, 1516, 7, 7, 0, 0, 1516, 1517, 7, 4, 0, 0, 1517, 1518, 7, 11, 0, 0, 1518, 1519, 7, 6, 0, 0, 1519, 1520, 5, 95, 0, 0, 1520, 1521, 7, 6, 0, 0, 1521, 1522, 7, 0, 0, 0, 1522, 1523, 7, 1, 0, 0, 1523, 1524, 7, 4, 0, 0, 1524, 188, 1, 0, 0, 0, 1525, 1526, 7, 21, 0, 0, 1526, 1527, 7, 8, 0, 0, 1527, 1528, 7, 7, 0, 0, 1528, 1529, 7, 7, 0, 0, 1529, 1530, 7, 4, 0, 0, 1530, 1531, 7, 11, 0, 0, 1531, 1532, 7, 6, 0, 0, 1532, 1533, 5, 95, 0, 0, 1533, 1534, 7, 6, 0, 0, 1534, 1535, 7, 0, 0, 0, 1535, 1536, 7, 1, 0, 0, 1536, 1537, 7, 4, 0, 0, 1537, 1538, 7, 5, 0, 0, 1538, 1539, 7, 6, 0, 0, 1539, 1540, 7, 10, 0, 0, 1540, 1541, 7, 1, 0, 0, 1541, 1542, 7, 2, 0, 0, 1542, 190, 1, 0, 0, 0, 1543, 1544, 7, 22, 0, 0, 1544, 1545, 7, 10, 0, 0, 1545, 1546, 7, 6, 0, 0, 1546, 1547, 7, 4, 0, 0, 1547, 192, 1, 0, 0, 0, 1548, 1549, 7, 22, 0, 0, 1549, 1550, 7, 10, 0, 0, 1550, 1551, 7, 6, 0, 0, 1551, 1552, 7, 4, 0, 0, 1552, 1553, 7, 6, 0, 0, 1553, 1554, 7, 0, 0, 0, 1554, 1555, 7, 1, 0, 0, 1555, 1556, 7, 4, 0, 0, 1556, 194, 1, 0, 0, 0, 1557, 1558, 7, 22, 0, 0, 1558, 1559, 7, 10, 0, 0, 1559, 1560, 7, 23, 0, 0, 1560, 196, 1, 0, 0, 0, 1561, 1562, 7, 22, 0, 0, 1562, 1563, 7, 4, 0, 0, 1563, 1564, 7, 21, 0, 0, 1564, 198, 1, 0, 0, 0, 1565, 1566, 7, 22, 0, 0, 1566, 1567, 7, 4, 0, 0, 1567, 1568, 7, 21, 0, 0, 1568, 1569, 7, 0, 0, 0, 1569, 1570, 7, 1, 0, 0, 1570, 1571, 7, 10, 0, 0, 1571, 1572, 7, 3, 0, 0, 1572, 200, 1, 0, 0, 0, 1573, 1574, 7, 22, 0, 0, 1574, 1575, 7, 4, 0, 0, 1575, 1576, 7, 24, 0, 0, 1576, 1577, 7, 7, 0, 0, 1577, 1578, 7, 4, 0, 0, 1578, 1579, 7, 4, 0, 0, 1579, 1580, 7, 5, 0, 0, 1580, 202, 1, 0, 0, 0, 1581, 1582, 7, 22, 0, 0, 1582, 1583, 7, 4, 0, 0, 1583, 1584, 7, 3, 0, 0, 1584, 1585, 7, 4, 0, 0, 1585, 1586, 7, 6, 0, 0, 1586, 1587, 7, 4, 0, 0, 1587, 204, 1, 0, 0, 0, 1588, 1589, 7, 22, 0, 0, 1589, 1590, 7, 4, 0, 0, 1590, 1591, 7, 5, 0, 0, 1591, 1592, 7, 21, 0, 0, 1592, 206, 1, 0, 0, 0, 1593, 1594, 7, 22, 0, 0, 1594, 1595, 7, 4, 0, 0, 1595, 1596, 7, 5, 0, 0, 1596, 1597, 7, 21, 0, 0, 1597, 1598, 7, 4, 0, 0, 1598, 1599, 7, 11, 0, 0, 1599, 1600, 7, 22, 0, 0, 1600, 1601, 7, 0, 0, 0, 1601, 1602, 7, 11, 0, 0, 1602, 1603, 7, 24, 0, 0, 1603, 208, 1, 0, 0, 0, 1604, 1605, 7, 22, 0, 0, 1605, 1606, 7, 4, 0, 0, 1606, 1607, 7, 6, 0, 0, 1607, 1608, 7, 10, 0, 0, 1608, 1609, 7, 21, 0, 0, 1609, 1610, 7, 26, 0, 0, 1610, 210, 1, 0, 0, 0, 1611, 1612, 7, 22, 0, 0, 1612, 1613, 7, 0, 0, 0, 1613, 1614, 7, 5, 0, 0, 1614, 1615, 7, 6, 0, 0, 1615, 1616, 7, 0, 0, 0, 1616, 1617, 7, 11, 0, 0, 1617, 1618, 7, 21, 0, 0, 1618, 1619, 7, 6, 0, 0, 1619, 212, 1, 0, 0, 0, 1620, 1621, 7, 22, 0, 0, 1621, 1622, 7, 13, 0, 0, 1622, 1623, 7, 8, 0, 0, 1623, 1624, 7, 18, 0, 0, 1624, 1625, 7, 3, 0, 0, 1625, 1626, 7, 4, 0, 0, 1626, 214, 1, 0, 0, 0, 1627, 1628, 7, 22, 0, 0, 1628, 1629, 7, 7, 0, 0, 1629, 1630, 7, 13, 0, 0, 1630, 1631, 7, 2, 0, 0, 1631, 216, 1, 0, 0, 0, 1632, 1633, 7, 22, 0, 0, 1633, 1634, 7, 8, 0, 0, 1634, 1635, 7, 7, 0, 0, 1635, 1636, 7, 10, 0, 0, 1636, 1637, 7, 6, 0, 0, 1637, 1638, 7, 0, 0, 0, 1638, 1639, 7, 13, 0, 0, 1639, 1640, 7, 11, 0, 0, 1640, 218, 1, 0, 0, 0, 1641, 1642, 7, 22, 0, 0, 1642, 1643, 7, 8, 0, 0, 1643, 1644, 7, 7, 0, 0, 1644, 1645, 7, 10, 0, 0, 1645, 1646, 7, 6, 0, 0, 1646, 1647, 7, 0, 0, 0, 1647, 1648, 7, 13, 0, 0, 1648, 1649, 7, 11, 0, 0, 1649, 1650, 5, 95, 0, 0, 1650, 1651, 7, 18, 0, 0, 1651, 1652, 7, 4, 0, 0, 1652, 1653, 7, 6, 0, 0, 1653, 1654, 7, 14, 0, 0, 1654, 1655, 7, 4, 0, 0, 1655, 1656, 7, 4, 0, 0, 1656, 1657, 7, 11, 0, 0, 1657, 220, 1, 0, 0, 0, 1658, 1659, 7, 4, 0, 0, 1659, 1660, 7, 3, 0, 0, 1660, 1661, 7, 4, 0, 0, 1661, 1662, 7, 1, 0, 0, 1662, 1663, 7, 4, 0, 0, 1663, 1664, 7, 11, 0, 0, 1664, 1665, 7, 6, 0, 0, 1665, 1666, 5, 95, 0, 0, 1666, 1667, 7, 0, 0, 0, 1667, 1668, 7, 22, 0, 0, 1668, 222, 1, 0, 0, 0, 1669, 1670, 7, 4, 0, 0, 1670, 1671, 7, 3, 0, 0, 1671, 1672, 7, 5, 0, 0, 1672, 1673, 7, 4, 0, 0, 1673, 224, 1, 0, 0, 0, 1674, 1675, 7, 4, 0, 0, 1675, 1676, 7, 11, 0, 0, 1676, 1677, 7, 22, 0, 0, 1677, 226, 1, 0, 0, 0, 1678, 1679, 7, 4, 0, 0, 1679, 1680, 7, 19, 0, 0, 1680, 1681, 7, 21, 0, 0, 1681, 1682, 7, 4, 0, 0, 1682, 1683, 7, 2, 0, 0, 1683, 1684, 7, 6, 0, 0, 1684, 228, 1, 0, 0, 0, 1685, 1686, 7, 4, 0, 0, 1686, 1687, 7, 19, 0, 0, 1687, 1688, 7, 0, 0, 0, 1688, 1689, 7, 5, 0, 0, 1689, 1690, 7, 6, 0, 0, 1690, 1691, 7, 5, 0, 0, 1691, 230, 1, 0, 0, 0, 1692, 1693, 7, 4, 0, 0, 1693, 1694, 7, 19, 0, 0, 1694, 1695, 7, 2, 0, 0, 1695, 232, 1, 0, 0, 0, 1696, 1697, 7, 9, 0, 0, 1697, 1698, 7, 0, 0, 0, 1698, 1699, 7, 3, 0, 0, 1699, 1700, 7, 6, 0, 0, 1700, 1701, 7, 4, 0, 0, 1701, 1702, 7, 7, 0, 0, 1702, 234, 1, 0, 0, 0, 1703, 1704, 7, 9, 0, 0, 1704, 1705, 7, 0, 0, 0, 1705, 1706, 7, 11, 0, 0, 1706, 1707, 7, 0, 0, 0, 1707, 1708, 7, 5, 0, 0, 1708, 1709, 7, 26, 0, 0, 1709, 236, 1, 0, 0, 0, 1710, 1711, 7, 9, 0, 0, 1711, 1712, 7, 3, 0, 0, 1712, 1713, 7, 13, 0, 0, 1713, 1714, 7, 10, 0, 0, 1714, 1715, 7, 6, 0, 0, 1715, 238, 1, 0, 0, 0, 1716, 1717, 7, 9, 0, 0, 1717, 1718, 7, 3, 0, 0, 1718, 1719, 7, 13, 0, 0, 1719, 1720, 7, 10, 0, 0, 1720, 1721, 7, 6, 0, 0, 1721, 1722, 5, 49, 0, 0, 1722, 1723, 5, 54, 0, 0, 1723, 240, 1, 0, 0, 0, 1724, 1725, 7, 9, 0, 0, 1725, 1726, 7, 3, 0, 0, 1726, 1727, 7, 13, 0, 0, 1727, 1728, 7, 10, 0, 0, 1728, 1729, 7, 6, 0, 0, 1729, 1730, 5, 51, 0, 0, 1730, 1731, 5, 50, 0, 0, 1731, 242, 1, 0, 0, 0, 1732, 1733, 7, 9, 0, 0, 1733, 1734, 7, 3, 0, 0, 1734, 1735, 7, 13, 0, 0, 1735, 1736, 7, 10, 0, 0, 1736, 1737, 7, 6, 0, 0, 1737, 1738, 5, 54, 0, 0, 1738, 1739, 5, 52, 0, 0, 1739, 244, 1, 0, 0, 0, 1740, 1741, 7, 9, 0, 0, 1741, 1742, 7, 3, 0, 0, 1742, 1743, 7, 13, 0, 0, 1743, 1744, 7, 10, 0, 0, 1744, 1745, 7, 6, 0, 0, 1745, 1746, 5, 49, 0, 0, 1746, 1747, 5, 50, 0, 0, 1747, 1748, 5, 56, 0, 0, 1748, 246, 1, 0, 0, 0, 1749, 1750, 7, 9, 0, 0, 1750, 1751, 7, 3, 0, 0, 1751, 1752, 7, 13, 0, 0, 1752, 1753, 7, 10, 0, 0, 1753, 1754, 7, 6, 0, 0, 1754, 1755, 5, 50, 0, 0, 1755, 1756, 5, 53, 0, 0, 1756, 1757, 5, 54, 0, 0, 1757, 248, 1, 0, 0, 0, 1758, 1759, 7, 9, 0, 0, 1759, 1760, 7, 3, 0, 0, 1760, 1761, 7, 13, 0, 0, 1761, 1762, 7, 13, 0, 0, 1762, 1763, 7, 7, 0, 0, 1763, 250, 1, 0, 0, 0, 1764, 1765, 7, 9, 0, 0, 1765, 1766, 7, 13, 0, 0, 1766, 1767, 7, 7, 0, 0, 1767, 252, 1, 0, 0, 0, 1768, 1769, 7, 9, 0, 0, 1769, 1770, 7, 7, 0, 0, 1770, 1771, 7, 13, 0, 0, 1771, 1772, 7, 1, 0, 0, 1772, 254, 1, 0, 0, 0, 1773, 1774, 7, 24, 0, 0, 1774, 1775, 7, 7, 0, 0, 1775, 1776, 7, 13, 0, 0, 1776, 1777, 7, 8, 0, 0, 1777, 1778, 7, 2, 0, 0, 1778, 256, 1, 0, 0, 0, 1779, 1780, 7, 26, 0, 0, 1780, 1781, 7, 10, 0, 0, 1781, 1782, 7, 25, 0, 0, 1782, 1783, 7, 0, 0, 0, 1783, 1784, 7, 11, 0, 0, 1784, 1785, 7, 24, 0, 0, 1785, 258, 1, 0, 0, 0, 1786, 1787, 7, 26, 0, 0, 1787, 1788, 7, 13, 0, 0, 1788, 1789, 7, 1, 0, 0, 1789, 1790, 7, 4, 0, 0, 1790, 1791, 5, 95, 0, 0, 1791, 1792, 7, 24, 0, 0, 1792, 1793, 7, 7, 0, 0, 1793, 1794, 7, 10, 0, 0, 1794, 1795, 7, 2, 0, 0, 1795, 1796, 7, 26, 0, 0, 1796, 260, 1, 0, 0, 0, 1797, 1798, 7, 26, 0, 0, 1798, 1799, 7, 13, 0, 0, 1799, 1800, 7, 1, 0, 0, 1800, 1801, 7, 4, 0, 0, 1801, 1802, 5, 95, 0, 0, 1802, 1803, 7, 2, 0, 0, 1803, 1804, 7, 7, 0, 0, 1804, 1805, 7, 13, 0, 0, 1805, 1806, 7, 2, 0, 0, 1806, 1807, 7, 4, 0, 0, 1807, 1808, 7, 7, 0, 0, 1808, 1809, 7, 6, 0, 0, 1809, 1810, 7, 23, 0, 0, 1810, 1811, 5, 95, 0, 0, 1811, 1812, 7, 24, 0, 0, 1812, 1813, 7, 7, 0, 0, 1813, 1814, 7, 10, 0, 0, 1814, 1815, 7, 2, 0, 0, 1815, 1816, 7, 26, 0, 0, 1816, 262, 1, 0, 0, 0, 1817, 1818, 7, 26, 0, 0, 1818, 1819, 7, 13, 0, 0, 1819, 1820, 7, 1, 0, 0, 1820, 1821, 7, 4, 0, 0, 1821, 1822, 5, 95, 0, 0, 1822, 1823, 7, 5, 0, 0, 1823, 1824, 7, 21, 0, 0, 1824, 1825, 7, 26, 0, 0, 1825, 1826, 7, 4, 0, 0, 1826, 1827, 7, 1, 0, 0, 1827, 1828, 7, 10, 0, 0, 1828, 264, 1, 0, 0, 0, 1829, 1830, 7, 26, 0, 0, 1830, 1831, 7, 13, 0, 0, 1831, 1832, 7, 8, 0, 0, 1832, 1833, 7, 7, 0, 0, 1833, 266, 1, 0, 0, 0, 1834, 1835, 7, 0, 0, 0, 1835, 1836, 7, 9, 0, 0, 1836, 268, 1, 0, 0, 0, 1837, 1838, 7, 0, 0, 0, 1838, 1839, 7, 11, 0, 0, 1839, 270, 1, 0, 0, 0, 1840, 1841, 7, 0, 0, 0, 1841, 1842, 7, 11, 0, 0, 1842, 1843, 7, 5, 0, 0, 1843, 1844, 7, 4, 0, 0, 1844, 1845, 7, 7, 0, 0, 1845, 1846, 7, 6, 0, 0, 1846, 272, 1, 0, 0, 0, 1847, 1848, 7, 0, 0, 0, 1848, 1849, 7, 11, 0, 0, 1849, 1850, 7, 6, 0, 0, 1850, 274, 1, 0, 0, 0, 1851, 1852, 7, 0, 0, 0, 1852, 1853, 7, 11, 0, 0, 1853, 1854, 7, 6, 0, 0, 1854, 1855, 7, 4, 0, 0, 1855, 1856, 7, 24, 0, 0, 1856, 1857, 7, 4, 0, 0, 1857, 1858, 7, 7, 0, 0, 1858, 276, 1, 0, 0, 0, 1859, 1860, 7, 0, 0, 0, 1860, 1861, 7, 11, 0, 0, 1861, 1862, 7, 6, 0, 0, 1862, 1863, 5, 56, 0, 0, 1863, 278, 1, 0, 0, 0, 1864, 1865, 7, 0, 0, 0, 1865, 1866, 7, 11, 0, 0, 1866, 1867, 7, 6, 0, 0, 1867, 1868, 7, 4, 0, 0, 1868, 1869, 7, 24, 0, 0, 1869, 1870, 7, 4, 0, 0, 1870, 1871, 7, 7, 0, 0, 1871, 1872, 5, 56, 0, 0, 1872, 280, 1, 0, 0, 0, 1873, 1874, 7, 0, 0, 0, 1874, 1875, 7, 11, 0, 0, 1875, 1876, 7, 6, 0, 0, 1876, 1877, 5, 49, 0, 0, 1877, 1878, 5, 54, 0, 0, 1878, 282, 1, 0, 0, 0, 1879, 1880, 7, 0, 0, 0, 1880, 1881, 7, 11, 0, 0, 1881, 1882, 7, 6, 0, 0, 1882, 1883, 7, 4, 0, 0, 1883, 1884, 7, 24, 0, 0, 1884, 1885, 7, 4, 0, 0, 1885, 1886, 7, 7, 0, 0, 1886, 1887, 5, 49, 0, 0, 1887, 1888, 5, 54, 0, 0, 1888, 284, 1, 0, 0, 0, 1889, 1890, 7, 0, 0, 0, 1890, 1891, 7, 11, 0, 0, 1891, 1892, 7, 6, 0, 0, 1892, 1893, 5, 51, 0, 0, 1893, 1894, 5, 50, 0, 0, 1894, 286, 1, 0, 0, 0, 1895, 1896, 7, 0, 0, 0, 1896, 1897, 7, 11, 0, 0, 1897, 1898, 7, 6, 0, 0, 1898, 1899, 7, 4, 0, 0, 1899, 1900, 7, 24, 0, 0, 1900, 1901, 7, 4, 0, 0, 1901, 1902, 7, 7, 0, 0, 1902, 1903, 5, 51, 0, 0, 1903, 1904, 5, 50, 0, 0, 1904, 288, 1, 0, 0, 0, 1905, 1906, 7, 0, 0, 0, 1906, 1907, 7, 11, 0, 0, 1907, 1908, 7, 6, 0, 0, 1908, 1909, 5, 54, 0, 0, 1909, 1910, 5, 52, 0, 0, 1910, 290, 1, 0, 0, 0, 1911, 1912, 7, 0, 0, 0, 1912, 1913, 7, 11, 0, 0, 1913, 1914, 7, 6, 0, 0, 1914, 1915, 7, 4, 0, 0, 1915, 1916, 7, 24, 0, 0, 1916, 1917, 7, 4, 0, 0, 1917, 1918, 7, 7, 0, 0, 1918, 1919, 5, 54, 0, 0, 1919, 1920, 5, 52, 0, 0, 1920, 292, 1, 0, 0, 0, 1921, 1922, 7, 0, 0, 0, 1922, 1923, 7, 11, 0, 0, 1923, 1924, 7, 6, 0, 0, 1924, 1925, 5, 49, 0, 0, 1925, 1926, 5, 50, 0, 0, 1926, 1927, 5, 56, 0, 0, 1927, 294, 1, 0, 0, 0, 1928, 1929, 7, 0, 0, 0, 1929, 1930, 7, 11, 0, 0, 1930, 1931, 7, 6, 0, 0, 1931, 1932, 7, 4, 0, 0, 1932, 1933, 7, 24, 0, 0, 1933, 1934, 7, 4, 0, 0, 1934, 1935, 7, 7, 0, 0, 1935, 1936, 5, 49, 0, 0, 1936, 1937, 5, 50, 0, 0, 1937, 1938, 5, 56, 0, 0, 1938, 296, 1, 0, 0, 0, 1939, 1940, 7, 0, 0, 0, 1940, 1941, 7, 11, 0, 0, 1941, 1942, 7, 6, 0, 0, 1942, 1943, 5, 50, 0, 0, 1943, 1944, 5, 53, 0, 0, 1944, 1945, 5, 54, 0, 0, 1945, 298, 1, 0, 0, 0, 1946, 1947, 7, 0, 0, 0, 1947, 1948, 7, 11, 0, 0, 1948, 1949, 7, 6, 0, 0, 1949, 1950, 7, 4, 0, 0, 1950, 1951, 7, 24, 0, 0, 1951, 1952, 7, 4, 0, 0, 1952, 1953, 7, 7, 0, 0, 1953, 1954, 5, 50, 0, 0, 1954, 1955, 5, 53, 0, 0, 1955, 1956, 5, 54, 0, 0, 1956, 300, 1, 0, 0, 0, 1957, 1958, 7, 0, 0, 0, 1958, 1959, 7, 11, 0, 0, 1959, 1960, 7, 6, 0, 0, 1960, 1961, 7, 4, 0, 0, 1961, 1962, 7, 7, 0, 0, 1962, 1963, 7, 5, 0, 0, 1963, 1964, 7, 4, 0, 0, 1964, 1965, 7, 21, 0, 0, 1965, 1966, 7, 6, 0, 0, 1966, 302, 1, 0, 0, 0, 1967, 1968, 7, 0, 0, 0, 1968, 1969, 7, 11, 0, 0, 1969, 1970, 7, 6, 0, 0, 1970, 1971, 7, 4, 0, 0, 1971, 1972, 7, 7, 0, 0, 1972, 1973, 7, 25, 0, 0, 1973, 1974, 7, 10, 0, 0, 1974, 1975, 7, 3, 0, 0, 1975, 304, 1, 0, 0, 0, 1976, 1977, 7, 0, 0, 0, 1977, 1978, 7, 5, 0, 0, 1978, 306, 1, 0, 0, 0, 1979, 1980, 7, 3, 0, 0, 1980, 1981, 7, 4, 0, 0, 1981, 1982, 7, 10, 0, 0, 1982, 1983, 7, 22, 0, 0, 1983, 1984, 7, 0, 0, 0, 1984, 1985, 7, 11, 0, 0, 1985, 1986, 7, 24, 0, 0, 1986, 308, 1, 0, 0, 0, 1987, 1988, 7, 3, 0, 0, 1988, 1989, 7, 4, 0, 0, 1989, 1990, 7, 9, 0, 0, 1990, 1991, 7, 6, 0, 0, 1991, 310, 1, 0, 0, 0, 1992, 1993, 7, 3, 0, 0, 1993, 1994, 7, 4, 0, 0, 1994, 1995, 7, 6, 0, 0, 1995, 312, 1, 0, 0, 0, 1996, 1997, 7, 3, 0, 0, 1997, 1998, 7, 0, 0, 0, 1998, 1999, 7, 12, 0, 0, 1999, 2000, 7, 4, 0, 0, 2000, 314, 1, 0, 0, 0, 2001, 2002, 7, 3, 0, 0, 2002, 2003, 7, 0, 0, 0, 2003, 2004, 7, 1, 0, 0, 2004, 2005, 7, 0, 0, 0, 2005, 2006, 7, 6, 0, 0, 2006, 316, 1, 0, 0, 0, 2007, 2008, 7, 3, 0, 0, 2008, 2009, 7, 0, 0, 0, 2009, 2010, 7, 5, 0, 0, 2010, 2011, 7, 6, 0, 0, 2011, 318, 1, 0, 0, 0, 2012, 2013, 7, 3, 0, 0, 2013, 2014, 7, 11, 0, 0, 2014, 320, 1, 0, 0, 0, 2015, 2016, 7, 3, 0, 0, 2016, 2017, 7, 13, 0, 0, 2017, 2018, 7, 21, 0, 0, 2018, 2019, 7, 10, 0, 0, 2019, 2020, 7, 3, 0, 0, 2020, 322, 1, 0, 0, 0, 2021, 2022, 7, 3, 0, 0, 2022, 2023, 7, 13, 0, 0, 2023, 2024, 7, 21, 0, 0, 2024, 2025, 7, 10, 0, 0, 2025, 2026, 7, 3, 0, 0, 2026, 2027, 5, 95, 0, 0, 2027, 2028, 7, 22, 0, 0, 2028, 2029, 7, 10, 0, 0, 2029, 2030, 7, 6, 0, 0, 2030, 2031, 7, 4, 0, 0, 2031, 2032, 7, 6, 0, 0, 2032, 2033, 7, 0, 0, 0, 2033, 2034, 7, 1, 0, 0, 2034, 2035, 7, 4, 0, 0, 2035, 324, 1, 0, 0, 0, 2036, 2037, 7, 3, 0, 0, 2037, 2038, 7, 13, 0, 0, 2038, 2039, 7, 21, 0, 0, 2039, 2040, 7, 10, 0, 0, 2040, 2041, 7, 3, 0, 0, 2041, 2042, 5, 95, 0, 0, 2042, 2043, 7, 6, 0, 0, 2043, 2044, 7, 0, 0, 0, 2044, 2045, 7, 1, 0, 0, 2045, 2046, 7, 4, 0, 0, 2046, 326, 1, 0, 0, 0, 2047, 2048, 7, 3, 0, 0, 2048, 2049, 7, 13, 0, 0, 2049, 2050, 7, 21, 0, 0, 2050, 2051, 7, 10, 0, 0, 2051, 2052, 7, 3, 0, 0, 2052, 2053, 5, 95, 0, 0, 2053, 2054, 7, 6, 0, 0, 2054, 2055, 7, 0, 0, 0, 2055, 2056, 7, 1, 0, 0, 2056, 2057, 7, 4, 0, 0, 2057, 2058, 7, 5, 0, 0, 2058, 2059, 7, 6, 0, 0, 2059, 2060, 7, 10, 0, 0, 2060, 2061, 7, 1, 0, 0, 2061, 2062, 7, 2, 0, 0, 2062, 328, 1, 0, 0, 0, 2063, 2064, 7, 3, 0, 0, 2064, 2065, 7, 13, 0, 0, 2065, 2066, 7, 24, 0, 0, 2066, 330, 1, 0, 0, 0, 2067, 2068, 7, 3, 0, 0, 2068, 2069, 7, 13, 0, 0, 2069, 2070, 7, 24, 0, 0, 2070, 2071, 5, 49, 0, 0, 2071, 2072, 5, 48, 0, 0, 2072, 332, 1, 0, 0, 0, 2073, 2074, 7, 3, 0, 0, 2074, 2075, 7, 13, 0, 0, 2075, 2076, 7, 14, 0, 0, 2076, 2077, 7, 4, 0, 0, 2077, 2078, 7, 7, 0, 0, 2078, 334, 1, 0, 0, 0, 2079, 2080, 7, 3, 0, 0, 2080, 2081, 7, 6, 0, 0, 2081, 2082, 7, 7, 0, 0, 2082, 2083, 7, 0, 0, 0, 2083, 2084, 7, 1, 0, 0, 2084, 336, 1, 0, 0, 0, 2085, 2086, 7, 1, 0, 0, 2086, 2087, 7, 10, 0, 0, 2087, 2088, 7, 6, 0, 0, 2088, 2089, 7, 21, 0, 0, 2089, 2090, 7, 26, 0, 0, 2090, 338, 1, 0, 0, 0, 2091, 2092, 7, 1, 0, 0, 2092, 2093, 7, 10, 0, 0, 2093, 2094, 7, 19, 0, 0, 2094, 340, 1, 0, 0, 0, 2095, 2096, 7, 1, 0, 0, 2096, 2097, 7, 0, 0, 0, 2097, 2098, 7, 11, 0, 0, 2098, 342, 1, 0, 0, 0, 2099, 2100, 7, 1, 0, 0, 2100, 2101, 7, 0, 0, 0, 2101, 2102, 7, 11, 0, 0, 2102, 2103, 7, 8, 0, 0, 2103, 2104, 7, 6, 0, 0, 2104, 2105, 7, 4, 0, 0, 2105, 344, 1, 0, 0, 0, 2106, 2107, 7, 1, 0, 0, 2107, 2108, 7, 13, 0, 0, 2108, 2109, 7, 22, 0, 0, 2109, 346, 1, 0, 0, 0, 2110, 2111, 7, 1, 0, 0, 2111, 2112, 7, 13, 0, 0, 2112, 2113, 7, 11, 0, 0, 2113, 2114, 7, 6, 0, 0, 2114, 2115, 7, 26, 0, 0, 2115, 348, 1, 0, 0, 0, 2116, 2117, 7, 11, 0, 0, 2117, 2118, 7, 4, 0, 0, 2118, 2119, 7, 19, 0, 0, 2119, 2120, 7, 6, 0, 0, 2120, 350, 1, 0, 0, 0, 2121, 2122, 7, 11, 0, 0, 2122, 2123, 7, 13, 0, 0, 2123, 2124, 7, 22, 0, 0, 2124, 2125, 7, 4, 0, 0, 2125, 2126, 7, 6, 0, 0, 2126, 2127, 7, 10, 0, 0, 2127, 2128, 7, 21, 0, 0, 2128, 2129, 7, 26, 0, 0, 2129, 352, 1, 0, 0, 0, 2130, 2131, 7, 11, 0, 0, 2131, 2132, 7, 13, 0, 0, 2132, 2133, 7, 7, 0, 0, 2133, 2134, 7, 1, 0, 0, 2134, 2135, 7, 10, 0, 0, 2135, 2136, 7, 3, 0, 0, 2136, 2137, 7, 0, 0, 0, 2137, 2138, 7, 27, 0, 0, 2138, 2139, 7, 4, 0, 0, 2139, 354, 1, 0, 0, 0, 2140, 2141, 7, 11, 0, 0, 2141, 2142, 7, 13, 0, 0, 2142, 2143, 7, 6, 0, 0, 2143, 356, 1, 0, 0, 0, 2144, 2145, 7, 11, 0, 0, 2145, 2146, 7, 13, 0, 0, 2146, 2147, 7, 6, 0, 0, 2147, 2148, 7, 26, 0, 0, 2148, 2149, 7, 0, 0, 0, 2149, 2150, 7, 11, 0, 0, 2150, 2151, 7, 24, 0, 0, 2151, 358, 1, 0, 0, 0, 2152, 2153, 7, 11, 0, 0, 2153, 2154, 7, 8, 0, 0, 2154, 2155, 7, 3, 0, 0, 2155, 2156, 7, 3, 0, 0, 2156, 360, 1, 0, 0, 0, 2157, 2158, 7, 11, 0, 0, 2158, 2159, 7, 8, 0, 0, 2159, 2160, 7, 3, 0, 0, 2160, 2161, 7, 3, 0, 0, 2161, 2162, 7, 5, 0, 0, 2162, 362, 1, 0, 0, 0, 2163, 2164, 7, 11, 0, 0, 2164, 2165, 7, 8, 0, 0, 2165, 2166, 7, 3, 0, 0, 2166, 2167, 7, 3, 0, 0, 2167, 2168, 7, 0, 0, 0, 2168, 2169, 7, 9, 0, 0, 2169, 364, 1, 0, 0, 0, 2170, 2171, 7, 13, 0, 0, 2171, 2172, 7, 21, 0, 0, 2172, 2173, 7, 6, 0, 0, 2173, 2174, 7, 4, 0, 0, 2174, 2175, 7, 6, 0, 0, 2175, 2176, 5, 95, 0, 0, 2176, 2177, 7, 3, 0, 0, 2177, 2178, 7, 4, 0, 0, 2178, 2179, 7, 11, 0, 0, 2179, 2180, 7, 24, 0, 0, 2180, 2181, 7, 6, 0, 0, 2181, 2182, 7, 26, 0, 0, 2182, 366, 1, 0, 0, 0, 2183, 2184, 7, 13, 0, 0, 2184, 2185, 7, 9, 0, 0, 2185, 368, 1, 0, 0, 0, 2186, 2187, 7, 13, 0, 0, 2187, 2188, 7, 9, 0, 0, 2188, 2189, 7, 9, 0, 0, 2189, 2190, 7, 5, 0, 0, 2190, 2191, 7, 4, 0, 0, 2191, 2192, 7, 6, 0, 0, 2192, 370, 1, 0, 0, 0, 2193, 2194, 7, 13, 0, 0, 2194, 2195, 7, 2, 0, 0, 2195, 2196, 7, 6, 0, 0, 2196, 2197, 7, 0, 0, 0, 2197, 2198, 7, 13, 0, 0, 2198, 2199, 7, 11, 0, 0, 2199, 2200, 7, 10, 0, 0, 2200, 2201, 7, 3, 0, 0, 2201, 372, 1, 0, 0, 0, 2202, 2203, 7, 13, 0, 0, 2203, 2204, 7, 7, 0, 0, 2204, 374, 1, 0, 0, 0, 2205, 2206, 7, 13, 0, 0, 2206, 2207, 7, 7, 0, 0, 2207, 2208, 7, 22, 0, 0, 2208, 2209, 7, 4, 0, 0, 2209, 2210, 7, 7, 0, 0, 2210, 376, 1, 0, 0, 0, 2211, 2212, 7, 13, 0, 0, 2212, 2213, 7, 6, 0, 0, 2213, 2214, 7, 26, 0, 0, 2214, 2215, 7, 4, 0, 0, 2215, 2216, 7, 7, 0, 0, 2216, 2217, 7, 14, 0, 0, 2217, 2218, 7, 0, 0, 0, 2218, 2219, 7, 5, 0, 0, 2219, 2220, 7, 4, 0, 0, 2220, 378, 1, 0, 0, 0, 2221, 2222, 7, 2, 0, 0, 2222, 2223, 7, 10, 0, 0, 2223, 2224, 7, 7, 0, 0, 2224, 2225, 7, 10, 0, 0, 2225, 2226, 7, 1, 0, 0, 2226, 2227, 7, 4, 0, 0, 2227, 2228, 7, 6, 0, 0, 2228, 2229, 7, 4, 0, 0, 2229, 2230, 7, 7, 0, 0, 2230, 380, 1, 0, 0, 0, 2231, 2232, 7, 2, 0, 0, 2232, 2233, 7, 10, 0, 0, 2233, 2234, 7, 7, 0, 0, 2234, 2235, 7, 10, 0, 0, 2235, 2236, 7, 1, 0, 0, 2236, 2237, 7, 4, 0, 0, 2237, 2238, 7, 6, 0, 0, 2238, 2239, 7, 4, 0, 0, 2239, 2240, 7, 7, 0, 0, 2240, 2241, 7, 5, 0, 0, 2241, 382, 1, 0, 0, 0, 2242, 2243, 7, 2, 0, 0, 2243, 2244, 7, 10, 0, 0, 2244, 2245, 7, 6, 0, 0, 2245, 2246, 7, 26, 0, 0, 2246, 384, 1, 0, 0, 0, 2247, 2248, 7, 2, 0, 0, 2248, 2249, 7, 10, 0, 0, 2249, 2250, 7, 6, 0, 0, 2250, 2251, 7, 26, 0, 0, 2251, 2252, 5, 95, 0, 0, 2252, 2253, 7, 3, 0, 0, 2253, 2254, 7, 4, 0, 0, 2254, 2255, 7, 11, 0, 0, 2255, 2256, 7, 24, 0, 0, 2256, 2257, 7, 6, 0, 0, 2257, 2258, 7, 26, 0, 0, 2258, 386, 1, 0, 0, 0, 2259, 2260, 7, 2, 0, 0, 2260, 2261, 7, 10, 0, 0, 2261, 2262, 7, 6, 0, 0, 2262, 2263, 7, 26, 0, 0, 2263, 2264, 7, 5, 0, 0, 2264, 388, 1, 0, 0, 0, 2265, 2266, 7, 2, 0, 0, 2266, 2267, 7, 4, 0, 0, 2267, 2268, 7, 7, 0, 0, 2268, 2269, 7, 21, 0, 0, 2269, 2270, 7, 4, 0, 0, 2270, 2271, 7, 11, 0, 0, 2271, 2272, 7, 6, 0, 0, 2272, 2273, 7, 0, 0, 0, 2273, 2274, 7, 3, 0, 0, 2274, 2275, 7, 4, 0, 0, 2275, 2276, 5, 95, 0, 0, 2276, 2277, 7, 21, 0, 0, 2277, 2278, 7, 13, 0, 0, 2278, 2279, 7, 11, 0, 0, 2279, 2280, 7, 6, 0, 0, 2280, 390, 1, 0, 0, 0, 2281, 2282, 7, 2, 0, 0, 2282, 2283, 7, 4, 0, 0, 2283, 2284, 7, 7, 0, 0, 2284, 2285, 7, 21, 0, 0, 2285, 2286, 7, 4, 0, 0, 2286, 2287, 7, 11, 0, 0, 2287, 2288, 7, 6, 0, 0, 2288, 2289, 7, 0, 0, 0, 2289, 2290, 7, 3, 0, 0, 2290, 2291, 7, 4, 0, 0, 2291, 2292, 5, 95, 0, 0, 2292, 2293, 7, 22, 0, 0, 2293, 2294, 7, 0, 0, 0, 2294, 2295, 7, 5, 0, 0, 2295, 2296, 7, 21, 0, 0, 2296, 392, 1, 0, 0, 0, 2297, 2298, 7, 2, 0, 0, 2298, 2299, 7, 13, 0, 0, 2299, 2300, 7, 14, 0, 0, 2300, 2301, 7, 4, 0, 0, 2301, 2302, 7, 7, 0, 0, 2302, 394, 1, 0, 0, 0, 2303, 2304, 7, 2, 0, 0, 2304, 2305, 7, 7, 0, 0, 2305, 2306, 7, 4, 0, 0, 2306, 2307, 7, 21, 0, 0, 2307, 2308, 7, 0, 0, 0, 2308, 2309, 7, 5, 0, 0, 2309, 2310, 7, 0, 0, 0, 2310, 2311, 7, 13, 0, 0, 2311, 2312, 7, 11, 0, 0, 2312, 396, 1, 0, 0, 0, 2313, 2314, 7, 2, 0, 0, 2314, 2315, 7, 7, 0, 0, 2315, 2316, 7, 13, 0, 0, 2316, 2317, 7, 2, 0, 0, 2317, 2318, 7, 4, 0, 0, 2318, 2319, 7, 7, 0, 0, 2319, 2320, 7, 6, 0, 0, 2320, 2321, 7, 23, 0, 0, 2321, 2322, 5, 95, 0, 0, 2322, 2323, 7, 4, 0, 0, 2323, 2324, 7, 19, 0, 0, 2324, 2325, 7, 0, 0, 0, 2325, 2326, 7, 5, 0, 0, 2326, 2327, 7, 6, 0, 0, 2327, 2328, 7, 5, 0, 0, 2328, 398, 1, 0, 0, 0, 2329, 2330, 7, 7, 0, 0, 2330, 2331, 7, 10, 0, 0, 2331, 2332, 7, 22, 0, 0, 2332, 2333, 7, 0, 0, 0, 2333, 2334, 7, 10, 0, 0, 2334, 2335, 7, 11, 0, 0, 2335, 2336, 7, 5, 0, 0, 2336, 400, 1, 0, 0, 0, 2337, 2338, 7, 7, 0, 0, 2338, 2339, 7, 4, 0, 0, 2339, 2340, 7, 10, 0, 0, 2340, 2341, 7, 3, 0, 0, 2341, 402, 1, 0, 0, 0, 2342, 2343, 7, 7, 0, 0, 2343, 2344, 7, 4, 0, 0, 2344, 2345, 7, 21, 0, 0, 2345, 2346, 7, 13, 0, 0, 2346, 2347, 7, 7, 0, 0, 2347, 2348, 7, 22, 0, 0, 2348, 404, 1, 0, 0, 0, 2349, 2350, 7, 7, 0, 0, 2350, 2351, 7, 4, 0, 0, 2351, 2352, 7, 1, 0, 0, 2352, 2353, 7, 13, 0, 0, 2353, 2354, 7, 25, 0, 0, 2354, 2355, 7, 4, 0, 0, 2355, 406, 1, 0, 0, 0, 2356, 2357, 7, 7, 0, 0, 2357, 2358, 7, 4, 0, 0, 2358, 2359, 7, 2, 0, 0, 2359, 2360, 7, 3, 0, 0, 2360, 2361, 7, 10, 0, 0, 2361, 2362, 7, 21, 0, 0, 2362, 2363, 7, 4, 0, 0, 2363, 408, 1, 0, 0, 0, 2364, 2365, 7, 7, 0, 0, 2365, 2366, 7, 4, 0, 0, 2366, 2367, 7, 5, 0, 0, 2367, 2368, 7, 4, 0, 0, 2368, 2369, 7, 6, 0, 0, 2369, 410, 1, 0, 0, 0, 2370, 2371, 7, 7, 0, 0, 2371, 2372, 7, 4, 0, 0, 2372, 2373, 7, 6, 0, 0, 2373, 2374, 7, 8, 0, 0, 2374, 2375, 7, 7, 0, 0, 2375, 2376, 7, 11, 0, 0, 2376, 412, 1, 0, 0, 0, 2377, 2378, 7, 7, 0, 0, 2378, 2379, 7, 0, 0, 0, 2379, 2380, 7, 24, 0, 0, 2380, 2381, 7, 26, 0, 0, 2381, 2382, 7, 6, 0, 0, 2382, 414, 1, 0, 0, 0, 2383, 2384, 7, 7, 0, 0, 2384, 2385, 7, 13, 0, 0, 2385, 2386, 7, 3, 0, 0, 2386, 2387, 7, 3, 0, 0, 2387, 2388, 7, 18, 0, 0, 2388, 2389, 7, 10, 0, 0, 2389, 2390, 7, 21, 0, 0, 2390, 2391, 7, 12, 0, 0, 2391, 416, 1, 0, 0, 0, 2392, 2393, 7, 7, 0, 0, 2393, 2394, 7, 6, 0, 0, 2394, 2395, 7, 7, 0, 0, 2395, 2396, 7, 0, 0, 0, 2396, 2397, 7, 1, 0, 0, 2397, 418, 1, 0, 0, 0, 2398, 2399, 7, 5, 0, 0, 2399, 2400, 7, 10, 0, 0, 2400, 2401, 7, 1, 0, 0, 2401, 2402, 7, 4, 0, 0, 2402, 420, 1, 0, 0, 0, 2403, 2404, 7, 5, 0, 0, 2404, 2405, 7, 21, 0, 0, 2405, 2406, 7, 26, 0, 0, 2406, 2407, 7, 4, 0, 0, 2407, 2408, 7, 1, 0, 0, 2408, 2409, 7, 10, 0, 0, 2409, 422, 1, 0, 0, 0, 2410, 2411, 7, 5, 0, 0, 2411, 2412, 7, 4, 0, 0, 2412, 2413, 7, 21, 0, 0, 2413, 2414, 7, 13, 0, 0, 2414, 2415, 7, 11, 0, 0, 2415, 2416, 7, 22, 0, 0, 2416, 424, 1, 0, 0, 0, 2417, 2418, 7, 5, 0, 0, 2418, 2419, 7, 4, 0, 0, 2419, 2420, 7, 3, 0, 0, 2420, 2421, 7, 4, 0, 0, 2421, 2422, 7, 21, 0, 0, 2422, 2423, 7, 6, 0, 0, 2423, 426, 1, 0, 0, 0, 2424, 2425, 7, 5, 0, 0, 2425, 2426, 7, 4, 0, 0, 2426, 2427, 7, 5, 0, 0, 2427, 2428, 7, 5, 0, 0, 2428, 2429, 7, 0, 0, 0, 2429, 2430, 7, 13, 0, 0, 2430, 2431, 7, 11, 0, 0, 2431, 428, 1, 0, 0, 0, 2432, 2433, 7, 5, 0, 0, 2433, 2434, 7, 4, 0, 0, 2434, 2435, 7, 5, 0, 0, 2435, 2436, 7, 5, 0, 0, 2436, 2437, 7, 0, 0, 0, 2437, 2438, 7, 13, 0, 0, 2438, 2439, 7, 11, 0, 0, 2439, 2440, 5, 95, 0, 0, 2440, 2441, 7, 8, 0, 0, 2441, 2442, 7, 5, 0, 0, 2442, 2443, 7, 4, 0, 0, 2443, 2444, 7, 7, 0, 0, 2444, 430, 1, 0, 0, 0, 2445, 2446, 7, 5, 0, 0, 2446, 2447, 7, 4, 0, 0, 2447, 2448, 7, 6, 0, 0, 2448, 432, 1, 0, 0, 0, 2449, 2450, 7, 5, 0, 0, 2450, 2451, 7, 0, 0, 0, 2451, 2452, 7, 24, 0, 0, 2452, 2453, 7, 11, 0, 0, 2453, 2454, 7, 4, 0, 0, 2454, 2455, 7, 22, 0, 0, 2455, 434, 1, 0, 0, 0, 2456, 2457, 7, 5, 0, 0, 2457, 2458, 7, 0, 0, 0, 2458, 2459, 7, 11, 0, 0, 2459, 436, 1, 0, 0, 0, 2460, 2461, 7, 5, 0, 0, 2461, 2462, 7, 0, 0, 0, 2462, 2463, 7, 11, 0, 0, 2463, 2464, 7, 26, 0, 0, 2464, 438, 1, 0, 0, 0, 2465, 2466, 7, 5, 0, 0, 2466, 2467, 7, 0, 0, 0, 2467, 2468, 7, 27, 0, 0, 2468, 2469, 7, 4, 0, 0, 2469, 440, 1, 0, 0, 0, 2470, 2471, 7, 5, 0, 0, 2471, 2472, 7, 12, 0, 0, 2472, 2473, 7, 0, 0, 0, 2473, 2474, 7, 2, 0, 0, 2474, 442, 1, 0, 0, 0, 2475, 2476, 7, 5, 0, 0, 2476, 2477, 7, 1, 0, 0, 2477, 2478, 7, 10, 0, 0, 2478, 2479, 7, 3, 0, 0, 2479, 2480, 7, 3, 0, 0, 2480, 444, 1, 0, 0, 0, 2481, 2482, 7, 5, 0, 0, 2482, 2483, 7, 1, 0, 0, 2483, 2484, 7, 10, 0, 0, 2484, 2485, 7, 3, 0, 0, 2485, 2486, 7, 3, 0, 0, 2486, 2487, 7, 0, 0, 0, 2487, 2488, 7, 11, 0, 0, 2488, 2489, 7, 6, 0, 0, 2489, 446, 1, 0, 0, 0, 2490, 2491, 7, 5, 0, 0, 2491, 2492, 7, 28, 0, 0, 2492, 2493, 7, 7, 0, 0, 2493, 2494, 7, 6, 0, 0, 2494, 448, 1, 0, 0, 0, 2495, 2496, 7, 5, 0, 0, 2496, 2497, 7, 6, 0, 0, 2497, 2498, 7, 10, 0, 0, 2498, 2499, 7, 7, 0, 0, 2499, 2500, 7, 6, 0, 0, 2500, 450, 1, 0, 0, 0, 2501, 2502, 7, 5, 0, 0, 2502, 2503, 7, 6, 0, 0, 2503, 2504, 7, 22, 0, 0, 2504, 2505, 7, 22, 0, 0, 2505, 2506, 7, 4, 0, 0, 2506, 2507, 7, 25, 0, 0, 2507, 2508, 5, 95, 0, 0, 2508, 2509, 7, 2, 0, 0, 2509, 2510, 7, 13, 0, 0, 2510, 2511, 7, 2, 0, 0, 2511, 452, 1, 0, 0, 0, 2512, 2513, 7, 5, 0, 0, 2513, 2514, 7, 6, 0, 0, 2514, 2515, 7, 22, 0, 0, 2515, 2516, 7, 22, 0, 0, 2516, 2517, 7, 4, 0, 0, 2517, 2518, 7, 25, 0, 0, 2518, 2519, 5, 95, 0, 0, 2519, 2520, 7, 5, 0, 0, 2520, 2521, 7, 10, 0, 0, 2521, 2522, 7, 1, 0, 0, 2522, 2523, 7, 2, 0, 0, 2523, 454, 1, 0, 0, 0, 2524, 2525, 7, 5, 0, 0, 2525, 2526, 7, 6, 0, 0, 2526, 2527, 7, 7, 0, 0, 2527, 2528, 7, 0, 0, 0, 2528, 2529, 7, 11, 0, 0, 2529, 2530, 7, 24, 0, 0, 2530, 456, 1, 0, 0, 0, 2531, 2532, 7, 5, 0, 0, 2532, 2533, 7, 8, 0, 0, 2533, 2534, 7, 1, 0, 0, 2534, 458, 1, 0, 0, 0, 2535, 2536, 7, 6, 0, 0, 2536, 2537, 7, 10, 0, 0, 2537, 2538, 7, 11, 0, 0, 2538, 460, 1, 0, 0, 0, 2539, 2540, 7, 6, 0, 0, 2540, 2541, 7, 10, 0, 0, 2541, 2542, 7, 11, 0, 0, 2542, 2543, 7, 26, 0, 0, 2543, 462, 1, 0, 0, 0, 2544, 2545, 7, 6, 0, 0, 2545, 2546, 7, 26, 0, 0, 2546, 2547, 7, 4, 0, 0, 2547, 2548, 7, 11, 0, 0, 2548, 464, 1, 0, 0, 0, 2549, 2550, 7, 6, 0, 0, 2550, 2551, 7, 0, 0, 0, 2551, 2552, 7, 1, 0, 0, 2552, 2553, 7, 4, 0, 0, 2553, 466, 1, 0, 0, 0, 2554, 2555, 7, 6, 0, 0, 2555, 2556, 7, 0, 0, 0, 2556, 2557, 7, 1, 0, 0, 2557, 2558, 7, 4, 0, 0, 2558, 2559, 7, 5, 0, 0, 2559, 2560, 7, 6, 0, 0, 2560, 2561, 7, 10, 0, 0, 2561, 2562, 7, 1, 0, 0, 2562, 2563, 7, 2, 0, 0, 2563, 468, 1, 0, 0, 0, 2564, 2565, 7, 6, 0, 0, 2565, 2566, 7, 7, 0, 0, 2566, 2567, 7, 10, 0, 0, 2567, 2568, 7, 0, 0, 0, 2568, 2569, 7, 3, 0, 0, 2569, 2570, 7, 0, 0, 0, 2570, 2571, 7, 11, 0, 0, 2571, 2572, 7, 24, 0, 0, 2572, 470, 1, 0, 0, 0, 2573, 2574, 7, 6, 0, 0, 2574, 2575, 7, 7, 0, 0, 2575, 2576, 7, 0, 0, 0, 2576, 2577, 7, 1, 0, 0, 2577, 472, 1, 0, 0, 0, 2578, 2579, 7, 6, 0, 0, 2579, 2580, 7, 23, 0, 0, 2580, 2581, 7, 2, 0, 0, 2581, 2582, 7, 4, 0, 0, 2582, 2583, 7, 22, 0, 0, 2583, 474, 1, 0, 0, 0, 2584, 2585, 7, 8, 0, 0, 2585, 2586, 7, 18, 0, 0, 2586, 2587, 7, 0, 0, 0, 2587, 2588, 7, 24, 0, 0, 2588, 2589, 7, 0, 0, 0, 2589, 2590, 7, 11, 0, 0, 2590, 2591, 7, 6, 0, 0, 2591, 476, 1, 0, 0, 0, 2592, 2593, 7, 8, 0, 0, 2593, 2594, 7, 0, 0, 0, 2594, 2595, 7, 11, 0, 0, 2595, 2596, 7, 6, 0, 0, 2596, 478, 1, 0, 0, 0, 2597, 2598, 7, 8, 0, 0, 2598, 2599, 7, 0, 0, 0, 2599, 2600, 7, 11, 0, 0, 2600, 2601, 7, 6, 0, 0, 2601, 2602, 5, 56, 0, 0, 2602, 480, 1, 0, 0, 0, 2603, 2604, 7, 8, 0, 0, 2604, 2605, 7, 0, 0, 0, 2605, 2606, 7, 11, 0, 0, 2606, 2607, 7, 6, 0, 0, 2607, 2608, 5, 49, 0, 0, 2608, 2609, 5, 54, 0, 0, 2609, 482, 1, 0, 0, 0, 2610, 2611, 7, 8, 0, 0, 2611, 2612, 7, 0, 0, 0, 2612, 2613, 7, 11, 0, 0, 2613, 2614, 7, 6, 0, 0, 2614, 2615, 5, 51, 0, 0, 2615, 2616, 5, 50, 0, 0, 2616, 484, 1, 0, 0, 0, 2617, 2618, 7, 8, 0, 0, 2618, 2619, 7, 0, 0, 0, 2619, 2620, 7, 11, 0, 0, 2620, 2621, 7, 6, 0, 0, 2621, 2622, 5, 54, 0, 0, 2622, 2623, 5, 52, 0, 0, 2623, 486, 1, 0, 0, 0, 2624, 2625, 7, 8, 0, 0, 2625, 2626, 7, 0, 0, 0, 2626, 2627, 7, 11, 0, 0, 2627, 2628, 7, 6, 0, 0, 2628, 2629, 5, 49, 0, 0, 2629, 2630, 5, 50, 0, 0, 2630, 2631, 5, 56, 0, 0, 2631, 488, 1, 0, 0, 0, 2632, 2633, 7, 8, 0, 0, 2633, 2634, 7, 0, 0, 0, 2634, 2635, 7, 11, 0, 0, 2635, 2636, 7, 6, 0, 0, 2636, 2637, 5, 50, 0, 0, 2637, 2638, 5, 53, 0, 0, 2638, 2639, 5, 54, 0, 0, 2639, 490, 1, 0, 0, 0, 2640, 2641, 7, 8, 0, 0, 2641, 2642, 7, 11, 0, 0, 2642, 2643, 7, 0, 0, 0, 2643, 2644, 7, 13, 0, 0, 2644, 2645, 7, 11, 0, 0, 2645, 492, 1, 0, 0, 0, 2646, 2647, 7, 8, 0, 0, 2647, 2648, 7, 11, 0, 0, 2648, 2649, 7, 5, 0, 0, 2649, 2650, 7, 0, 0, 0, 2650, 2651, 7, 24, 0, 0, 2651, 2652, 7, 11, 0, 0, 2652, 2653, 7, 4, 0, 0, 2653, 2654, 7, 22, 0, 0, 2654, 494, 1, 0, 0, 0, 2655, 2656, 7, 8, 0, 0, 2656, 2657, 7, 2, 0, 0, 2657, 2658, 7, 2, 0, 0, 2658, 2659, 7, 4, 0, 0, 2659, 2660, 7, 7, 0, 0, 2660, 496, 1, 0, 0, 0, 2661, 2662, 7, 8, 0, 0, 2662, 2663, 7, 5, 0, 0, 2663, 2664, 7, 4, 0, 0, 2664, 498, 1, 0, 0, 0, 2665, 2666, 7, 8, 0, 0, 2666, 2667, 7, 5, 0, 0, 2667, 2668, 7, 1, 0, 0, 2668, 2669, 7, 10, 0, 0, 2669, 2670, 7, 3, 0, 0, 2670, 2671, 7, 3, 0, 0, 2671, 2672, 7, 0, 0, 0, 2672, 2673, 7, 11, 0, 0, 2673, 2674, 7, 6, 0, 0, 2674, 500, 1, 0, 0, 0, 2675, 2676, 7, 25, 0, 0, 2676, 2677, 7, 10, 0, 0, 2677, 2678, 7, 3, 0, 0, 2678, 2679, 7, 8, 0, 0, 2679, 2680, 7, 4, 0, 0, 2680, 502, 1, 0, 0, 0, 2681, 2682, 7, 25, 0, 0, 2682, 2683, 7, 10, 0, 0, 2683, 2684, 7, 7, 0, 0, 2684, 2685, 7, 18, 0, 0, 2685, 2686, 7, 0, 0, 0, 2686, 2687, 7, 11, 0, 0, 2687, 2688, 7, 10, 0, 0, 2688, 2689, 7, 7, 0, 0, 2689, 2690, 7, 23, 0, 0, 2690, 504, 1, 0, 0, 0, 2691, 2692, 7, 25, 0, 0, 2692, 2693, 7, 10, 0, 0, 2693, 2694, 7, 7, 0, 0, 2694, 2695, 7, 21, 0, 0, 2695, 2696, 7, 26, 0, 0, 2696, 2697, 7, 10, 0, 0, 2697, 2698, 7, 7, 0, 0, 2698, 506, 1, 0, 0, 0, 2699, 2700, 7, 25, 0, 0, 2700, 2701, 7, 10, 0, 0, 2701, 2702, 7, 7, 0, 0, 2702, 2703, 7, 0, 0, 0, 2703, 2704, 7, 10, 0, 0, 2704, 2705, 7, 18, 0, 0, 2705, 2706, 7, 3, 0, 0, 2706, 2707, 7, 4, 0, 0, 2707, 508, 1, 0, 0, 0, 2708, 2709, 7, 14, 0, 0, 2709, 2710, 7, 26, 0, 0, 2710, 2711, 7, 4, 0, 0, 2711, 2712, 7, 11, 0, 0, 2712, 510, 1, 0, 0, 0, 2713, 2714, 7, 14, 0, 0, 2714, 2715, 7, 26, 0, 0, 2715, 2716, 7, 4, 0, 0, 2716, 2717, 7, 7, 0, 0, 2717, 2718, 7, 4, 0, 0, 2718, 512, 1, 0, 0, 0, 2719, 2720, 7, 14, 0, 0, 2720, 2721, 7, 0, 0, 0, 2721, 2722, 7, 6, 0, 0, 2722, 2723, 7, 26, 0, 0, 2723, 514, 1, 0, 0, 0, 2724, 2725, 7, 19, 0, 0, 2725, 2726, 7, 13, 0, 0, 2726, 2727, 7, 7, 0, 0, 2727, 516, 1, 0, 0, 0, 2728, 2729, 7, 23, 0, 0, 2729, 2730, 7, 4, 0, 0, 2730, 2731, 7, 10, 0, 0, 2731, 2732, 7, 7, 0, 0, 2732, 518, 1, 0, 0, 0, 2733, 2734, 7, 23, 0, 0, 2734, 2735, 7, 0, 0, 0, 2735, 2736, 7, 4, 0, 0, 2736, 2737, 7, 3, 0, 0, 2737, 2738, 7, 22, 0, 0, 2738, 520, 1, 0, 0, 0, 2739, 2740, 7, 27, 0, 0, 2740, 2741, 7, 13, 0, 0, 2741, 2742, 7, 11, 0, 0, 2742, 2743, 7, 4, 0, 0, 2743, 2744, 7, 22, 0, 0, 2744, 522, 1, 0, 0, 0, 2745, 2746, 7, 27, 0, 0, 2746, 2747, 7, 13, 0, 0, 2747, 2748, 7, 11, 0, 0, 2748, 2749, 7, 4, 0, 0, 2749, 2750, 7, 22, 0, 0, 2750, 2751, 5, 95, 0, 0, 2751, 2752, 7, 22, 0, 0, 2752, 2753, 7, 10, 0, 0, 2753, 2754, 7, 6, 0, 0, 2754, 2755, 7, 4, 0, 0, 2755, 2756, 7, 6, 0, 0, 2756, 2757, 7, 0, 0, 0, 2757, 2758, 7, 1, 0, 0, 2758, 2759, 7, 4, 0, 0, 2759, 524, 1, 0, 0, 0, 2760, 2761, 7, 27, 0, 0, 2761, 2762, 7, 13, 0, 0, 2762, 2763, 7, 11, 0, 0, 2763, 2764, 7, 4, 0, 0, 2764, 2765, 7, 22, 0, 0, 2765, 2766, 5, 95, 0, 0, 2766, 2767, 7, 6, 0, 0, 2767, 2768, 7, 0, 0, 0, 2768, 2769, 7, 1, 0, 0, 2769, 2770, 7, 4, 0, 0, 2770, 526, 1, 0, 0, 0, 2771, 2772, 7, 10, 0, 0, 2772, 2773, 7, 18, 0, 0, 2773, 2774, 7, 5, 0, 0, 2774, 2775, 7, 6, 0, 0, 2775, 2776, 7, 7, 0, 0, 2776, 2777, 7, 10, 0, 0, 2777, 2778, 7, 21, 0, 0, 2778, 2779, 7, 6, 0, 0, 2779, 528, 1, 0, 0, 0, 2780, 2781, 7, 10, 0, 0, 2781, 2782, 7, 24, 0, 0, 2782, 2783, 7, 24, 0, 0, 2783, 2784, 7, 7, 0, 0, 2784, 2785, 7, 4, 0, 0, 2785, 2786, 7, 24, 0, 0, 2786, 2787, 7, 10, 0, 0, 2787, 2788, 7, 6, 0, 0, 2788, 2789, 7, 4, 0, 0, 2789, 530, 1, 0, 0, 0, 2790, 2791, 7, 10, 0, 0, 2791, 2792, 7, 24, 0, 0, 2792, 2793, 7, 24, 0, 0, 2793, 2794, 7, 7, 0, 0, 2794, 2795, 7, 4, 0, 0, 2795, 2796, 7, 24, 0, 0, 2796, 2797, 7, 10, 0, 0, 2797, 2798, 7, 6, 0, 0, 2798, 2799, 7, 4, 0, 0, 2799, 2800, 7, 5, 0, 0, 2800, 532, 1, 0, 0, 0, 2801, 2802, 7, 10, 0, 0, 2802, 2803, 7, 3, 0, 0, 2803, 2804, 7, 6, 0, 0, 2804, 2805, 7, 4, 0, 0, 2805, 2806, 7, 7, 0, 0, 2806, 534, 1, 0, 0, 0, 2807, 2808, 7, 21, 0, 0, 2808, 2809, 7, 10, 0, 0, 2809, 2810, 7, 6, 0, 0, 2810, 2811, 7, 10, 0, 0, 2811, 2812, 7, 3, 0, 0, 2812, 2813, 7, 13, 0, 0, 2813, 2814, 7, 24, 0, 0, 2814, 536, 1, 0, 0, 0, 2815, 2816, 7, 21, 0, 0, 2816, 2817, 7, 3, 0, 0, 2817, 2818, 7, 4, 0, 0, 2818, 2819, 7, 10, 0, 0, 2819, 2820, 7, 7, 0, 0, 2820, 538, 1, 0, 0, 0, 2821, 2822, 7, 21, 0, 0, 2822, 2823, 7, 3, 0, 0, 2823, 2824, 7, 13, 0, 0, 2824, 2825, 7, 11, 0, 0, 2825, 2826, 7, 4, 0, 0, 2826, 540, 1, 0, 0, 0, 2827, 2828, 7, 21, 0, 0, 2828, 2829, 7, 13, 0, 0, 2829, 2830, 7, 11, 0, 0, 2830, 2831, 7, 5, 0, 0, 2831, 2832, 7, 6, 0, 0, 2832, 2833, 7, 7, 0, 0, 2833, 2834, 7, 10, 0, 0, 2834, 2835, 7, 0, 0, 0, 2835, 2836, 7, 11, 0, 0, 2836, 2837, 7, 6, 0, 0, 2837, 542, 1, 0, 0, 0, 2838, 2839, 7, 21, 0, 0, 2839, 2840, 7, 8, 0, 0, 2840, 2841, 7, 7, 0, 0, 2841, 2842, 7, 7, 0, 0, 2842, 2843, 7, 4, 0, 0, 2843, 2844, 7, 11, 0, 0, 2844, 2845, 7, 6, 0, 0, 2845, 2846, 5, 95, 0, 0, 2846, 2847, 7, 7, 0, 0, 2847, 2848, 7, 13, 0, 0, 2848, 2849, 7, 3, 0, 0, 2849, 2850, 7, 4, 0, 0, 2850, 544, 1, 0, 0, 0, 2851, 2852, 7, 21, 0, 0, 2852, 2853, 7, 8, 0, 0, 2853, 2854, 7, 7, 0, 0, 2854, 2855, 7, 7, 0, 0, 2855, 2856, 7, 4, 0, 0, 2856, 2857, 7, 11, 0, 0, 2857, 2858, 7, 6, 0, 0, 2858, 2859, 5, 95, 0, 0, 2859, 2860, 7, 8, 0, 0, 2860, 2861, 7, 5, 0, 0, 2861, 2862, 7, 4, 0, 0, 2862, 2863, 7, 7, 0, 0, 2863, 546, 1, 0, 0, 0, 2864, 2865, 7, 22, 0, 0, 2865, 2866, 7, 10, 0, 0, 2866, 2867, 7, 6, 0, 0, 2867, 2868, 7, 10, 0, 0, 2868, 548, 1, 0, 0, 0, 2869, 2870, 7, 22, 0, 0, 2870, 2871, 7, 0, 0, 0, 2871, 2872, 7, 7, 0, 0, 2872, 2873, 7, 4, 0, 0, 2873, 2874, 7, 21, 0, 0, 2874, 2875, 7, 6, 0, 0, 2875, 2876, 7, 13, 0, 0, 2876, 2877, 7, 7, 0, 0, 2877, 2878, 7, 23, 0, 0, 2878, 550, 1, 0, 0, 0, 2879, 2880, 7, 22, 0, 0, 2880, 2881, 7, 7, 0, 0, 2881, 2882, 7, 23, 0, 0, 2882, 2883, 7, 7, 0, 0, 2883, 2884, 7, 8, 0, 0, 2884, 2885, 7, 11, 0, 0, 2885, 552, 1, 0, 0, 0, 2886, 2887, 7, 4, 0, 0, 2887, 2888, 7, 19, 0, 0, 2888, 2889, 7, 10, 0, 0, 2889, 2890, 7, 21, 0, 0, 2890, 2891, 7, 6, 0, 0, 2891, 554, 1, 0, 0, 0, 2892, 2893, 7, 4, 0, 0, 2893, 2894, 7, 19, 0, 0, 2894, 2895, 7, 0, 0, 0, 2895, 2896, 7, 5, 0, 0, 2896, 2897, 7, 6, 0, 0, 2897, 2898, 7, 0, 0, 0, 2898, 2899, 7, 11, 0, 0, 2899, 2900, 7, 24, 0, 0, 2900, 556, 1, 0, 0, 0, 2901, 2902, 7, 9, 0, 0, 2902, 2903, 7, 8, 0, 0, 2903, 2904, 7, 11, 0, 0, 2904, 2905, 7, 21, 0, 0, 2905, 2906, 7, 6, 0, 0, 2906, 2907, 7, 0, 0, 0, 2907, 2908, 7, 13, 0, 0, 2908, 2909, 7, 11, 0, 0, 2909, 558, 1, 0, 0, 0, 2910, 2911, 7, 24, 0, 0, 2911, 2912, 7, 28, 0, 0, 2912, 2913, 7, 3, 0, 0, 2913, 2914, 7, 5, 0, 0, 2914, 2915, 7, 6, 0, 0, 2915, 2916, 7, 10, 0, 0, 2916, 2917, 7, 6, 0, 0, 2917, 2918, 7, 8, 0, 0, 2918, 2919, 7, 5, 0, 0, 2919, 560, 1, 0, 0, 0, 2920, 2921, 7, 24, 0, 0, 2921, 2922, 7, 7, 0, 0, 2922, 2923, 7, 10, 0, 0, 2923, 2924, 7, 11, 0, 0, 2924, 2925, 7, 6, 0, 0, 2925, 562, 1, 0, 0, 0, 2926, 2927, 7, 0, 0, 0, 2927, 2928, 7, 11, 0, 0, 2928, 2929, 7, 5, 0, 0, 2929, 2930, 7, 6, 0, 0, 2930, 2931, 7, 10, 0, 0, 2931, 2932, 7, 11, 0, 0, 2932, 2933, 7, 6, 0, 0, 2933, 564, 1, 0, 0, 0, 2934, 2935, 7, 0, 0, 0, 2935, 2936, 7, 11, 0, 0, 2936, 2937, 7, 9, 0, 0, 2937, 2938, 7, 0, 0, 0, 2938, 2939, 7, 11, 0, 0, 2939, 2940, 7, 0, 0, 0, 2940, 2941, 7, 6, 0, 0, 2941, 2942, 7, 23, 0, 0, 2942, 566, 1, 0, 0, 0, 2943, 2944, 7, 11, 0, 0, 2944, 2945, 7, 8, 0, 0, 2945, 2946, 7, 1, 0, 0, 2946, 2947, 7, 18, 0, 0, 2947, 2948, 7, 4, 0, 0, 2948, 2949, 7, 7, 0, 0, 2949, 568, 1, 0, 0, 0, 2950, 2951, 7, 11, 0, 0, 2951, 2952, 7, 8, 0, 0, 2952, 2953, 7, 1, 0, 0, 2953, 2954, 7, 4, 0, 0, 2954, 2955, 7, 7, 0, 0, 2955, 2956, 7, 0, 0, 0, 2956, 2957, 7, 21, 0, 0, 2957, 570, 1, 0, 0, 0, 2958, 2959, 7, 13, 0, 0, 2959, 2960, 7, 11, 0, 0, 2960, 572, 1, 0, 0, 0, 2961, 2962, 7, 13, 0, 0, 2962, 2963, 7, 2, 0, 0, 2963, 2964, 7, 4, 0, 0, 2964, 2965, 7, 11, 0, 0, 2965, 574, 1, 0, 0, 0, 2966, 2967, 7, 2, 0, 0, 2967, 2968, 7, 10, 0, 0, 2968, 2969, 7, 7, 0, 0, 2969, 2970, 7, 6, 0, 0, 2970, 2971, 7, 0, 0, 0, 2971, 2972, 7, 6, 0, 0, 2972, 2973, 7, 0, 0, 0, 2973, 2974, 7, 13, 0, 0, 2974, 2975, 7, 11, 0, 0, 2975, 576, 1, 0, 0, 0, 2976, 2977, 7, 2, 0, 0, 2977, 2978, 7, 7, 0, 0, 2978, 2979, 7, 13, 0, 0, 2979, 2980, 7, 21, 0, 0, 2980, 2981, 7, 4, 0, 0, 2981, 2982, 7, 22, 0, 0, 2982, 2983, 7, 8, 0, 0, 2983, 2984, 7, 7, 0, 0, 2984, 2985, 7, 4, 0, 0, 2985, 578, 1, 0, 0, 0, 2986, 2987, 7, 2, 0, 0, 2987, 2988, 7, 7, 0, 0, 2988, 2989, 7, 13, 0, 0, 2989, 2990, 7, 22, 0, 0, 2990, 2991, 7, 8, 0, 0, 2991, 2992, 7, 21, 0, 0, 2992, 2993, 7, 6, 0, 0, 2993, 580, 1, 0, 0, 0, 2994, 2995, 7, 2, 0, 0, 2995, 2996, 7, 7, 0, 0, 2996, 2997, 7, 13, 0, 0, 2997, 2998, 7, 29, 0, 0, 2998, 2999, 7, 4, 0, 0, 2999, 3000, 7, 21, 0, 0, 3000, 3001, 7, 6, 0, 0, 3001, 582, 1, 0, 0, 0, 3002, 3003, 7, 28, 0, 0, 3003, 3004, 7, 8, 0, 0, 3004, 3005, 7, 4, 0, 0, 3005, 3006, 7, 7, 0, 0, 3006, 3007, 7, 23, 0, 0, 3007, 584, 1, 0, 0, 0, 3008, 3009, 7, 7, 0, 0, 3009, 3010, 7, 4, 0, 0, 3010, 3011, 7, 21, 0, 0, 3011, 3012, 7, 13, 0, 0, 3012, 3013, 7, 7, 0, 0, 3013, 3014, 7, 22, 0, 0, 3014, 3015, 7, 5, 0, 0, 3015, 586, 1, 0, 0, 0, 3016, 3017, 7, 7, 0, 0, 3017, 3018, 7, 4, 0, 0, 3018, 3019, 7, 9, 0, 0, 3019, 3020, 7, 4, 0, 0, 3020, 3021, 7, 7, 0, 0, 3021, 3022, 7, 4, 0, 0, 3022, 3023, 7, 11, 0, 0, 3023, 3024, 7, 21, 0, 0, 3024, 3025, 7, 4, 0, 0, 3025, 588, 1, 0, 0, 0, 3026, 3027, 7, 7, 0, 0, 3027, 3028, 7, 4, 0, 0, 3028, 3029, 7, 11, 0, 0, 3029, 3030, 7, 10, 0, 0, 3030, 3031, 7, 1, 0, 0, 3031, 3032, 7, 4, 0, 0, 3032, 590, 1, 0, 0, 0, 3033, 3034, 7, 7, 0, 0, 3034, 3035, 7, 4, 0, 0, 3035, 3036, 7, 25, 0, 0, 3036, 3037, 7, 13, 0, 0, 3037, 3038, 7, 12, 0, 0, 3038, 3039, 7, 4, 0, 0, 3039, 592, 1, 0, 0, 0, 3040, 3041, 7, 5, 0, 0, 3041, 3042, 7, 8, 0, 0, 3042, 3043, 7, 18, 0, 0, 3043, 3044, 7, 5, 0, 0, 3044, 3045, 7, 6, 0, 0, 3045, 3046, 7, 7, 0, 0, 3046, 3047, 7, 0, 0, 0, 3047, 3048, 7, 11, 0, 0, 3048, 3049, 7, 24, 0, 0, 3049, 594, 1, 0, 0, 0, 3050, 3051, 7, 5, 0, 0, 3051, 3052, 7, 23, 0, 0, 3052, 3053, 7, 5, 0, 0, 3053, 3054, 7, 6, 0, 0, 3054, 3055, 7, 4, 0, 0, 3055, 3056, 7, 1, 0, 0, 3056, 3057, 5, 95, 0, 0, 3057, 3058, 7, 8, 0, 0, 3058, 3059, 7, 5, 0, 0, 3059, 3060, 7, 4, 0, 0, 3060, 3061, 7, 7, 0, 0, 3061, 596, 1, 0, 0, 0, 3062, 3063, 7, 6, 0, 0, 3063, 3064, 7, 4, 0, 0, 3064, 3065, 7, 1, 0, 0, 3065, 3066, 7, 2, 0, 0, 3066, 3067, 7, 13, 0, 0, 3067, 3068, 7, 7, 0, 0, 3068, 3069, 7, 10, 0, 0, 3069, 3070, 7, 3, 0, 0, 3070, 598, 1, 0, 0, 0, 3071, 3072, 7, 8, 0, 0, 3072, 3073, 7, 11, 0, 0, 3073, 3074, 7, 0, 0, 0, 3074, 3075, 7, 28, 0, 0, 3075, 3076, 7, 8, 0, 0, 3076, 3077, 7, 4, 0, 0, 3077, 600, 1, 0, 0, 0, 3078, 3079, 7, 8, 0, 0, 3079, 3080, 7, 11, 0, 0, 3080, 3081, 7, 0, 0, 0, 3081, 3082, 7, 6, 0, 0, 3082, 602, 1, 0, 0, 0, 3083, 3084, 7, 25, 0, 0, 3084, 3085, 7, 10, 0, 0, 3085, 3086, 7, 3, 0, 0, 3086, 3087, 7, 8, 0, 0, 3087, 3088, 7, 4, 0, 0, 3088, 3089, 7, 5, 0, 0, 3089, 604, 1, 0, 0, 0, 3090, 3091, 7, 10, 0, 0, 3091, 3092, 7, 21, 0, 0, 3092, 3093, 7, 23, 0, 0, 3093, 3094, 7, 21, 0, 0, 3094, 3095, 7, 3, 0, 0, 3095, 3096, 7, 0, 0, 0, 3096, 3097, 7, 21, 0, 0, 3097, 606, 1, 0, 0, 0, 3098, 3099, 7, 18, 0, 0, 3099, 3100, 7, 0, 0, 0, 3100, 3101, 7, 11, 0, 0, 3101, 3102, 7, 22, 0, 0, 3102, 3103, 7, 0, 0, 0, 3103, 3104, 7, 11, 0, 0, 3104, 3105, 7, 24, 0, 0, 3105, 608, 1, 0, 0, 0, 3106, 3107, 7, 18, 0, 0, 3107, 3108, 7, 0, 0, 0, 3108, 3109, 7, 11, 0, 0, 3109, 3110, 7, 22, 0, 0, 3110, 3111, 7, 0, 0, 0, 3111, 3112, 7, 11, 0, 0, 3112, 3113, 7, 24, 0, 0, 3113, 3114, 7, 5, 0, 0, 3114, 610, 1, 0, 0, 0, 3115, 3116, 7, 21, 0, 0, 3116, 3117, 7, 13, 0, 0, 3117, 3118, 7, 11, 0, 0, 3118, 3119, 7, 11, 0, 0, 3119, 3120, 7, 4, 0, 0, 3120, 3121, 7, 21, 0, 0, 3121, 3122, 7, 6, 0, 0, 3122, 3123, 7, 0, 0, 0, 3123, 3124, 7, 11, 0, 0, 3124, 3125, 7, 24, 0, 0, 3125, 612, 1, 0, 0, 0, 3126, 3127, 7, 22, 0, 0, 3127, 3128, 7, 4, 0, 0, 3128, 3129, 7, 5, 0, 0, 3129, 3130, 7, 6, 0, 0, 3130, 3131, 7, 0, 0, 0, 3131, 3132, 7, 11, 0, 0, 3132, 3133, 7, 10, 0, 0, 3133, 3134, 7, 6, 0, 0, 3134, 3135, 7, 0, 0, 0, 3135, 3136, 7, 13, 0, 0, 3136, 3137, 7, 11, 0, 0, 3137, 614, 1, 0, 0, 0, 3138, 3139, 7, 22, 0, 0, 3139, 3140, 7, 0, 0, 0, 3140, 3141, 7, 9, 0, 0, 3141, 3142, 7, 9, 0, 0, 3142, 3143, 7, 4, 0, 0, 3143, 3144, 7, 7, 0, 0, 3144, 3145, 7, 4, 0, 0, 3145, 3146, 7, 11, 0, 0, 3146, 3147, 7, 6, 0, 0, 3147, 616, 1, 0, 0, 0, 3148, 3149, 7, 22, 0, 0, 3149, 3150, 7, 0, 0, 0, 3150, 3151, 7, 7, 0, 0, 3151, 3152, 7, 4, 0, 0, 3152, 3153, 7, 21, 0, 0, 3153, 3154, 7, 6, 0, 0, 3154, 3155, 7, 4, 0, 0, 3155, 3156, 7, 22, 0, 0, 3156, 618, 1, 0, 0, 0, 3157, 3158, 7, 4, 0, 0, 3158, 3159, 7, 22, 0, 0, 3159, 3160, 7, 24, 0, 0, 3160, 3161, 7, 4, 0, 0, 3161, 620, 1, 0, 0, 0, 3162, 3163, 7, 4, 0, 0, 3163, 3164, 7, 22, 0, 0, 3164, 3165, 7, 24, 0, 0, 3165, 3166, 7, 4, 0, 0, 3166, 3167, 7, 5, 0, 0, 3167, 622, 1, 0, 0, 0, 3168, 3169, 7, 4, 0, 0, 3169, 3170, 7, 3, 0, 0, 3170, 3171, 7, 4, 0, 0, 3171, 3172, 7, 1, 0, 0, 3172, 3173, 7, 4, 0, 0, 3173, 3174, 7, 11, 0, 0, 3174, 3175, 7, 6, 0, 0, 3175, 624, 1, 0, 0, 0, 3176, 3177, 7, 4, 0, 0, 3177, 3178, 7, 3, 0, 0, 3178, 3179, 7, 4, 0, 0, 3179, 3180, 7, 1, 0, 0, 3180, 3181, 7, 4, 0, 0, 3181, 3182, 7, 11, 0, 0, 3182, 3183, 7, 6, 0, 0, 3183, 3184, 7, 5, 0, 0, 3184, 626, 1, 0, 0, 0, 3185, 3186, 7, 9, 0, 0, 3186, 3187, 7, 0, 0, 0, 3187, 3188, 7, 7, 0, 0, 3188, 3189, 7, 5, 0, 0, 3189, 3190, 7, 6, 0, 0, 3190, 628, 1, 0, 0, 0, 3191, 3192, 7, 24, 0, 0, 3192, 3193, 7, 7, 0, 0, 3193, 3194, 7, 10, 0, 0, 3194, 3195, 7, 2, 0, 0, 3195, 3196, 7, 26, 0, 0, 3196, 630, 1, 0, 0, 0, 3197, 3198, 7, 24, 0, 0, 3198, 3199, 7, 7, 0, 0, 3199, 3200, 7, 13, 0, 0, 3200, 3201, 7, 8, 0, 0, 3201, 3202, 7, 2, 0, 0, 3202, 3203, 7, 5, 0, 0, 3203, 632, 1, 0, 0, 0, 3204, 3205, 7, 12, 0, 0, 3205, 3206, 7, 4, 0, 0, 3206, 3207, 7, 4, 0, 0, 3207, 3208, 7, 2, 0, 0, 3208, 634, 1, 0, 0, 0, 3209, 3210, 7, 3, 0, 0, 3210, 3211, 7, 10, 0, 0, 3211, 3212, 7, 18, 0, 0, 3212, 3213, 7, 4, 0, 0, 3213, 3214, 7, 3, 0, 0, 3214, 636, 1, 0, 0, 0, 3215, 3216, 7, 3, 0, 0, 3216, 3217, 7, 10, 0, 0, 3217, 3218, 7, 18, 0, 0, 3218, 3219, 7, 4, 0, 0, 3219, 3220, 7, 3, 0, 0, 3220, 3221, 7, 4, 0, 0, 3221, 3222, 7, 22, 0, 0, 3222, 638, 1, 0, 0, 0, 3223, 3224, 7, 3, 0, 0, 3224, 3225, 7, 10, 0, 0, 3225, 3226, 7, 18, 0, 0, 3226, 3227, 7, 4, 0, 0, 3227, 3228, 7, 3, 0, 0, 3228, 3229, 7, 5, 0, 0, 3229, 640, 1, 0, 0, 0, 3230, 3231, 7, 3, 0, 0, 3231, 3232, 7, 10, 0, 0, 3232, 3233, 7, 5, 0, 0, 3233, 3234, 7, 6, 0, 0, 3234, 642, 1, 0, 0, 0, 3235, 3236, 7, 11, 0, 0, 3236, 3237, 7, 9, 0, 0, 3237, 3238, 7, 21, 0, 0, 3238, 644, 1, 0, 0, 0, 3239, 3240, 7, 11, 0, 0, 3240, 3241, 7, 9, 0, 0, 3241, 3242, 7, 22, 0, 0, 3242, 646, 1, 0, 0, 0, 3243, 3244, 7, 11, 0, 0, 3244, 3245, 7, 9, 0, 0, 3245, 3246, 7, 12, 0, 0, 3246, 3247, 7, 21, 0, 0, 3247, 648, 1, 0, 0, 0, 3248, 3249, 7, 11, 0, 0, 3249, 3250, 7, 9, 0, 0, 3250, 3251, 7, 12, 0, 0, 3251, 3252, 7, 22, 0, 0, 3252, 650, 1, 0, 0, 0, 3253, 3254, 7, 11, 0, 0, 3254, 3255, 7, 13, 0, 0, 3255, 652, 1, 0, 0, 0, 3256, 3257, 7, 11, 0, 0, 3257, 3258, 7, 13, 0, 0, 3258, 3259, 7, 22, 0, 0, 3259, 3260, 7, 4, 0, 0, 3260, 654, 1, 0, 0, 0, 3261, 3262, 7, 11, 0, 0, 3262, 3263, 7, 13, 0, 0, 3263, 3264, 7, 7, 0, 0, 3264, 3265, 7, 1, 0, 0, 3265, 3266, 7, 10, 0, 0, 3266, 3267, 7, 3, 0, 0, 3267, 3268, 7, 0, 0, 0, 3268, 3269, 7, 27, 0, 0, 3269, 3270, 7, 4, 0, 0, 3270, 3271, 7, 22, 0, 0, 3271, 656, 1, 0, 0, 0, 3272, 3273, 7, 13, 0, 0, 3273, 3274, 7, 11, 0, 0, 3274, 3275, 7, 3, 0, 0, 3275, 3276, 7, 23, 0, 0, 3276, 658, 1, 0, 0, 0, 3277, 3278, 7, 13, 0, 0, 3278, 3279, 7, 7, 0, 0, 3279, 3280, 7, 22, 0, 0, 3280, 3281, 7, 0, 0, 0, 3281, 3282, 7, 11, 0, 0, 3282, 3283, 7, 10, 0, 0, 3283, 3284, 7, 3, 0, 0, 3284, 3285, 7, 0, 0, 0, 3285, 3286, 7, 6, 0, 0, 3286, 3287, 7, 23, 0, 0, 3287, 660, 1, 0, 0, 0, 3288, 3289, 7, 2, 0, 0, 3289, 3290, 7, 7, 0, 0, 3290, 3291, 7, 13, 0, 0, 3291, 3292, 7, 2, 0, 0, 3292, 3293, 7, 4, 0, 0, 3293, 3294, 7, 7, 0, 0, 3294, 3295, 7, 6, 0, 0, 3295, 3296, 7, 23, 0, 0, 3296, 662, 1, 0, 0, 0, 3297, 3298, 7, 7, 0, 0, 3298, 3299, 7, 4, 0, 0, 3299, 3300, 7, 10, 0, 0, 3300, 3301, 7, 22, 0, 0, 3301, 664, 1, 0, 0, 0, 3302, 3303, 7, 7, 0, 0, 3303, 3304, 7, 4, 0, 0, 3304, 3305, 7, 3, 0, 0, 3305, 3306, 7, 10, 0, 0, 3306, 3307, 7, 6, 0, 0, 3307, 3308, 7, 0, 0, 0, 3308, 3309, 7, 13, 0, 0, 3309, 3310, 7, 11, 0, 0, 3310, 3311, 7, 5, 0, 0, 3311, 3312, 7, 26, 0, 0, 3312, 3313, 7, 0, 0, 0, 3313, 3314, 7, 2, 0, 0, 3314, 666, 1, 0, 0, 0, 3315, 3316, 7, 7, 0, 0, 3316, 3317, 7, 4, 0, 0, 3317, 3318, 7, 3, 0, 0, 3318, 3319, 7, 10, 0, 0, 3319, 3320, 7, 6, 0, 0, 3320, 3321, 7, 0, 0, 0, 3321, 3322, 7, 13, 0, 0, 3322, 3323, 7, 11, 0, 0, 3323, 3324, 7, 5, 0, 0, 3324, 3325, 7, 26, 0, 0, 3325, 3326, 7, 0, 0, 0, 3326, 3327, 7, 2, 0, 0, 3327, 3328, 7, 5, 0, 0, 3328, 668, 1, 0, 0, 0, 3329, 3330, 7, 7, 0, 0, 3330, 3331, 7, 4, 0, 0, 3331, 3332, 7, 2, 0, 0, 3332, 3333, 7, 4, 0, 0, 3333, 3334, 7, 10, 0, 0, 3334, 3335, 7, 6, 0, 0, 3335, 3336, 7, 10, 0, 0, 3336, 3337, 7, 18, 0, 0, 3337, 3338, 7, 3, 0, 0, 3338, 3339, 7, 4, 0, 0, 3339, 670, 1, 0, 0, 0, 3340, 3341, 7, 5, 0, 0, 3341, 3342, 7, 26, 0, 0, 3342, 3343, 7, 13, 0, 0, 3343, 3344, 7, 7, 0, 0, 3344, 3345, 7, 6, 0, 0, 3345, 3346, 7, 4, 0, 0, 3346, 3347, 7, 5, 0, 0, 3347, 3348, 7, 6, 0, 0, 3348, 672, 1, 0, 0, 0, 3349, 3350, 7, 5, 0, 0, 3350, 3351, 7, 0, 0, 0, 3351, 3352, 7, 1, 0, 0, 3352, 3353, 7, 2, 0, 0, 3353, 3354, 7, 3, 0, 0, 3354, 3355, 7, 4, 0, 0, 3355, 674, 1, 0, 0, 0, 3356, 3357, 7, 5, 0, 0, 3357, 3358, 7, 13, 0, 0, 3358, 3359, 7, 8, 0, 0, 3359, 3360, 7, 7, 0, 0, 3360, 3361, 7, 21, 0, 0, 3361, 3362, 7, 4, 0, 0, 3362, 676, 1, 0, 0, 0, 3363, 3364, 7, 6, 0, 0, 3364, 3365, 7, 10, 0, 0, 3365, 3366, 7, 18, 0, 0, 3366, 3367, 7, 3, 0, 0, 3367, 3368, 7, 4, 0, 0, 3368, 678, 1, 0, 0, 0, 3369, 3370, 7, 6, 0, 0, 3370, 3371, 7, 4, 0, 0, 3371, 3372, 7, 1, 0, 0, 3372, 3373, 7, 2, 0, 0, 3373, 680, 1, 0, 0, 0, 3374, 3375, 7, 6, 0, 0, 3375, 3376, 7, 13, 0, 0, 3376, 682, 1, 0, 0, 0, 3377, 3378, 7, 6, 0, 0, 3378, 3379, 7, 7, 0, 0, 3379, 3380, 7, 10, 0, 0, 3380, 3381, 7, 0, 0, 0, 3381, 3382, 7, 3, 0, 0, 3382, 684, 1, 0, 0, 0, 3383, 3384, 7, 6, 0, 0, 3384, 3385, 7, 7, 0, 0, 3385, 3386, 7, 10, 0, 0, 3386, 3387, 7, 11, 0, 0, 3387, 3388, 7, 5, 0, 0, 3388, 3389, 7, 10, 0, 0, 3389, 3390, 7, 21, 0, 0, 3390, 3391, 7, 6, 0, 0, 3391, 3392, 7, 0, 0, 0, 3392, 3393, 7, 13, 0, 0, 3393, 3394, 7, 11, 0, 0, 3394, 686, 1, 0, 0, 0, 3395, 3396, 7, 6, 0, 0, 3396, 3397, 7, 23, 0, 0, 3397, 3398, 7, 2, 0, 0, 3398, 3399, 7, 4, 0, 0, 3399, 688, 1, 0, 0, 0, 3400, 3401, 7, 8, 0, 0, 3401, 3402, 7, 11, 0, 0, 3402, 3403, 7, 22, 0, 0, 3403, 3404, 7, 0, 0, 0, 3404, 3405, 7, 7, 0, 0, 3405, 3406, 7, 4, 0, 0, 3406, 3407, 7, 21, 0, 0, 3407, 3408, 7, 6, 0, 0, 3408, 3409, 7, 4, 0, 0, 3409, 3410, 7, 22, 0, 0, 3410, 690, 1, 0, 0, 0, 3411, 3412, 7, 25, 0, 0, 3412, 3413, 7, 4, 0, 0, 3413, 3414, 7, 7, 0, 0, 3414, 3415, 7, 6, 0, 0, 3415, 3416, 7, 4, 0, 0, 3416, 3417, 7, 19, 0, 0, 3417, 692, 1, 0, 0, 0, 3418, 3419, 7, 14, 0, 0, 3419, 3420, 7, 10, 0, 0, 3420, 3421, 7, 3, 0, 0, 3421, 3422, 7, 12, 0, 0, 3422, 694, 1, 0, 0, 0, 3423, 3424, 7, 14, 0, 0, 3424, 3425, 7, 0, 0, 0, 3425, 3426, 7, 6, 0, 0, 3426, 3427, 7, 26, 0, 0, 3427, 3428, 7, 13, 0, 0, 3428, 3429, 7, 8, 0, 0, 3429, 3430, 7, 6, 0, 0, 3430, 696, 1, 0, 0, 0, 3431, 3432, 7, 14, 0, 0, 3432, 3433, 7, 7, 0, 0, 3433, 3434, 7, 0, 0, 0, 3434, 3435, 7, 6, 0, 0, 3435, 3436, 7, 4, 0, 0, 3436, 698, 1, 0, 0, 0, 3437, 3438, 7, 27, 0, 0, 3438, 3439, 7, 13, 0, 0, 3439, 3440, 7, 11, 0, 0, 3440, 3441, 7, 4, 0, 0, 3441, 700, 1, 0, 0, 0, 3442, 3445, 3, 707, 353, 0, 3443, 3445, 3, 705, 352, 0, 3444, 3442, 1, 0, 0, 0, 3444, 3443, 1, 0, 0, 0, 3445, 702, 1, 0, 0, 0, 3446, 3450, 3, 713, 356, 0, 3447, 3449, 3, 715, 357, 0, 3448, 3447, 1, 0, 0, 0, 3449, 3452, 1, 0, 0, 0, 3450, 3448, 1, 0, 0, 0, 3450, 3451, 1, 0, 0, 0, 3451, 704, 1, 0, 0, 0, 3452, 3450, 1, 0, 0, 0, 3453, 3455, 3, 715, 357, 0, 3454, 3453, 1, 0, 0, 0, 3455, 3456, 1, 0, 0, 0, 3456, 3454, 1, 0, 0, 0, 3456, 3457, 1, 0, 0, 0, 3457, 706, 1, 0, 0, 0, 3458, 3461, 3, 9, 4, 0, 3459, 3461, 3, 11, 5, 0, 3460, 3458, 1, 0, 0, 0, 3460, 3459, 1, 0, 0, 0, 3461, 708, 1, 0, 0, 0, 3462, 3463, 3, 731, 365, 0, 3463, 3464, 3, 3, 1, 0, 3464, 710, 1, 0, 0, 0, 3465, 3466, 3, 791, 395, 0, 3466, 3467, 3, 3, 1, 0, 3467, 712, 1, 0, 0, 0, 3468, 3471, 3, 717, 358, 0, 3469, 3471, 3, 867, 433, 0, 3470, 3468, 1, 0, 0, 0, 3470, 3469, 1, 0, 0, 0, 3471, 714, 1, 0, 0, 0, 3472, 3473, 3, 719, 359, 0, 3473, 716, 1, 0, 0, 0, 3474, 3475, 7, 30, 0, 0, 3475, 718, 1, 0, 0, 0, 3476, 3477, 7, 31, 0, 0, 3477, 720, 1, 0, 0, 0, 3478, 3479, 5, 124, 0, 0, 3479, 3480, 5, 43, 0, 0, 3480, 3481, 5, 124, 0, 0, 3481, 722, 1, 0, 0, 0, 3482, 3483, 5, 93, 0, 0, 3483, 3484, 5, 45, 0, 0, 3484, 3485, 5, 62, 0, 0, 3485, 724, 1, 0, 0, 0, 3486, 3487, 5, 93, 0, 0, 3487, 3488, 5, 126, 0, 0, 3488, 3489, 5, 62, 0, 0, 3489, 726, 1, 0, 0, 0, 3490, 3491, 5, 124, 0, 0, 3491, 3492, 5, 124, 0, 0, 3492, 728, 1, 0, 0, 0, 3493, 3494, 5, 58, 0, 0, 3494, 3495, 5, 58, 0, 0, 3495, 730, 1, 0, 0, 0, 3496, 3497, 5, 36, 0, 0, 3497, 3498, 5, 36, 0, 0, 3498, 732, 1, 0, 0, 0, 3499, 3500, 5, 46, 0, 0, 3500, 3501, 5, 46, 0, 0, 3501, 734, 1, 0, 0, 0, 3502, 3503, 5, 62, 0, 0, 3503, 3504, 5, 61, 0, 0, 3504, 736, 1, 0, 0, 0, 3505, 3506, 5, 60, 0, 0, 3506, 3507, 5, 45, 0, 0, 3507, 738, 1, 0, 0, 0, 3508, 3509, 5, 60, 0, 0, 3509, 3510, 5, 126, 0, 0, 3510, 740, 1, 0, 0, 0, 3511, 3512, 5, 60, 0, 0, 3512, 3513, 5, 45, 0, 0, 3513, 3514, 5, 91, 0, 0, 3514, 742, 1, 0, 0, 0, 3515, 3516, 5, 60, 0, 0, 3516, 3517, 5, 126, 0, 0, 3517, 3518, 5, 91, 0, 0, 3518, 744, 1, 0, 0, 0, 3519, 3520, 5, 60, 0, 0, 3520, 3521, 5, 45, 0, 0, 3521, 3522, 5, 62, 0, 0, 3522, 746, 1, 0, 0, 0, 3523, 3524, 5, 60, 0, 0, 3524, 3525, 5, 45, 0, 0, 3525, 3526, 5, 47, 0, 0, 3526, 748, 1, 0, 0, 0, 3527, 3528, 5, 60, 0, 0, 3528, 3529, 5, 126, 0, 0, 3529, 3530, 5, 47, 0, 0, 3530, 750, 1, 0, 0, 0, 3531, 3532, 5, 60, 0, 0, 3532, 3533, 5, 61, 0, 0, 3533, 752, 1, 0, 0, 0, 3534, 3535, 5, 45, 0, 0, 3535, 3536, 5, 91, 0, 0, 3536, 754, 1, 0, 0, 0, 3537, 3538, 5, 45, 0, 0, 3538, 3539, 5, 47, 0, 0, 3539, 756, 1, 0, 0, 0, 3540, 3541, 5, 60, 0, 0, 3541, 3542, 5, 62, 0, 0, 3542, 758, 1, 0, 0, 0, 3543, 3544, 5, 45, 0, 0, 3544, 3545, 5, 62, 0, 0, 3545, 760, 1, 0, 0, 0, 3546, 3547, 5, 93, 0, 0, 3547, 3548, 5, 45, 0, 0, 3548, 762, 1, 0, 0, 0, 3549, 3550, 5, 93, 0, 0, 3550, 3551, 5, 126, 0, 0, 3551, 764, 1, 0, 0, 0, 3552, 3553, 5, 61, 0, 0, 3553, 3554, 5, 62, 0, 0, 3554, 766, 1, 0, 0, 0, 3555, 3556, 5, 47, 0, 0, 3556, 3557, 5, 45, 0, 0, 3557, 768, 1, 0, 0, 0, 3558, 3559, 5, 47, 0, 0, 3559, 3560, 5, 45, 0, 0, 3560, 3561, 5, 62, 0, 0, 3561, 770, 1, 0, 0, 0, 3562, 3563, 5, 47, 0, 0, 3563, 3564, 5, 126, 0, 0, 3564, 772, 1, 0, 0, 0, 3565, 3566, 5, 47, 0, 0, 3566, 3567, 5, 126, 0, 0, 3567, 3568, 5, 62, 0, 0, 3568, 774, 1, 0, 0, 0, 3569, 3570, 5, 126, 0, 0, 3570, 3571, 5, 91, 0, 0, 3571, 776, 1, 0, 0, 0, 3572, 3573, 5, 126, 0, 0, 3573, 3574, 5, 62, 0, 0, 3574, 778, 1, 0, 0, 0, 3575, 3576, 5, 126, 0, 0, 3576, 3577, 5, 47, 0, 0, 3577, 780, 1, 0, 0, 0, 3578, 3579, 5, 38, 0, 0, 3579, 782, 1, 0, 0, 0, 3580, 3581, 5, 42, 0, 0, 3581, 784, 1, 0, 0, 0, 3582, 3583, 5, 58, 0, 0, 3583, 786, 1, 0, 0, 0, 3584, 3585, 5, 44, 0, 0, 3585, 788, 1, 0, 0, 0, 3586, 3587, 5, 64, 0, 0, 3587, 790, 1, 0, 0, 0, 3588, 3589, 5, 36, 0, 0, 3589, 792, 1, 0, 0, 0, 3590, 3591, 5, 34, 0, 0, 3591, 794, 1, 0, 0, 0, 3592, 3593, 5, 61, 0, 0, 3593, 796, 1, 0, 0, 0, 3594, 3595, 5, 33, 0, 0, 3595, 798, 1, 0, 0, 0, 3596, 3597, 5, 62, 0, 0, 3597, 800, 1, 0, 0, 0, 3598, 3599, 5, 96, 0, 0, 3599, 802, 1, 0, 0, 0, 3600, 3601, 5, 123, 0, 0, 3601, 804, 1, 0, 0, 0, 3602, 3603, 5, 91, 0, 0, 3603, 806, 1, 0, 0, 0, 3604, 3605, 5, 40, 0, 0, 3605, 808, 1, 0, 0, 0, 3606, 3607, 5, 60, 0, 0, 3607, 810, 1, 0, 0, 0, 3608, 3609, 5, 45, 0, 0, 3609, 812, 1, 0, 0, 0, 3610, 3611, 5, 37, 0, 0, 3611, 814, 1, 0, 0, 0, 3612, 3613, 5, 46, 0, 0, 3613, 816, 1, 0, 0, 0, 3614, 3615, 5, 43, 0, 0, 3615, 818, 1, 0, 0, 0, 3616, 3617, 5, 63, 0, 0, 3617, 820, 1, 0, 0, 0, 3618, 3619, 5, 39, 0, 0, 3619, 822, 1, 0, 0, 0, 3620, 3621, 5, 92, 0, 0, 3621, 824, 1, 0, 0, 0, 3622, 3623, 5, 125, 0, 0, 3623, 826, 1, 0, 0, 0, 3624, 3625, 5, 93, 0, 0, 3625, 828, 1, 0, 0, 0, 3626, 3627, 5, 41, 0, 0, 3627, 830, 1, 0, 0, 0, 3628, 3629, 5, 47, 0, 0, 3629, 832, 1, 0, 0, 0, 3630, 3631, 5, 126, 0, 0, 3631, 834, 1, 0, 0, 0, 3632, 3633, 5, 95, 0, 0, 3633, 836, 1, 0, 0, 0, 3634, 3635, 5, 124, 0, 0, 3635, 838, 1, 0, 0, 0, 3636, 3637, 7, 32, 0, 0, 3637, 840, 1, 0, 0, 0, 3638, 3639, 7, 33, 0, 0, 3639, 842, 1, 0, 0, 0, 3640, 3641, 7, 34, 0, 0, 3641, 844, 1, 0, 0, 0, 3642, 3643, 7, 35, 0, 0, 3643, 846, 1, 0, 0, 0, 3644, 3646, 3, 849, 424, 0, 3645, 3644, 1, 0, 0, 0, 3646, 3647, 1, 0, 0, 0, 3647, 3645, 1, 0, 0, 0, 3647, 3648, 1, 0, 0, 0, 3648, 3649, 1, 0, 0, 0, 3649, 3650, 6, 423, 0, 0, 3650, 848, 1, 0, 0, 0, 3651, 3663, 3, 865, 432, 0, 3652, 3663, 3, 869, 434, 0, 3653, 3663, 3, 871, 435, 0, 3654, 3663, 3, 873, 436, 0, 3655, 3663, 3, 877, 438, 0, 3656, 3663, 3, 861, 430, 0, 3657, 3663, 3, 859, 429, 0, 3658, 3663, 3, 857, 428, 0, 3659, 3663, 3, 879, 439, 0, 3660, 3663, 3, 875, 437, 0, 3661, 3663, 7, 36, 0, 0, 3662, 3651, 1, 0, 0, 0, 3662, 3652, 1, 0, 0, 0, 3662, 3653, 1, 0, 0, 0, 3662, 3654, 1, 0, 0, 0, 3662, 3655, 1, 0, 0, 0, 3662, 3656, 1, 0, 0, 0, 3662, 3657, 1, 0, 0, 0, 3662, 3658, 1, 0, 0, 0, 3662, 3659, 1, 0, 0, 0, 3662, 3660, 1, 0, 0, 0, 3662, 3661, 1, 0, 0, 0, 3663, 850, 1, 0, 0, 0, 3664, 3665, 5, 47, 0, 0, 3665, 3666, 5, 42, 0, 0, 3666, 3670, 1, 0, 0, 0, 3667, 3669, 9, 0, 0, 0, 3668, 3667, 1, 0, 0, 0, 3669, 3672, 1, 0, 0, 0, 3670, 3671, 1, 0, 0, 0, 3670, 3668, 1, 0, 0, 0, 3671, 3673, 1, 0, 0, 0, 3672, 3670, 1, 0, 0, 0, 3673, 3674, 5, 42, 0, 0, 3674, 3675, 5, 47, 0, 0, 3675, 3676, 1, 0, 0, 0, 3676, 3677, 6, 425, 0, 0, 3677, 852, 1, 0, 0, 0, 3678, 3679, 5, 47, 0, 0, 3679, 3680, 5, 47, 0, 0, 3680, 3684, 1, 0, 0, 0, 3681, 3683, 8, 37, 0, 0, 3682, 3681, 1, 0, 0, 0, 3683, 3686, 1, 0, 0, 0, 3684, 3682, 1, 0, 0, 0, 3684, 3685, 1, 0, 0, 0, 3685, 3687, 1, 0, 0, 0, 3686, 3684, 1, 0, 0, 0, 3687, 3688, 6, 426, 0, 0, 3688, 854, 1, 0, 0, 0, 3689, 3690, 5, 45, 0, 0, 3690, 3691, 5, 45, 0, 0, 3691, 3695, 1, 0, 0, 0, 3692, 3694, 8, 37, 0, 0, 3693, 3692, 1, 0, 0, 0, 3694, 3697, 1, 0, 0, 0, 3695, 3693, 1, 0, 0, 0, 3695, 3696, 1, 0, 0, 0, 3696, 3698, 1, 0, 0, 0, 3697, 3695, 1, 0, 0, 0, 3698, 3699, 6, 427, 0, 0, 3699, 856, 1, 0, 0, 0, 3700, 3701, 7, 38, 0, 0, 3701, 858, 1, 0, 0, 0, 3702, 3703, 7, 39, 0, 0, 3703, 860, 1, 0, 0, 0, 3704, 3705, 7, 40, 0, 0, 3705, 862, 1, 0, 0, 0, 3706, 3707, 7, 41, 0, 0, 3707, 864, 1, 0, 0, 0, 3708, 3709, 7, 42, 0, 0, 3709, 866, 1, 0, 0, 0, 3710, 3711, 7, 43, 0, 0, 3711, 868, 1, 0, 0, 0, 3712, 3713, 7, 44, 0, 0, 3713, 870, 1, 0, 0, 0, 3714, 3715, 7, 45, 0, 0, 3715, 872, 1, 0, 0, 0, 3716, 3717, 7, 46, 0, 0, 3717, 874, 1, 0, 0, 0, 3718, 3719, 7, 47, 0, 0, 3719, 876, 1, 0, 0, 0, 3720, 3721, 7, 48, 0, 0, 3721, 878, 1, 0, 0, 0, 3722, 3723, 7, 49, 0, 0, 3723, 880, 1, 0, 0, 0, 42, 0, 889, 909, 912, 917, 922, 932, 941, 950, 957, 959, 963, 965, 969, 971, 984, 1034, 1041, 1048, 1053, 1082, 1087, 1098, 1105, 1110, 1114, 1122, 1127, 1133, 1138, 1144, 1149, 3444, 3450, 3456, 3460, 3470, 3647, 3662, 3670, 3684, 3695, 1, 0, 1, 0] \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_20240424Lexer.java b/developer/javac/ANTLR/GQL_20240424Lexer.java new file mode 100644 index 0000000..a7f55b1 --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240424Lexer.java @@ -0,0 +1,3212 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class GQL_20240424Lexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + IMPLIES=1, BOOLEAN_LITERAL=2, SINGLE_QUOTED_CHARACTER_SEQUENCE=3, DOUBLE_QUOTED_CHARACTER_SEQUENCE=4, + ACCENT_QUOTED_CHARACTER_SEQUENCE=5, NO_ESCAPE=6, BYTE_STRING_LITERAL=7, + UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX=8, UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX=9, + UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=10, + UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX=11, UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX=12, + UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=13, + UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX=14, UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX=15, + UNSIGNED_DECIMAL_INTEGER=16, UNSIGNED_HEXADECIMAL_INTEGER=17, UNSIGNED_OCTAL_INTEGER=18, + UNSIGNED_BINARY_INTEGER=19, ABS=20, ACOS=21, ALL=22, ALL_DIFFERENT=23, + AND=24, ANY=25, ARRAY=26, AS=27, ASC=28, ASCENDING=29, ASIN=30, AT=31, + ATAN=32, AVG=33, BIG=34, BIGINT=35, BINARY=36, BOOL=37, BOOLEAN=38, BOTH=39, + BTRIM=40, BY=41, BYTE_LENGTH=42, BYTES=43, CALL=44, CARDINALITY=45, CASE=46, + CAST=47, CEIL=48, CEILING=49, CHAR=50, CHAR_LENGTH=51, CHARACTER_LENGTH=52, + CHARACTERISTICS=53, CLOSE=54, COALESCE=55, COLLECT_LIST=56, COMMIT=57, + COPY=58, COS=59, COSH=60, COT=61, COUNT=62, CREATE=63, CURRENT_DATE=64, + CURRENT_GRAPH=65, CURRENT_PROPERTY_GRAPH=66, CURRENT_SCHEMA=67, CURRENT_TIME=68, + CURRENT_TIMESTAMP=69, DATE=70, DATETIME=71, DAY=72, DEC=73, DECIMAL=74, + DEGREES=75, DELETE=76, DESC=77, DESCENDING=78, DETACH=79, DISTINCT=80, + DOUBLE=81, DROP=82, DURATION=83, DURATION_BETWEEN=84, ELEMENT_ID=85, ELSE=86, + END=87, EXCEPT=88, EXISTS=89, EXP=90, FILTER=91, FINISH=92, FLOAT=93, + FLOAT16=94, FLOAT32=95, FLOAT64=96, FLOAT128=97, FLOAT256=98, FLOOR=99, + FOR=100, FROM=101, GROUP=102, HAVING=103, HOME_GRAPH=104, HOME_PROPERTY_GRAPH=105, + HOME_SCHEMA=106, HOUR=107, IF=108, IN=109, INSERT=110, INT=111, INTEGER=112, + INT8=113, INTEGER8=114, INT16=115, INTEGER16=116, INT32=117, INTEGER32=118, + INT64=119, INTEGER64=120, INT128=121, INTEGER128=122, INT256=123, INTEGER256=124, + INTERSECT=125, INTERVAL=126, IS=127, LEADING=128, LEFT=129, LET=130, LIKE=131, + LIMIT=132, LIST=133, LN=134, LOCAL=135, LOCAL_DATETIME=136, LOCAL_TIME=137, + LOCAL_TIMESTAMP=138, LOG=139, LOG10=140, LOWER=141, LTRIM=142, MATCH=143, + MAX=144, MIN=145, MINUTE=146, MOD=147, MONTH=148, NEXT=149, NODETACH=150, + NORMALIZE=151, NOT=152, NOTHING=153, NULL=154, NULLS=155, NULLIF=156, + OCTET_LENGTH=157, OF=158, OFFSET=159, OPTIONAL=160, OR=161, ORDER=162, + OTHERWISE=163, PARAMETER=164, PARAMETERS=165, PATH=166, PATH_LENGTH=167, + PATHS=168, PERCENTILE_CONT=169, PERCENTILE_DISC=170, POWER=171, PRECISION=172, + PROPERTY_EXISTS=173, RADIANS=174, REAL=175, RECORD=176, REMOVE=177, REPLACE=178, + RESET=179, RETURN=180, RIGHT=181, ROLLBACK=182, RTRIM=183, SAME=184, SCHEMA=185, + SECOND=186, SELECT=187, SESSION=188, SESSION_USER=189, SET=190, SIGNED=191, + SIN=192, SINH=193, SIZE=194, SKIP_RESERVED_WORD=195, SMALL=196, SMALLINT=197, + SQRT=198, START=199, STDDEV_POP=200, STDDEV_SAMP=201, STRING=202, SUM=203, + TAN=204, TANH=205, THEN=206, TIME=207, TIMESTAMP=208, TRAILING=209, TRIM=210, + TYPED=211, UBIGINT=212, UINT=213, UINT8=214, UINT16=215, UINT32=216, UINT64=217, + UINT128=218, UINT256=219, UNION=220, UNSIGNED=221, UPPER=222, USE=223, + USMALLINT=224, VALUE=225, VARBINARY=226, VARCHAR=227, VARIABLE=228, WHEN=229, + WHERE=230, WITH=231, XOR=232, YEAR=233, YIELD=234, ZONED=235, ZONED_DATETIME=236, + ZONED_TIME=237, ABSTRACT=238, AGGREGATE=239, AGGREGATES=240, ALTER=241, + CATALOG=242, CLEAR=243, CLONE=244, CONSTRAINT=245, CURRENT_ROLE=246, CURRENT_USER=247, + DATA=248, DIRECTORY=249, DRYRUN=250, EXACT=251, EXISTING=252, FUNCTION=253, + GQLSTATUS=254, GRANT=255, INSTANT=256, INFINITY=257, NUMBER=258, NUMERIC=259, + ON=260, OPEN=261, PARTITION=262, PROCEDURE=263, PRODUCT=264, PROJECT=265, + QUERY=266, RECORDS=267, REFERENCE=268, RENAME=269, REVOKE=270, SUBSTRING=271, + SYSTEM_USER=272, TEMPORAL=273, UNIQUE=274, UNIT=275, VALUES=276, ACYCLIC=277, + BINDING=278, BINDINGS=279, CONNECTING=280, DESTINATION=281, DIFFERENT=282, + DIRECTED=283, EDGE=284, EDGES=285, ELEMENT=286, ELEMENTS=287, FIRST=288, + GRAPH=289, GROUPS=290, KEEP=291, LABEL=292, LABELED=293, LABELS=294, LAST=295, + NFC=296, NFD=297, NFKC=298, NFKD=299, NO=300, NODE=301, NORMALIZED=302, + ONLY=303, ORDINALITY=304, PROPERTY=305, READ=306, RELATIONSHIP=307, RELATIONSHIPS=308, + REPEATABLE=309, SHORTEST=310, SIMPLE=311, SOURCE=312, TABLE=313, TEMP=314, + TO=315, TRAIL=316, TRANSACTION=317, TYPE=318, UNDIRECTED=319, VERTEX=320, + WALK=321, WITHOUT=322, WRITE=323, ZONE=324, REGULAR_IDENTIFIER=325, SUBSTITUTED_PARAMETER_REFERENCE=326, + GENERAL_PARAMETER_REFERENCE=327, MULTISET_ALTERNATION_OPERATOR=328, BRACKET_RIGHT_ARROW=329, + BRACKET_TILDE_RIGHT_ARROW=330, CONCATENATION_OPERATOR=331, DOUBLE_COLON=332, + DOUBLE_DOLLAR_SIGN=333, DOUBLE_PERIOD=334, GREATER_THAN_OR_EQUALS_OPERATOR=335, + LEFT_ARROW=336, LEFT_ARROW_TILDE=337, LEFT_ARROW_BRACKET=338, LEFT_ARROW_TILDE_BRACKET=339, + LEFT_MINUS_RIGHT=340, LEFT_MINUS_SLASH=341, LEFT_TILDE_SLASH=342, LESS_THAN_OR_EQUALS_OPERATOR=343, + MINUS_LEFT_BRACKET=344, MINUS_SLASH=345, NOT_EQUALS_OPERATOR=346, RIGHT_ARROW=347, + RIGHT_BRACKET_MINUS=348, RIGHT_BRACKET_TILDE=349, RIGHT_DOUBLE_ARROW=350, + SLASH_MINUS=351, SLASH_MINUS_RIGHT=352, SLASH_TILDE=353, SLASH_TILDE_RIGHT=354, + TILDE_LEFT_BRACKET=355, TILDE_RIGHT_ARROW=356, TILDE_SLASH=357, AMPERSAND=358, + ASTERISK=359, COLON=360, COMMA=361, COMMERCIAL_AT=362, DOLLAR_SIGN=363, + DOUBLE_QUOTE=364, EQUALS_OPERATOR=365, EXCLAMATION_MARK=366, RIGHT_ANGLE_BRACKET=367, + GRAVE_ACCENT=368, LEFT_BRACE=369, LEFT_BRACKET=370, LEFT_PAREN=371, LEFT_ANGLE_BRACKET=372, + MINUS_SIGN=373, PERCENT=374, PERIOD=375, PLUS_SIGN=376, QUESTION_MARK=377, + QUOTE=378, REVERSE_SOLIDUS=379, RIGHT_BRACE=380, RIGHT_BRACKET=381, RIGHT_PAREN=382, + SOLIDUS=383, TILDE=384, UNDERSCORE=385, VERTICAL_BAR=386, SP=387, WHITESPACE=388, + BRACKETED_COMMENT=389, SIMPLE_COMMENT_SOLIDUS=390, SIMPLE_COMMENT_MINUS=391; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "IMPLIES", "PARAMETER_NAME", "BOOLEAN_LITERAL", "SINGLE_QUOTED_CHARACTER_SEQUENCE", + "DOUBLE_QUOTED_CHARACTER_SEQUENCE", "ACCENT_QUOTED_CHARACTER_SEQUENCE", + "NO_ESCAPE", "UNBROKEN_SINGLE_QUOTED_CHARACTER_SEQUENCE", "UNBROKEN_DOUBLE_QUOTED_CHARACTER_SEQUENCE", + "UNBROKEN_ACCENT_QUOTED_CHARACTER_SEQUENCE", "SINGLE_QUOTED_CHARACTER_REPRESENTATION", + "DOUBLE_QUOTED_CHARACTER_REPRESENTATION", "ACCENT_QUOTED_CHARACTER_REPRESENTATION", + "ESCAPED_CHARACTER", "ESCAPED_REVERSE_SOLIDUS", "ESCAPED_QUOTE", "ESCAPED_DOUBLE_QUOTE", + "ESCAPED_GRAVE_ACCENT", "ESCAPED_TAB", "ESCAPED_BACKSPACE", "ESCAPED_NEW_LINE", + "ESCAPED_CARRIAGE_RETURN", "ESCAPED_FORM_FEED", "ESCAPED_UNICODE4_DIGIT_VALUE", + "ESCAPED_UNICODE6_DIGIT_VALUE", "BYTE_STRING_LITERAL", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER", "EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION", + "MANTISSA", "EXPONENT", "UNSIGNED_DECIMAL_IN_COMMON_NOTATION", "SIGNED_DECIMAL_INTEGER", + "UNSIGNED_HEXADECIMAL_INTEGER", "UNSIGNED_OCTAL_INTEGER", "UNSIGNED_BINARY_INTEGER", + "APPROXIMATE_NUMBER_SUFFIX", "ABS", "ACOS", "ALL", "ALL_DIFFERENT", "AND", + "ANY", "ARRAY", "AS", "ASC", "ASCENDING", "ASIN", "AT", "ATAN", "AVG", + "BIG", "BIGINT", "BINARY", "BOOL", "BOOLEAN", "BOTH", "BTRIM", "BY", + "BYTE_LENGTH", "BYTES", "CALL", "CARDINALITY", "CASE", "CAST", "CEIL", + "CEILING", "CHAR", "CHAR_LENGTH", "CHARACTER_LENGTH", "CHARACTERISTICS", + "CLOSE", "COALESCE", "COLLECT_LIST", "COMMIT", "COPY", "COS", "COSH", + "COT", "COUNT", "CREATE", "CURRENT_DATE", "CURRENT_GRAPH", "CURRENT_PROPERTY_GRAPH", + "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "DATE", "DATETIME", + "DAY", "DEC", "DECIMAL", "DEGREES", "DELETE", "DESC", "DESCENDING", "DETACH", + "DISTINCT", "DOUBLE", "DROP", "DURATION", "DURATION_BETWEEN", "ELEMENT_ID", + "ELSE", "END", "EXCEPT", "EXISTS", "EXP", "FILTER", "FINISH", "FLOAT", + "FLOAT16", "FLOAT32", "FLOAT64", "FLOAT128", "FLOAT256", "FLOOR", "FOR", + "FROM", "GROUP", "HAVING", "HOME_GRAPH", "HOME_PROPERTY_GRAPH", "HOME_SCHEMA", + "HOUR", "IF", "IN", "INSERT", "INT", "INTEGER", "INT8", "INTEGER8", "INT16", + "INTEGER16", "INT32", "INTEGER32", "INT64", "INTEGER64", "INT128", "INTEGER128", + "INT256", "INTEGER256", "INTERSECT", "INTERVAL", "IS", "LEADING", "LEFT", + "LET", "LIKE", "LIMIT", "LIST", "LN", "LOCAL", "LOCAL_DATETIME", "LOCAL_TIME", + "LOCAL_TIMESTAMP", "LOG", "LOG10", "LOWER", "LTRIM", "MATCH", "MAX", + "MIN", "MINUTE", "MOD", "MONTH", "NEXT", "NODETACH", "NORMALIZE", "NOT", + "NOTHING", "NULL", "NULLS", "NULLIF", "OCTET_LENGTH", "OF", "OFFSET", + "OPTIONAL", "OR", "ORDER", "OTHERWISE", "PARAMETER", "PARAMETERS", "PATH", + "PATH_LENGTH", "PATHS", "PERCENTILE_CONT", "PERCENTILE_DISC", "POWER", + "PRECISION", "PROPERTY_EXISTS", "RADIANS", "REAL", "RECORD", "REMOVE", + "REPLACE", "RESET", "RETURN", "RIGHT", "ROLLBACK", "RTRIM", "SAME", "SCHEMA", + "SECOND", "SELECT", "SESSION", "SESSION_USER", "SET", "SIGNED", "SIN", + "SINH", "SIZE", "SKIP_RESERVED_WORD", "SMALL", "SMALLINT", "SQRT", "START", + "STDDEV_POP", "STDDEV_SAMP", "STRING", "SUM", "TAN", "TANH", "THEN", + "TIME", "TIMESTAMP", "TRAILING", "TRIM", "TYPED", "UBIGINT", "UINT", + "UINT8", "UINT16", "UINT32", "UINT64", "UINT128", "UINT256", "UNION", + "UNSIGNED", "UPPER", "USE", "USMALLINT", "VALUE", "VARBINARY", "VARCHAR", + "VARIABLE", "WHEN", "WHERE", "WITH", "XOR", "YEAR", "YIELD", "ZONED", + "ZONED_DATETIME", "ZONED_TIME", "ABSTRACT", "AGGREGATE", "AGGREGATES", + "ALTER", "CATALOG", "CLEAR", "CLONE", "CONSTRAINT", "CURRENT_ROLE", "CURRENT_USER", + "DATA", "DIRECTORY", "DRYRUN", "EXACT", "EXISTING", "FUNCTION", "GQLSTATUS", + "GRANT", "INSTANT", "INFINITY", "NUMBER", "NUMERIC", "ON", "OPEN", "PARTITION", + "PROCEDURE", "PRODUCT", "PROJECT", "QUERY", "RECORDS", "REFERENCE", "RENAME", + "REVOKE", "SUBSTRING", "SYSTEM_USER", "TEMPORAL", "UNIQUE", "UNIT", "VALUES", + "ACYCLIC", "BINDING", "BINDINGS", "CONNECTING", "DESTINATION", "DIFFERENT", + "DIRECTED", "EDGE", "EDGES", "ELEMENT", "ELEMENTS", "FIRST", "GRAPH", + "GROUPS", "KEEP", "LABEL", "LABELED", "LABELS", "LAST", "NFC", "NFD", + "NFKC", "NFKD", "NO", "NODE", "NORMALIZED", "ONLY", "ORDINALITY", "PROPERTY", + "READ", "RELATIONSHIP", "RELATIONSHIPS", "REPEATABLE", "SHORTEST", "SIMPLE", + "SOURCE", "TABLE", "TEMP", "TO", "TRAIL", "TRANSACTION", "TYPE", "UNDIRECTED", + "VERTEX", "WALK", "WITHOUT", "WRITE", "ZONE", "SEPARATED_IDENTIFIER", + "REGULAR_IDENTIFIER", "EXTENDED_IDENTIFIER", "DELIMITED_IDENTIFIER", + "SUBSTITUTED_PARAMETER_REFERENCE", "GENERAL_PARAMETER_REFERENCE", "IDENTIFIER_START", + "IDENTIFIER_EXTEND", "ID_Start", "ID_Continue", "MULTISET_ALTERNATION_OPERATOR", + "BRACKET_RIGHT_ARROW", "BRACKET_TILDE_RIGHT_ARROW", "CONCATENATION_OPERATOR", + "DOUBLE_COLON", "DOUBLE_DOLLAR_SIGN", "DOUBLE_PERIOD", "GREATER_THAN_OR_EQUALS_OPERATOR", + "LEFT_ARROW", "LEFT_ARROW_TILDE", "LEFT_ARROW_BRACKET", "LEFT_ARROW_TILDE_BRACKET", + "LEFT_MINUS_RIGHT", "LEFT_MINUS_SLASH", "LEFT_TILDE_SLASH", "LESS_THAN_OR_EQUALS_OPERATOR", + "MINUS_LEFT_BRACKET", "MINUS_SLASH", "NOT_EQUALS_OPERATOR", "RIGHT_ARROW", + "RIGHT_BRACKET_MINUS", "RIGHT_BRACKET_TILDE", "RIGHT_DOUBLE_ARROW", "SLASH_MINUS", + "SLASH_MINUS_RIGHT", "SLASH_TILDE", "SLASH_TILDE_RIGHT", "TILDE_LEFT_BRACKET", + "TILDE_RIGHT_ARROW", "TILDE_SLASH", "AMPERSAND", "ASTERISK", "COLON", + "COMMA", "COMMERCIAL_AT", "DOLLAR_SIGN", "DOUBLE_QUOTE", "EQUALS_OPERATOR", + "EXCLAMATION_MARK", "RIGHT_ANGLE_BRACKET", "GRAVE_ACCENT", "LEFT_BRACE", + "LEFT_BRACKET", "LEFT_PAREN", "LEFT_ANGLE_BRACKET", "MINUS_SIGN", "PERCENT", + "PERIOD", "PLUS_SIGN", "QUESTION_MARK", "QUOTE", "REVERSE_SOLIDUS", "RIGHT_BRACE", + "RIGHT_BRACKET", "RIGHT_PAREN", "SOLIDUS", "TILDE", "UNDERSCORE", "VERTICAL_BAR", + "HEX_DIGIT", "DIGIT", "OCTAL_DIGIT", "BINARY_DIGIT", "SP", "WHITESPACE", + "BRACKETED_COMMENT", "SIMPLE_COMMENT_SOLIDUS", "SIMPLE_COMMENT_MINUS", + "GS", "FS", "CR", "Sc", "SPACE", "Pc", "TAB", "LF", "VT", "US", "FF", + "RS" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, "'ABS'", "'ACOS'", "'ALL'", + "'ALL_DIFFERENT'", "'AND'", "'ANY'", "'ARRAY'", "'AS'", "'ASC'", "'ASCENDING'", + "'ASIN'", "'AT'", "'ATAN'", "'AVG'", "'BIG'", "'BIGINT'", "'BINARY'", + "'BOOL'", "'BOOLEAN'", "'BOTH'", "'BTRIM'", "'BY'", "'BYTE_LENGTH'", + "'BYTES'", "'CALL'", "'CARDINALITY'", "'CASE'", "'CAST'", "'CEIL'", "'CEILING'", + "'CHAR'", "'CHAR_LENGTH'", "'CHARACTER_LENGTH'", "'CHARACTERISTICS'", + "'CLOSE'", "'COALESCE'", "'COLLECT_LIST'", "'COMMIT'", "'COPY'", "'COS'", + "'COSH'", "'COT'", "'COUNT'", "'CREATE'", "'CURRENT_DATE'", "'CURRENT_GRAPH'", + "'CURRENT_PROPERTY_GRAPH'", "'CURRENT_SCHEMA'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", + "'DATE'", "'DATETIME'", "'DAY'", "'DEC'", "'DECIMAL'", "'DEGREES'", "'DELETE'", + "'DESC'", "'DESCENDING'", "'DETACH'", "'DISTINCT'", "'DOUBLE'", "'DROP'", + "'DURATION'", "'DURATION_BETWEEN'", "'ELEMENT_ID'", "'ELSE'", "'END'", + "'EXCEPT'", "'EXISTS'", "'EXP'", "'FILTER'", "'FINISH'", "'FLOAT'", "'FLOAT16'", + "'FLOAT32'", "'FLOAT64'", "'FLOAT128'", "'FLOAT256'", "'FLOOR'", "'FOR'", + "'FROM'", "'GROUP'", "'HAVING'", "'HOME_GRAPH'", "'HOME_PROPERTY_GRAPH'", + "'HOME_SCHEMA'", "'HOUR'", "'IF'", "'IN'", "'INSERT'", "'INT'", "'INTEGER'", + "'INT8'", "'INTEGER8'", "'INT16'", "'INTEGER16'", "'INT32'", "'INTEGER32'", + "'INT64'", "'INTEGER64'", "'INT128'", "'INTEGER128'", "'INT256'", "'INTEGER256'", + "'INTERSECT'", "'INTERVAL'", "'IS'", "'LEADING'", "'LEFT'", "'LET'", + "'LIKE'", "'LIMIT'", "'LIST'", "'LN'", "'LOCAL'", "'LOCAL_DATETIME'", + "'LOCAL_TIME'", "'LOCAL_TIMESTAMP'", "'LOG'", "'LOG10'", "'LOWER'", "'LTRIM'", + "'MATCH'", "'MAX'", "'MIN'", "'MINUTE'", "'MOD'", "'MONTH'", "'NEXT'", + "'NODETACH'", "'NORMALIZE'", "'NOT'", "'NOTHING'", "'NULL'", "'NULLS'", + "'NULLIF'", "'OCTET_LENGTH'", "'OF'", "'OFFSET'", "'OPTIONAL'", "'OR'", + "'ORDER'", "'OTHERWISE'", "'PARAMETER'", "'PARAMETERS'", "'PATH'", "'PATH_LENGTH'", + "'PATHS'", "'PERCENTILE_CONT'", "'PERCENTILE_DISC'", "'POWER'", "'PRECISION'", + "'PROPERTY_EXISTS'", "'RADIANS'", "'REAL'", "'RECORD'", "'REMOVE'", "'REPLACE'", + "'RESET'", "'RETURN'", "'RIGHT'", "'ROLLBACK'", "'RTRIM'", "'SAME'", + "'SCHEMA'", "'SECOND'", "'SELECT'", "'SESSION'", "'SESSION_USER'", "'SET'", + "'SIGNED'", "'SIN'", "'SINH'", "'SIZE'", "'SKIP'", "'SMALL'", "'SMALLINT'", + "'SQRT'", "'START'", "'STDDEV_POP'", "'STDDEV_SAMP'", "'STRING'", "'SUM'", + "'TAN'", "'TANH'", "'THEN'", "'TIME'", "'TIMESTAMP'", "'TRAILING'", "'TRIM'", + "'TYPED'", "'UBIGINT'", "'UINT'", "'UINT8'", "'UINT16'", "'UINT32'", + "'UINT64'", "'UINT128'", "'UINT256'", "'UNION'", "'UNSIGNED'", "'UPPER'", + "'USE'", "'USMALLINT'", "'VALUE'", "'VARBINARY'", "'VARCHAR'", "'VARIABLE'", + "'WHEN'", "'WHERE'", "'WITH'", "'XOR'", "'YEAR'", "'YIELD'", "'ZONED'", + "'ZONED_DATETIME'", "'ZONED_TIME'", "'ABSTRACT'", "'AGGREGATE'", "'AGGREGATES'", + "'ALTER'", "'CATALOG'", "'CLEAR'", "'CLONE'", "'CONSTRAINT'", "'CURRENT_ROLE'", + "'CURRENT_USER'", "'DATA'", "'DIRECTORY'", "'DRYRUN'", "'EXACT'", "'EXISTING'", + "'FUNCTION'", "'GQLSTATUS'", "'GRANT'", "'INSTANT'", "'INFINITY'", "'NUMBER'", + "'NUMERIC'", "'ON'", "'OPEN'", "'PARTITION'", "'PROCEDURE'", "'PRODUCT'", + "'PROJECT'", "'QUERY'", "'RECORDS'", "'REFERENCE'", "'RENAME'", "'REVOKE'", + "'SUBSTRING'", "'SYSTEM_USER'", "'TEMPORAL'", "'UNIQUE'", "'UNIT'", "'VALUES'", + "'ACYCLIC'", "'BINDING'", "'BINDINGS'", "'CONNECTING'", "'DESTINATION'", + "'DIFFERENT'", "'DIRECTED'", "'EDGE'", "'EDGES'", "'ELEMENT'", "'ELEMENTS'", + "'FIRST'", "'GRAPH'", "'GROUPS'", "'KEEP'", "'LABEL'", "'LABELED'", "'LABELS'", + "'LAST'", "'NFC'", "'NFD'", "'NFKC'", "'NFKD'", "'NO'", "'NODE'", "'NORMALIZED'", + "'ONLY'", "'ORDINALITY'", "'PROPERTY'", "'READ'", "'RELATIONSHIP'", "'RELATIONSHIPS'", + "'REPEATABLE'", "'SHORTEST'", "'SIMPLE'", "'SOURCE'", "'TABLE'", "'TEMP'", + "'TO'", "'TRAIL'", "'TRANSACTION'", "'TYPE'", "'UNDIRECTED'", "'VERTEX'", + "'WALK'", "'WITHOUT'", "'WRITE'", "'ZONE'", null, null, null, "'|+|'", + "']->'", "']~>'", "'||'", "'::'", "'$$'", "'..'", "'>='", "'<-'", "'<~'", + "'<-['", "'<~['", "'<->'", "'<-/'", "'<~/'", "'<='", "'-['", "'-/'", + "'<>'", "'->'", "']-'", "']~'", "'=>'", "'/-'", "'/->'", "'/~'", "'/~>'", + "'~['", "'~>'", "'~/'", "'&'", "'*'", "':'", "','", "'@'", "'$'", "'\"'", + "'='", "'!'", "'>'", "'`'", "'{'", "'['", "'('", "'<'", "'-'", "'%'", + "'.'", "'+'", "'?'", "'''", "'\\'", "'}'", "']'", "')'", "'/'", "'~'", + "'_'", "'|'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "IMPLIES", "BOOLEAN_LITERAL", "SINGLE_QUOTED_CHARACTER_SEQUENCE", + "DOUBLE_QUOTED_CHARACTER_SEQUENCE", "ACCENT_QUOTED_CHARACTER_SEQUENCE", + "NO_ESCAPE", "BYTE_STRING_LITERAL", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX", "UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX", + "UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX", "UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX", + "UNSIGNED_DECIMAL_INTEGER", "UNSIGNED_HEXADECIMAL_INTEGER", "UNSIGNED_OCTAL_INTEGER", + "UNSIGNED_BINARY_INTEGER", "ABS", "ACOS", "ALL", "ALL_DIFFERENT", "AND", + "ANY", "ARRAY", "AS", "ASC", "ASCENDING", "ASIN", "AT", "ATAN", "AVG", + "BIG", "BIGINT", "BINARY", "BOOL", "BOOLEAN", "BOTH", "BTRIM", "BY", + "BYTE_LENGTH", "BYTES", "CALL", "CARDINALITY", "CASE", "CAST", "CEIL", + "CEILING", "CHAR", "CHAR_LENGTH", "CHARACTER_LENGTH", "CHARACTERISTICS", + "CLOSE", "COALESCE", "COLLECT_LIST", "COMMIT", "COPY", "COS", "COSH", + "COT", "COUNT", "CREATE", "CURRENT_DATE", "CURRENT_GRAPH", "CURRENT_PROPERTY_GRAPH", + "CURRENT_SCHEMA", "CURRENT_TIME", "CURRENT_TIMESTAMP", "DATE", "DATETIME", + "DAY", "DEC", "DECIMAL", "DEGREES", "DELETE", "DESC", "DESCENDING", "DETACH", + "DISTINCT", "DOUBLE", "DROP", "DURATION", "DURATION_BETWEEN", "ELEMENT_ID", + "ELSE", "END", "EXCEPT", "EXISTS", "EXP", "FILTER", "FINISH", "FLOAT", + "FLOAT16", "FLOAT32", "FLOAT64", "FLOAT128", "FLOAT256", "FLOOR", "FOR", + "FROM", "GROUP", "HAVING", "HOME_GRAPH", "HOME_PROPERTY_GRAPH", "HOME_SCHEMA", + "HOUR", "IF", "IN", "INSERT", "INT", "INTEGER", "INT8", "INTEGER8", "INT16", + "INTEGER16", "INT32", "INTEGER32", "INT64", "INTEGER64", "INT128", "INTEGER128", + "INT256", "INTEGER256", "INTERSECT", "INTERVAL", "IS", "LEADING", "LEFT", + "LET", "LIKE", "LIMIT", "LIST", "LN", "LOCAL", "LOCAL_DATETIME", "LOCAL_TIME", + "LOCAL_TIMESTAMP", "LOG", "LOG10", "LOWER", "LTRIM", "MATCH", "MAX", + "MIN", "MINUTE", "MOD", "MONTH", "NEXT", "NODETACH", "NORMALIZE", "NOT", + "NOTHING", "NULL", "NULLS", "NULLIF", "OCTET_LENGTH", "OF", "OFFSET", + "OPTIONAL", "OR", "ORDER", "OTHERWISE", "PARAMETER", "PARAMETERS", "PATH", + "PATH_LENGTH", "PATHS", "PERCENTILE_CONT", "PERCENTILE_DISC", "POWER", + "PRECISION", "PROPERTY_EXISTS", "RADIANS", "REAL", "RECORD", "REMOVE", + "REPLACE", "RESET", "RETURN", "RIGHT", "ROLLBACK", "RTRIM", "SAME", "SCHEMA", + "SECOND", "SELECT", "SESSION", "SESSION_USER", "SET", "SIGNED", "SIN", + "SINH", "SIZE", "SKIP_RESERVED_WORD", "SMALL", "SMALLINT", "SQRT", "START", + "STDDEV_POP", "STDDEV_SAMP", "STRING", "SUM", "TAN", "TANH", "THEN", + "TIME", "TIMESTAMP", "TRAILING", "TRIM", "TYPED", "UBIGINT", "UINT", + "UINT8", "UINT16", "UINT32", "UINT64", "UINT128", "UINT256", "UNION", + "UNSIGNED", "UPPER", "USE", "USMALLINT", "VALUE", "VARBINARY", "VARCHAR", + "VARIABLE", "WHEN", "WHERE", "WITH", "XOR", "YEAR", "YIELD", "ZONED", + "ZONED_DATETIME", "ZONED_TIME", "ABSTRACT", "AGGREGATE", "AGGREGATES", + "ALTER", "CATALOG", "CLEAR", "CLONE", "CONSTRAINT", "CURRENT_ROLE", "CURRENT_USER", + "DATA", "DIRECTORY", "DRYRUN", "EXACT", "EXISTING", "FUNCTION", "GQLSTATUS", + "GRANT", "INSTANT", "INFINITY", "NUMBER", "NUMERIC", "ON", "OPEN", "PARTITION", + "PROCEDURE", "PRODUCT", "PROJECT", "QUERY", "RECORDS", "REFERENCE", "RENAME", + "REVOKE", "SUBSTRING", "SYSTEM_USER", "TEMPORAL", "UNIQUE", "UNIT", "VALUES", + "ACYCLIC", "BINDING", "BINDINGS", "CONNECTING", "DESTINATION", "DIFFERENT", + "DIRECTED", "EDGE", "EDGES", "ELEMENT", "ELEMENTS", "FIRST", "GRAPH", + "GROUPS", "KEEP", "LABEL", "LABELED", "LABELS", "LAST", "NFC", "NFD", + "NFKC", "NFKD", "NO", "NODE", "NORMALIZED", "ONLY", "ORDINALITY", "PROPERTY", + "READ", "RELATIONSHIP", "RELATIONSHIPS", "REPEATABLE", "SHORTEST", "SIMPLE", + "SOURCE", "TABLE", "TEMP", "TO", "TRAIL", "TRANSACTION", "TYPE", "UNDIRECTED", + "VERTEX", "WALK", "WITHOUT", "WRITE", "ZONE", "REGULAR_IDENTIFIER", "SUBSTITUTED_PARAMETER_REFERENCE", + "GENERAL_PARAMETER_REFERENCE", "MULTISET_ALTERNATION_OPERATOR", "BRACKET_RIGHT_ARROW", + "BRACKET_TILDE_RIGHT_ARROW", "CONCATENATION_OPERATOR", "DOUBLE_COLON", + "DOUBLE_DOLLAR_SIGN", "DOUBLE_PERIOD", "GREATER_THAN_OR_EQUALS_OPERATOR", + "LEFT_ARROW", "LEFT_ARROW_TILDE", "LEFT_ARROW_BRACKET", "LEFT_ARROW_TILDE_BRACKET", + "LEFT_MINUS_RIGHT", "LEFT_MINUS_SLASH", "LEFT_TILDE_SLASH", "LESS_THAN_OR_EQUALS_OPERATOR", + "MINUS_LEFT_BRACKET", "MINUS_SLASH", "NOT_EQUALS_OPERATOR", "RIGHT_ARROW", + "RIGHT_BRACKET_MINUS", "RIGHT_BRACKET_TILDE", "RIGHT_DOUBLE_ARROW", "SLASH_MINUS", + "SLASH_MINUS_RIGHT", "SLASH_TILDE", "SLASH_TILDE_RIGHT", "TILDE_LEFT_BRACKET", + "TILDE_RIGHT_ARROW", "TILDE_SLASH", "AMPERSAND", "ASTERISK", "COLON", + "COMMA", "COMMERCIAL_AT", "DOLLAR_SIGN", "DOUBLE_QUOTE", "EQUALS_OPERATOR", + "EXCLAMATION_MARK", "RIGHT_ANGLE_BRACKET", "GRAVE_ACCENT", "LEFT_BRACE", + "LEFT_BRACKET", "LEFT_PAREN", "LEFT_ANGLE_BRACKET", "MINUS_SIGN", "PERCENT", + "PERIOD", "PLUS_SIGN", "QUESTION_MARK", "QUOTE", "REVERSE_SOLIDUS", "RIGHT_BRACE", + "RIGHT_BRACKET", "RIGHT_PAREN", "SOLIDUS", "TILDE", "UNDERSCORE", "VERTICAL_BAR", + "SP", "WHITESPACE", "BRACKETED_COMMENT", "SIMPLE_COMMENT_SOLIDUS", "SIMPLE_COMMENT_MINUS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public GQL_20240424Lexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "GQL_20240412.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + private static final String _serializedATNSegment0 = + "\u0004\u0000\u0187\u0e8c\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ + "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ + "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ + "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ + "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ + "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ + "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ + "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ + ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ + "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ + "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ + "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ + "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ + "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ + "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ + "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ + "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ + "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ + "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ + "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ + "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ + "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ + "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ + "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ + "\u0002\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088"+ + "\u0002\u0089\u0007\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b"+ + "\u0002\u008c\u0007\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e"+ + "\u0002\u008f\u0007\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091"+ + "\u0002\u0092\u0007\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094"+ + "\u0002\u0095\u0007\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097"+ + "\u0002\u0098\u0007\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a"+ + "\u0002\u009b\u0007\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d"+ + "\u0002\u009e\u0007\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0"+ + "\u0002\u00a1\u0007\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3"+ + "\u0002\u00a4\u0007\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6"+ + "\u0002\u00a7\u0007\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9"+ + "\u0002\u00aa\u0007\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac"+ + "\u0002\u00ad\u0007\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af"+ + "\u0002\u00b0\u0007\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2"+ + "\u0002\u00b3\u0007\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5"+ + "\u0002\u00b6\u0007\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8"+ + "\u0002\u00b9\u0007\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb"+ + "\u0002\u00bc\u0007\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be"+ + "\u0002\u00bf\u0007\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1"+ + "\u0002\u00c2\u0007\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4"+ + "\u0002\u00c5\u0007\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7"+ + "\u0002\u00c8\u0007\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca"+ + "\u0002\u00cb\u0007\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd"+ + "\u0002\u00ce\u0007\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0"+ + "\u0002\u00d1\u0007\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3"+ + "\u0002\u00d4\u0007\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6"+ + "\u0002\u00d7\u0007\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9"+ + "\u0002\u00da\u0007\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc"+ + "\u0002\u00dd\u0007\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df"+ + "\u0002\u00e0\u0007\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2"+ + "\u0002\u00e3\u0007\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5"+ + "\u0002\u00e6\u0007\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8"+ + "\u0002\u00e9\u0007\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb"+ + "\u0002\u00ec\u0007\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee"+ + "\u0002\u00ef\u0007\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1"+ + "\u0002\u00f2\u0007\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4"+ + "\u0002\u00f5\u0007\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7"+ + "\u0002\u00f8\u0007\u00f8\u0002\u00f9\u0007\u00f9\u0002\u00fa\u0007\u00fa"+ + "\u0002\u00fb\u0007\u00fb\u0002\u00fc\u0007\u00fc\u0002\u00fd\u0007\u00fd"+ + "\u0002\u00fe\u0007\u00fe\u0002\u00ff\u0007\u00ff\u0002\u0100\u0007\u0100"+ + "\u0002\u0101\u0007\u0101\u0002\u0102\u0007\u0102\u0002\u0103\u0007\u0103"+ + "\u0002\u0104\u0007\u0104\u0002\u0105\u0007\u0105\u0002\u0106\u0007\u0106"+ + "\u0002\u0107\u0007\u0107\u0002\u0108\u0007\u0108\u0002\u0109\u0007\u0109"+ + "\u0002\u010a\u0007\u010a\u0002\u010b\u0007\u010b\u0002\u010c\u0007\u010c"+ + "\u0002\u010d\u0007\u010d\u0002\u010e\u0007\u010e\u0002\u010f\u0007\u010f"+ + "\u0002\u0110\u0007\u0110\u0002\u0111\u0007\u0111\u0002\u0112\u0007\u0112"+ + "\u0002\u0113\u0007\u0113\u0002\u0114\u0007\u0114\u0002\u0115\u0007\u0115"+ + "\u0002\u0116\u0007\u0116\u0002\u0117\u0007\u0117\u0002\u0118\u0007\u0118"+ + "\u0002\u0119\u0007\u0119\u0002\u011a\u0007\u011a\u0002\u011b\u0007\u011b"+ + "\u0002\u011c\u0007\u011c\u0002\u011d\u0007\u011d\u0002\u011e\u0007\u011e"+ + "\u0002\u011f\u0007\u011f\u0002\u0120\u0007\u0120\u0002\u0121\u0007\u0121"+ + "\u0002\u0122\u0007\u0122\u0002\u0123\u0007\u0123\u0002\u0124\u0007\u0124"+ + "\u0002\u0125\u0007\u0125\u0002\u0126\u0007\u0126\u0002\u0127\u0007\u0127"+ + "\u0002\u0128\u0007\u0128\u0002\u0129\u0007\u0129\u0002\u012a\u0007\u012a"+ + "\u0002\u012b\u0007\u012b\u0002\u012c\u0007\u012c\u0002\u012d\u0007\u012d"+ + "\u0002\u012e\u0007\u012e\u0002\u012f\u0007\u012f\u0002\u0130\u0007\u0130"+ + "\u0002\u0131\u0007\u0131\u0002\u0132\u0007\u0132\u0002\u0133\u0007\u0133"+ + "\u0002\u0134\u0007\u0134\u0002\u0135\u0007\u0135\u0002\u0136\u0007\u0136"+ + "\u0002\u0137\u0007\u0137\u0002\u0138\u0007\u0138\u0002\u0139\u0007\u0139"+ + "\u0002\u013a\u0007\u013a\u0002\u013b\u0007\u013b\u0002\u013c\u0007\u013c"+ + "\u0002\u013d\u0007\u013d\u0002\u013e\u0007\u013e\u0002\u013f\u0007\u013f"+ + "\u0002\u0140\u0007\u0140\u0002\u0141\u0007\u0141\u0002\u0142\u0007\u0142"+ + "\u0002\u0143\u0007\u0143\u0002\u0144\u0007\u0144\u0002\u0145\u0007\u0145"+ + "\u0002\u0146\u0007\u0146\u0002\u0147\u0007\u0147\u0002\u0148\u0007\u0148"+ + "\u0002\u0149\u0007\u0149\u0002\u014a\u0007\u014a\u0002\u014b\u0007\u014b"+ + "\u0002\u014c\u0007\u014c\u0002\u014d\u0007\u014d\u0002\u014e\u0007\u014e"+ + "\u0002\u014f\u0007\u014f\u0002\u0150\u0007\u0150\u0002\u0151\u0007\u0151"+ + "\u0002\u0152\u0007\u0152\u0002\u0153\u0007\u0153\u0002\u0154\u0007\u0154"+ + "\u0002\u0155\u0007\u0155\u0002\u0156\u0007\u0156\u0002\u0157\u0007\u0157"+ + "\u0002\u0158\u0007\u0158\u0002\u0159\u0007\u0159\u0002\u015a\u0007\u015a"+ + "\u0002\u015b\u0007\u015b\u0002\u015c\u0007\u015c\u0002\u015d\u0007\u015d"+ + "\u0002\u015e\u0007\u015e\u0002\u015f\u0007\u015f\u0002\u0160\u0007\u0160"+ + "\u0002\u0161\u0007\u0161\u0002\u0162\u0007\u0162\u0002\u0163\u0007\u0163"+ + "\u0002\u0164\u0007\u0164\u0002\u0165\u0007\u0165\u0002\u0166\u0007\u0166"+ + "\u0002\u0167\u0007\u0167\u0002\u0168\u0007\u0168\u0002\u0169\u0007\u0169"+ + "\u0002\u016a\u0007\u016a\u0002\u016b\u0007\u016b\u0002\u016c\u0007\u016c"+ + "\u0002\u016d\u0007\u016d\u0002\u016e\u0007\u016e\u0002\u016f\u0007\u016f"+ + "\u0002\u0170\u0007\u0170\u0002\u0171\u0007\u0171\u0002\u0172\u0007\u0172"+ + "\u0002\u0173\u0007\u0173\u0002\u0174\u0007\u0174\u0002\u0175\u0007\u0175"+ + "\u0002\u0176\u0007\u0176\u0002\u0177\u0007\u0177\u0002\u0178\u0007\u0178"+ + "\u0002\u0179\u0007\u0179\u0002\u017a\u0007\u017a\u0002\u017b\u0007\u017b"+ + "\u0002\u017c\u0007\u017c\u0002\u017d\u0007\u017d\u0002\u017e\u0007\u017e"+ + "\u0002\u017f\u0007\u017f\u0002\u0180\u0007\u0180\u0002\u0181\u0007\u0181"+ + "\u0002\u0182\u0007\u0182\u0002\u0183\u0007\u0183\u0002\u0184\u0007\u0184"+ + "\u0002\u0185\u0007\u0185\u0002\u0186\u0007\u0186\u0002\u0187\u0007\u0187"+ + "\u0002\u0188\u0007\u0188\u0002\u0189\u0007\u0189\u0002\u018a\u0007\u018a"+ + "\u0002\u018b\u0007\u018b\u0002\u018c\u0007\u018c\u0002\u018d\u0007\u018d"+ + "\u0002\u018e\u0007\u018e\u0002\u018f\u0007\u018f\u0002\u0190\u0007\u0190"+ + "\u0002\u0191\u0007\u0191\u0002\u0192\u0007\u0192\u0002\u0193\u0007\u0193"+ + "\u0002\u0194\u0007\u0194\u0002\u0195\u0007\u0195\u0002\u0196\u0007\u0196"+ + "\u0002\u0197\u0007\u0197\u0002\u0198\u0007\u0198\u0002\u0199\u0007\u0199"+ + "\u0002\u019a\u0007\u019a\u0002\u019b\u0007\u019b\u0002\u019c\u0007\u019c"+ + "\u0002\u019d\u0007\u019d\u0002\u019e\u0007\u019e\u0002\u019f\u0007\u019f"+ + "\u0002\u01a0\u0007\u01a0\u0002\u01a1\u0007\u01a1\u0002\u01a2\u0007\u01a2"+ + "\u0002\u01a3\u0007\u01a3\u0002\u01a4\u0007\u01a4\u0002\u01a5\u0007\u01a5"+ + "\u0002\u01a6\u0007\u01a6\u0002\u01a7\u0007\u01a7\u0002\u01a8\u0007\u01a8"+ + "\u0002\u01a9\u0007\u01a9\u0002\u01aa\u0007\u01aa\u0002\u01ab\u0007\u01ab"+ + "\u0002\u01ac\u0007\u01ac\u0002\u01ad\u0007\u01ad\u0002\u01ae\u0007\u01ae"+ + "\u0002\u01af\u0007\u01af\u0002\u01b0\u0007\u01b0\u0002\u01b1\u0007\u01b1"+ + "\u0002\u01b2\u0007\u01b2\u0002\u01b3\u0007\u01b3\u0002\u01b4\u0007\u01b4"+ + "\u0002\u01b5\u0007\u01b5\u0002\u01b6\u0007\u01b6\u0002\u01b7\u0007\u01b7"+ + "\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+ + "\u0001\u0000\u0001\u0000\u0003\u0000\u037a\b\u0000\u0001\u0001\u0001\u0001"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0003\u0002\u038e\b\u0002"+ + "\u0001\u0003\u0003\u0003\u0391\b\u0003\u0001\u0003\u0001\u0003\u0001\u0004"+ + "\u0003\u0004\u0396\b\u0004\u0001\u0004\u0001\u0004\u0001\u0005\u0003\u0005"+ + "\u039b\b\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0007"+ + "\u0001\u0007\u0005\u0007\u03a3\b\u0007\n\u0007\f\u0007\u03a6\t\u0007\u0001"+ + "\u0007\u0001\u0007\u0001\b\u0001\b\u0005\b\u03ac\b\b\n\b\f\b\u03af\t\b"+ + "\u0001\b\u0001\b\u0001\t\u0001\t\u0005\t\u03b5\b\t\n\t\f\t\u03b8\t\t\u0001"+ + "\t\u0001\t\u0001\n\u0001\n\u0004\n\u03be\b\n\u000b\n\f\n\u03bf\u0001\u000b"+ + "\u0001\u000b\u0004\u000b\u03c4\b\u000b\u000b\u000b\f\u000b\u03c5\u0001"+ + "\f\u0001\f\u0004\f\u03ca\b\f\u000b\f\f\f\u03cb\u0001\r\u0001\r\u0001\r"+ + "\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0003"+ + "\r\u03d9\b\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f"+ + "\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011"+ + "\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013"+ + "\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015"+ + "\u0001\u0015\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0017\u0001\u0017"+ + "\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0018"+ + "\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018"+ + "\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0005\u0019"+ + "\u0409\b\u0019\n\u0019\f\u0019\u040c\t\u0019\u0001\u0019\u0001\u0019\u0005"+ + "\u0019\u0410\b\u0019\n\u0019\f\u0019\u0413\t\u0019\u0001\u0019\u0001\u0019"+ + "\u0005\u0019\u0417\b\u0019\n\u0019\f\u0019\u041a\t\u0019\u0005\u0019\u041c"+ + "\b\u0019\n\u0019\f\u0019\u041f\t\u0019\u0001\u0019\u0001\u0019\u0001\u001a"+ + "\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c"+ + "\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0001\u001e"+ + "\u0001\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001 \u0001!\u0001"+ + "!\u0001!\u0001\"\u0001\"\u0003\"\u043b\b\"\u0001\"\u0005\"\u043e\b\"\n"+ + "\"\f\"\u0441\t\"\u0001#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001%\u0001"+ + "%\u0003%\u044b\b%\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0003\'\u0452"+ + "\b\'\u0001\'\u0001\'\u0001\'\u0003\'\u0457\b\'\u0001(\u0001(\u0003(\u045b"+ + "\b(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001)\u0003)\u0463\b)\u0001)\u0004"+ + ")\u0466\b)\u000b)\f)\u0467\u0001*\u0001*\u0001*\u0001*\u0003*\u046e\b"+ + "*\u0001*\u0004*\u0471\b*\u000b*\f*\u0472\u0001+\u0001+\u0001+\u0001+\u0003"+ + "+\u0479\b+\u0001+\u0004+\u047c\b+\u000b+\f+\u047d\u0001,\u0001,\u0001"+ + "-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001.\u0001.\u0001/\u0001"+ + "/\u0001/\u0001/\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u0001"+ + "0\u00010\u00010\u00010\u00010\u00010\u00010\u00011\u00011\u00011\u0001"+ + "1\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00013\u00013\u0001"+ + "3\u00014\u00014\u00014\u00015\u00015\u00015\u00015\u00016\u00016\u0001"+ + "6\u00016\u00016\u00016\u00016\u00016\u00016\u00016\u00017\u00017\u0001"+ + "7\u00017\u00017\u00018\u00018\u00018\u00019\u00019\u00019\u00019\u0001"+ + "9\u0001:\u0001:\u0001:\u0001:\u0001;\u0001;\u0001;\u0001;\u0001<\u0001"+ + "<\u0001<\u0001<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001?\u0001?\u0001"+ + "?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001@\u0001@\u0001@\u0001@\u0001"+ + "@\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001B\u0001B\u0001B\u0001"+ + "C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001C\u0001"+ + "C\u0001C\u0001D\u0001D\u0001D\u0001D\u0001D\u0001D\u0001E\u0001E\u0001"+ + "E\u0001E\u0001E\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "F\u0001F\u0001F\u0001F\u0001F\u0001G\u0001G\u0001G\u0001G\u0001G\u0001"+ + "H\u0001H\u0001H\u0001H\u0001H\u0001I\u0001I\u0001I\u0001I\u0001I\u0001"+ + "J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001J\u0001K\u0001K\u0001"+ + "K\u0001K\u0001K\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001"+ + "N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001N\u0001O\u0001O\u0001"+ + "O\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001P\u0001P\u0001P\u0001"+ + "P\u0001P\u0001P\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001"+ + "Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001Q\u0001R\u0001R\u0001R\u0001R\u0001"+ + "R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001S\u0001S\u0001T\u0001T\u0001"+ + "T\u0001T\u0001U\u0001U\u0001U\u0001U\u0001U\u0001V\u0001V\u0001V\u0001"+ + "V\u0001W\u0001W\u0001W\u0001W\u0001W\u0001W\u0001X\u0001X\u0001X\u0001"+ + "X\u0001X\u0001X\u0001X\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001"+ + "Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001[\u0001"+ + "[\u0001[\u0001[\u0001[\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\"+ + "\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001\\\u0001"+ + "\\\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001]\u0001"+ + "]\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001^\u0001"+ + "^\u0001^\u0001_\u0001_\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001"+ + "`\u0001`\u0001`\u0001`\u0001`\u0001`\u0001a\u0001a\u0001a\u0001a\u0001"+ + "b\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001"+ + "c\u0001c\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001"+ + "e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001e\u0001f\u0001f\u0001f\u0001"+ + "f\u0001f\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001g\u0001"+ + "g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001h\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001j\u0001"+ + "j\u0001j\u0001j\u0001j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001k\u0001"+ + "k\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001l\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001"+ + "m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001"+ + "n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001n\u0001o\u0001o\u0001"+ + "o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001p\u0001q\u0001q\u0001q\u0001"+ + "q\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001r\u0001r\u0001r\u0001"+ + "r\u0001s\u0001s\u0001s\u0001s\u0001t\u0001t\u0001t\u0001t\u0001t\u0001"+ + "t\u0001t\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001u\u0001v\u0001"+ + "v\u0001v\u0001v\u0001v\u0001v\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ + "w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001x\u0001"+ + "x\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001y\u0001z\u0001"+ + "z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001z\u0001{\u0001{\u0001"+ + "{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0001|\u0001|\u0001|\u0001"+ + "|\u0001|\u0001|\u0001}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001"+ + "~\u0001~\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001\u007f\u0001"+ + "\u007f\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001\u0080\u0001"+ + "\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001"+ + "\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001"+ + "\u0081\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001\u0082\u0001"+ + "\u0082\u0001\u0082\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001"+ + "\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001"+ + "\u0083\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0001\u0084\u0001"+ + "\u0084\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0085\u0001\u0086\u0001"+ + "\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0001"+ + "\u0087\u0001\u0087\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0088\u0001"+ + "\u0088\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001\u0089\u0001"+ + "\u0089\u0001\u0089\u0001\u0089\u0001\u008a\u0001\u008a\u0001\u008a\u0001"+ + "\u008a\u0001\u008a\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001"+ + "\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008b\u0001\u008c\u0001"+ + "\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008c\u0001\u008d\u0001"+ + "\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001\u008d\u0001"+ + "\u008d\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e\u0001"+ + "\u008e\u0001\u008e\u0001\u008e\u0001\u008f\u0001\u008f\u0001\u008f\u0001"+ + "\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001\u008f\u0001"+ + "\u008f\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001\u0090\u0001"+ + "\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001"+ + "\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0091\u0001\u0092\u0001"+ + "\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001\u0092\u0001"+ + "\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001"+ + "\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0093\u0001\u0094\u0001"+ + "\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001\u0094\u0001"+ + "\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001"+ + "\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0095\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001\u0096\u0001"+ + "\u0096\u0001\u0096\u0001\u0096\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001\u0097\u0001"+ + "\u0098\u0001\u0098\u0001\u0098\u0001\u0099\u0001\u0099\u0001\u0099\u0001"+ + "\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001"+ + "\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009b\u0001\u009b\u0001"+ + "\u009b\u0001\u009b\u0001\u009c\u0001\u009c\u0001\u009c\u0001\u009c\u0001"+ + "\u009c\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001\u009d\u0001"+ + "\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001"+ + "\u009f\u0001\u009f\u0001\u009f\u0001\u00a0\u0001\u00a0\u0001\u00a0\u0001"+ + "\u00a0\u0001\u00a0\u0001\u00a0\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001"+ + "\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001"+ + "\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a4\u0001"+ + "\u00a4\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001\u00a5\u0001"+ + "\u00a5\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0001"+ + "\u00a6\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001\u00a7\u0001"+ + "\u00a7\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001"+ + "\u00a8\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00aa\u0001"+ + "\u00aa\u0001\u00aa\u0001\u00aa\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001"+ + "\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ac\u0001\u00ac\u0001"+ + "\u00ac\u0001\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001\u00ad\u0001"+ + "\u00ad\u0001\u00ad\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001\u00ae\u0001"+ + "\u00ae\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001"+ + "\u00af\u0001\u00af\u0001\u00af\u0001\u00af\u0001\u00b0\u0001\u00b0\u0001"+ + "\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0001"+ + "\u00b0\u0001\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+ + "\u00b2\u0001\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001\u00b3\u0001"+ + "\u00b3\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b4\u0001"+ + "\u00b4\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001"+ + "\u00b5\u0001\u00b5\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b6\u0001"+ + "\u00b6\u0001\u00b6\u0001\u00b6\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0001"+ + "\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+ + "\u00b8\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001"+ + "\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00b9\u0001\u00ba\u0001\u00ba\u0001"+ + "\u00ba\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001"+ + "\u00bb\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001"+ + "\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00bd\u0001"+ + "\u00bd\u0001\u00bd\u0001\u00bd\u0001\u00be\u0001\u00be\u0001\u00be\u0001"+ + "\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001"+ + "\u00be\u0001\u00be\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001"+ + "\u00bf\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001"+ + "\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001"+ + "\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001"+ + "\u00c1\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001"+ + "\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001"+ + "\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0001"+ + "\u00c4\u0001\u00c4\u0001\u00c4\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001"+ + "\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001"+ + "\u00c5\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001"+ + "\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+ + "\u00c7\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001"+ + "\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001\u00c9\u0001"+ + "\u00c9\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001\u00ca\u0001"+ + "\u00ca\u0001\u00ca\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001"+ + "\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cc\u0001\u00cc\u0001"+ + "\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001"+ + "\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00ce\u0001"+ + "\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00cf\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001"+ + "\u00cf\u0001\u00cf\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001\u00d0\u0001"+ + "\u00d0\u0001\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001\u00d1\u0001"+ + "\u00d1\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001\u00d2\u0001"+ + "\u00d2\u0001\u00d2\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001"+ + "\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001"+ + "\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001"+ + "\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001"+ + "\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001\u00d6\u0001"+ + "\u00d6\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d7\u0001\u00d8\u0001"+ + "\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0001"+ + "\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00d9\u0001\u00da\u0001\u00da\u0001"+ + "\u00da\u0001\u00da\u0001\u00da\u0001\u00db\u0001\u00db\u0001\u00db\u0001"+ + "\u00db\u0001\u00db\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0001"+ + "\u00dc\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001\u00dd\u0001"+ + "\u00dd\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001"+ + "\u00de\u0001\u00de\u0001\u00de\u0001\u00de\u0001\u00df\u0001\u00df\u0001"+ + "\u00df\u0001\u00df\u0001\u00df\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001"+ + "\u00e0\u0001\u00e0\u0001\u00e0\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001"+ + "\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001"+ + "\u00e1\u0001\u00e1\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001\u00e2\u0001"+ + "\u00e2\u0001\u00e2\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e3\u0001"+ + "\u00e3\u0001\u00e3\u0001\u00e3\u0001\u00e4\u0001\u00e4\u0001\u00e4\u0001"+ + "\u00e4\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e5\u0001\u00e6\u0001"+ + "\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e7\u0001\u00e7\u0001"+ + "\u00e7\u0001\u00e7\u0001\u00e7\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0001"+ + "\u00e8\u0001\u00e8\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001\u00e9\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00ea\u0001"+ + "\u00ea\u0001\u00ea\u0001\u00ea\u0001\u00eb\u0001\u00eb\u0001\u00eb\u0001"+ + "\u00eb\u0001\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001\u00ec\u0001"+ + "\u00ec\u0001\u00ec\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001"+ + "\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ee\u0001\u00ee\u0001"+ + "\u00ee\u0001\u00ee\u0001\u00ee\u0001\u00ef\u0001\u00ef\u0001\u00ef\u0001"+ + "\u00ef\u0001\u00ef\u0001\u00ef\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001"+ + "\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f0\u0001\u00f1\u0001\u00f1\u0001"+ + "\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001"+ + "\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001\u00f2\u0001"+ + "\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001\u00f3\u0001"+ + "\u00f3\u0001\u00f3\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001"+ + "\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001\u00f5\u0001"+ + "\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f5\u0001\u00f6\u0001\u00f6\u0001"+ + "\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001\u00f6\u0001"+ + "\u00f6\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001\u00f7\u0001"+ + "\u00f7\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f8\u0001\u00f9\u0001"+ + "\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001"+ + "\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00fa\u0001\u00fa\u0001\u00fa\u0001"+ + "\u00fa\u0001\u00fa\u0001\u00fa\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001"+ + "\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001\u00fb\u0001"+ + "\u00fb\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fc\u0001"+ + "\u00fc\u0001\u00fc\u0001\u00fc\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001"+ + "\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001\u00fd\u0001"+ + "\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00fe\u0001\u00ff\u0001"+ + "\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u00ff\u0001\u0100\u0001"+ + "\u0100\u0001\u0100\u0001\u0100\u0001\u0100\u0001\u0101\u0001\u0101\u0001"+ + "\u0101\u0001\u0101\u0001\u0102\u0001\u0102\u0001\u0102\u0001\u0102\u0001"+ + "\u0102\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001\u0103\u0001"+ + "\u0103\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001\u0104\u0001"+ + "\u0104\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001"+ + "\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001"+ + "\u0105\u0001\u0105\u0001\u0105\u0001\u0105\u0001\u0106\u0001\u0106\u0001"+ + "\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001\u0106\u0001"+ + "\u0106\u0001\u0106\u0001\u0106\u0001\u0107\u0001\u0107\u0001\u0107\u0001"+ + "\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001\u0107\u0001"+ + "\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001"+ + "\u0108\u0001\u0108\u0001\u0108\u0001\u0108\u0001\u0109\u0001\u0109\u0001"+ + "\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001\u0109\u0001"+ + "\u0109\u0001\u0109\u0001\u0109\u0001\u010a\u0001\u010a\u0001\u010a\u0001"+ + "\u010a\u0001\u010a\u0001\u010a\u0001\u010b\u0001\u010b\u0001\u010b\u0001"+ + "\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010b\u0001\u010c\u0001"+ + "\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010c\u0001\u010d\u0001"+ + "\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010d\u0001\u010e\u0001"+ + "\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001"+ + "\u010e\u0001\u010e\u0001\u010e\u0001\u010e\u0001\u010f\u0001\u010f\u0001"+ + "\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001"+ + "\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u010f\u0001\u0110\u0001"+ + "\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001"+ + "\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001\u0110\u0001"+ + "\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0111\u0001\u0112\u0001"+ + "\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001\u0112\u0001"+ + "\u0112\u0001\u0112\u0001\u0112\u0001\u0113\u0001\u0113\u0001\u0113\u0001"+ + "\u0113\u0001\u0113\u0001\u0113\u0001\u0113\u0001\u0114\u0001\u0114\u0001"+ + "\u0114\u0001\u0114\u0001\u0114\u0001\u0114\u0001\u0115\u0001\u0115\u0001"+ + "\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001\u0115\u0001"+ + "\u0115\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001"+ + "\u0116\u0001\u0116\u0001\u0116\u0001\u0116\u0001\u0117\u0001\u0117\u0001"+ + "\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001\u0117\u0001"+ + "\u0117\u0001\u0117\u0001\u0118\u0001\u0118\u0001\u0118\u0001\u0118\u0001"+ + "\u0118\u0001\u0118\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001"+ + "\u0119\u0001\u0119\u0001\u0119\u0001\u0119\u0001\u011a\u0001\u011a\u0001"+ + "\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001\u011a\u0001"+ + "\u011a\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001\u011b\u0001"+ + "\u011b\u0001\u011b\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001"+ + "\u011c\u0001\u011c\u0001\u011c\u0001\u011c\u0001\u011d\u0001\u011d\u0001"+ + "\u011d\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001\u011e\u0001"+ + "\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001"+ + "\u011f\u0001\u011f\u0001\u011f\u0001\u011f\u0001\u0120\u0001\u0120\u0001"+ + "\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001\u0120\u0001"+ + "\u0120\u0001\u0120\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001"+ + "\u0121\u0001\u0121\u0001\u0121\u0001\u0121\u0001\u0122\u0001\u0122\u0001"+ + "\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001\u0122\u0001"+ + "\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001\u0123\u0001"+ + "\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001\u0124\u0001"+ + "\u0124\u0001\u0124\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001"+ + "\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001\u0125\u0001"+ + "\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001\u0126\u0001"+ + "\u0126\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001\u0127\u0001"+ + "\u0127\u0001\u0127\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001"+ + "\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001\u0128\u0001"+ + "\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001"+ + "\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001\u0129\u0001"+ + "\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001\u012a\u0001"+ + "\u012a\u0001\u012a\u0001\u012a\u0001\u012b\u0001\u012b\u0001\u012b\u0001"+ + "\u012b\u0001\u012b\u0001\u012b\u0001\u012b\u0001\u012c\u0001\u012c\u0001"+ + "\u012c\u0001\u012c\u0001\u012c\u0001\u012d\u0001\u012d\u0001\u012d\u0001"+ + "\u012d\u0001\u012d\u0001\u012d\u0001\u012d\u0001\u012e\u0001\u012e\u0001"+ + "\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001\u012e\u0001"+ + "\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001\u012f\u0001"+ + "\u012f\u0001\u012f\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001"+ + "\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0130\u0001\u0131\u0001"+ + "\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001"+ + "\u0131\u0001\u0131\u0001\u0131\u0001\u0131\u0001\u0132\u0001\u0132\u0001"+ + "\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001"+ + "\u0132\u0001\u0132\u0001\u0132\u0001\u0132\u0001\u0133\u0001\u0133\u0001"+ + "\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001\u0133\u0001"+ + "\u0133\u0001\u0133\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001"+ + "\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0134\u0001\u0135\u0001"+ + "\u0135\u0001\u0135\u0001\u0135\u0001\u0135\u0001\u0136\u0001\u0136\u0001"+ + "\u0136\u0001\u0136\u0001\u0136\u0001\u0136\u0001\u0137\u0001\u0137\u0001"+ + "\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001\u0137\u0001"+ + "\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001\u0138\u0001"+ + "\u0138\u0001\u0138\u0001\u0138\u0001\u0139\u0001\u0139\u0001\u0139\u0001"+ + "\u0139\u0001\u0139\u0001\u0139\u0001\u013a\u0001\u013a\u0001\u013a\u0001"+ + "\u013a\u0001\u013a\u0001\u013a\u0001\u013b\u0001\u013b\u0001\u013b\u0001"+ + "\u013b\u0001\u013b\u0001\u013b\u0001\u013b\u0001\u013c\u0001\u013c\u0001"+ + "\u013c\u0001\u013c\u0001\u013c\u0001\u013d\u0001\u013d\u0001\u013d\u0001"+ + "\u013d\u0001\u013d\u0001\u013d\u0001\u013e\u0001\u013e\u0001\u013e\u0001"+ + "\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013e\u0001\u013f\u0001"+ + "\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0001\u013f\u0001"+ + "\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0140\u0001\u0141\u0001"+ + "\u0141\u0001\u0141\u0001\u0141\u0001\u0142\u0001\u0142\u0001\u0142\u0001"+ + "\u0142\u0001\u0143\u0001\u0143\u0001\u0143\u0001\u0143\u0001\u0143\u0001"+ + "\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0144\u0001\u0145\u0001"+ + "\u0145\u0001\u0145\u0001\u0146\u0001\u0146\u0001\u0146\u0001\u0146\u0001"+ + "\u0146\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001"+ + "\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001\u0147\u0001"+ + "\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0148\u0001\u0149\u0001"+ + "\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001"+ + "\u0149\u0001\u0149\u0001\u0149\u0001\u0149\u0001\u014a\u0001\u014a\u0001"+ + "\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001\u014a\u0001"+ + "\u014a\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001\u014b\u0001"+ + "\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001"+ + "\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001\u014c\u0001"+ + "\u014c\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001"+ + "\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001\u014d\u0001"+ + "\u014d\u0001\u014d\u0001\u014d\u0001\u014e\u0001\u014e\u0001\u014e\u0001"+ + "\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001\u014e\u0001"+ + "\u014e\u0001\u014e\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001"+ + "\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u014f\u0001\u0150\u0001"+ + "\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001\u0150\u0001"+ + "\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001\u0151\u0001"+ + "\u0151\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001\u0152\u0001"+ + "\u0152\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153\u0001\u0153\u0001"+ + "\u0154\u0001\u0154\u0001\u0154\u0001\u0155\u0001\u0155\u0001\u0155\u0001"+ + "\u0155\u0001\u0155\u0001\u0155\u0001\u0156\u0001\u0156\u0001\u0156\u0001"+ + "\u0156\u0001\u0156\u0001\u0156\u0001\u0156\u0001\u0156\u0001\u0156\u0001"+ + "\u0156\u0001\u0156\u0001\u0156\u0001\u0157\u0001\u0157\u0001\u0157\u0001"+ + "\u0157\u0001\u0157\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001"+ + "\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001\u0158\u0001"+ + "\u0158\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001\u0159\u0001"+ + "\u0159\u0001\u0159\u0001\u015a\u0001\u015a\u0001\u015a\u0001\u015a\u0001"+ + "\u015a\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001\u015b\u0001"+ + "\u015b\u0001\u015b\u0001\u015b\u0001\u015c\u0001\u015c\u0001\u015c\u0001"+ + "\u015c\u0001\u015c\u0001\u015c\u0001\u015d\u0001\u015d\u0001\u015d\u0001"+ + "\u015d\u0001\u015d\u0001\u015e\u0001\u015e\u0003\u015e\u0d75\b\u015e\u0001"+ + "\u015f\u0001\u015f\u0005\u015f\u0d79\b\u015f\n\u015f\f\u015f\u0d7c\t\u015f"+ + "\u0001\u0160\u0004\u0160\u0d7f\b\u0160\u000b\u0160\f\u0160\u0d80\u0001"+ + "\u0161\u0001\u0161\u0003\u0161\u0d85\b\u0161\u0001\u0162\u0001\u0162\u0001"+ + "\u0162\u0001\u0163\u0001\u0163\u0001\u0163\u0001\u0164\u0001\u0164\u0003"+ + "\u0164\u0d8f\b\u0164\u0001\u0165\u0001\u0165\u0001\u0166\u0001\u0166\u0001"+ + "\u0167\u0001\u0167\u0001\u0168\u0001\u0168\u0001\u0168\u0001\u0168\u0001"+ + "\u0169\u0001\u0169\u0001\u0169\u0001\u0169\u0001\u016a\u0001\u016a\u0001"+ + "\u016a\u0001\u016a\u0001\u016b\u0001\u016b\u0001\u016b\u0001\u016c\u0001"+ + "\u016c\u0001\u016c\u0001\u016d\u0001\u016d\u0001\u016d\u0001\u016e\u0001"+ + "\u016e\u0001\u016e\u0001\u016f\u0001\u016f\u0001\u016f\u0001\u0170\u0001"+ + "\u0170\u0001\u0170\u0001\u0171\u0001\u0171\u0001\u0171\u0001\u0172\u0001"+ + "\u0172\u0001\u0172\u0001\u0172\u0001\u0173\u0001\u0173\u0001\u0173\u0001"+ + "\u0173\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0174\u0001\u0175\u0001"+ + "\u0175\u0001\u0175\u0001\u0175\u0001\u0176\u0001\u0176\u0001\u0176\u0001"+ + "\u0176\u0001\u0177\u0001\u0177\u0001\u0177\u0001\u0178\u0001\u0178\u0001"+ + "\u0178\u0001\u0179\u0001\u0179\u0001\u0179\u0001\u017a\u0001\u017a\u0001"+ + "\u017a\u0001\u017b\u0001\u017b\u0001\u017b\u0001\u017c\u0001\u017c\u0001"+ + "\u017c\u0001\u017d\u0001\u017d\u0001\u017d\u0001\u017e\u0001\u017e\u0001"+ + "\u017e\u0001\u017f\u0001\u017f\u0001\u017f\u0001\u0180\u0001\u0180\u0001"+ + "\u0180\u0001\u0180\u0001\u0181\u0001\u0181\u0001\u0181\u0001\u0182\u0001"+ + "\u0182\u0001\u0182\u0001\u0182\u0001\u0183\u0001\u0183\u0001\u0183\u0001"+ + "\u0184\u0001\u0184\u0001\u0184\u0001\u0185\u0001\u0185\u0001\u0185\u0001"+ + "\u0186\u0001\u0186\u0001\u0187\u0001\u0187\u0001\u0188\u0001\u0188\u0001"+ + "\u0189\u0001\u0189\u0001\u018a\u0001\u018a\u0001\u018b\u0001\u018b\u0001"+ + "\u018c\u0001\u018c\u0001\u018d\u0001\u018d\u0001\u018e\u0001\u018e\u0001"+ + "\u018f\u0001\u018f\u0001\u0190\u0001\u0190\u0001\u0191\u0001\u0191\u0001"+ + "\u0192\u0001\u0192\u0001\u0193\u0001\u0193\u0001\u0194\u0001\u0194\u0001"+ + "\u0195\u0001\u0195\u0001\u0196\u0001\u0196\u0001\u0197\u0001\u0197\u0001"+ + "\u0198\u0001\u0198\u0001\u0199\u0001\u0199\u0001\u019a\u0001\u019a\u0001"+ + "\u019b\u0001\u019b\u0001\u019c\u0001\u019c\u0001\u019d\u0001\u019d\u0001"+ + "\u019e\u0001\u019e\u0001\u019f\u0001\u019f\u0001\u01a0\u0001\u01a0\u0001"+ + "\u01a1\u0001\u01a1\u0001\u01a2\u0001\u01a2\u0001\u01a3\u0001\u01a3\u0001"+ + "\u01a4\u0001\u01a4\u0001\u01a5\u0001\u01a5\u0001\u01a6\u0001\u01a6\u0001"+ + "\u01a7\u0004\u01a7\u0e3e\b\u01a7\u000b\u01a7\f\u01a7\u0e3f\u0001\u01a7"+ + "\u0001\u01a7\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8\u0001\u01a8"+ + "\u0003\u01a8\u0e4f\b\u01a8\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9"+ + "\u0005\u01a9\u0e55\b\u01a9\n\u01a9\f\u01a9\u0e58\t\u01a9\u0001\u01a9\u0001"+ + "\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01a9\u0001\u01aa\u0001\u01aa\u0001"+ + "\u01aa\u0001\u01aa\u0005\u01aa\u0e63\b\u01aa\n\u01aa\f\u01aa\u0e66\t\u01aa"+ + "\u0001\u01aa\u0001\u01aa\u0001\u01ab\u0001\u01ab\u0001\u01ab\u0001\u01ab"+ + "\u0005\u01ab\u0e6e\b\u01ab\n\u01ab\f\u01ab\u0e71\t\u01ab\u0001\u01ab\u0001"+ + "\u01ab\u0001\u01ac\u0001\u01ac\u0001\u01ad\u0001\u01ad\u0001\u01ae\u0001"+ + "\u01ae\u0001\u01af\u0001\u01af\u0001\u01b0\u0001\u01b0\u0001\u01b1\u0001"+ + "\u01b1\u0001\u01b2\u0001\u01b2\u0001\u01b3\u0001\u01b3\u0001\u01b4\u0001"+ + "\u01b4\u0001\u01b5\u0001\u01b5\u0001\u01b6\u0001\u01b6\u0001\u01b7\u0001"+ + "\u01b7\u0001\u0e56\u0000\u01b8\u0001\u0001\u0003\u0000\u0005\u0002\u0007"+ + "\u0003\t\u0004\u000b\u0005\r\u0006\u000f\u0000\u0011\u0000\u0013\u0000"+ + "\u0015\u0000\u0017\u0000\u0019\u0000\u001b\u0000\u001d\u0000\u001f\u0000"+ + "!\u0000#\u0000%\u0000\'\u0000)\u0000+\u0000-\u0000/\u00001\u00003\u0007"+ + "5\b7\t9\n;\u000b=\f?\rA\u000eC\u000fE\u0010G\u0000I\u0000K\u0000M\u0000"+ + "O\u0000Q\u0000S\u0011U\u0012W\u0013Y\u0000[\u0014]\u0015_\u0016a\u0017"+ + "c\u0018e\u0019g\u001ai\u001bk\u001cm\u001do\u001eq\u001fs u!w\"y#{$}%"+ + "\u007f&\u0081\'\u0083(\u0085)\u0087*\u0089+\u008b,\u008d-\u008f.\u0091"+ + "/\u00930\u00951\u00972\u00993\u009b4\u009d5\u009f6\u00a17\u00a38\u00a5"+ + "9\u00a7:\u00a9;\u00ab<\u00ad=\u00af>\u00b1?\u00b3@\u00b5A\u00b7B\u00b9"+ + "C\u00bbD\u00bdE\u00bfF\u00c1G\u00c3H\u00c5I\u00c7J\u00c9K\u00cbL\u00cd"+ + "M\u00cfN\u00d1O\u00d3P\u00d5Q\u00d7R\u00d9S\u00dbT\u00ddU\u00dfV\u00e1"+ + "W\u00e3X\u00e5Y\u00e7Z\u00e9[\u00eb\\\u00ed]\u00ef^\u00f1_\u00f3`\u00f5"+ + "a\u00f7b\u00f9c\u00fbd\u00fde\u00fff\u0101g\u0103h\u0105i\u0107j\u0109"+ + "k\u010bl\u010dm\u010fn\u0111o\u0113p\u0115q\u0117r\u0119s\u011bt\u011d"+ + "u\u011fv\u0121w\u0123x\u0125y\u0127z\u0129{\u012b|\u012d}\u012f~\u0131"+ + "\u007f\u0133\u0080\u0135\u0081\u0137\u0082\u0139\u0083\u013b\u0084\u013d"+ + "\u0085\u013f\u0086\u0141\u0087\u0143\u0088\u0145\u0089\u0147\u008a\u0149"+ + "\u008b\u014b\u008c\u014d\u008d\u014f\u008e\u0151\u008f\u0153\u0090\u0155"+ + "\u0091\u0157\u0092\u0159\u0093\u015b\u0094\u015d\u0095\u015f\u0096\u0161"+ + "\u0097\u0163\u0098\u0165\u0099\u0167\u009a\u0169\u009b\u016b\u009c\u016d"+ + "\u009d\u016f\u009e\u0171\u009f\u0173\u00a0\u0175\u00a1\u0177\u00a2\u0179"+ + "\u00a3\u017b\u00a4\u017d\u00a5\u017f\u00a6\u0181\u00a7\u0183\u00a8\u0185"+ + "\u00a9\u0187\u00aa\u0189\u00ab\u018b\u00ac\u018d\u00ad\u018f\u00ae\u0191"+ + "\u00af\u0193\u00b0\u0195\u00b1\u0197\u00b2\u0199\u00b3\u019b\u00b4\u019d"+ + "\u00b5\u019f\u00b6\u01a1\u00b7\u01a3\u00b8\u01a5\u00b9\u01a7\u00ba\u01a9"+ + "\u00bb\u01ab\u00bc\u01ad\u00bd\u01af\u00be\u01b1\u00bf\u01b3\u00c0\u01b5"+ + "\u00c1\u01b7\u00c2\u01b9\u00c3\u01bb\u00c4\u01bd\u00c5\u01bf\u00c6\u01c1"+ + "\u00c7\u01c3\u00c8\u01c5\u00c9\u01c7\u00ca\u01c9\u00cb\u01cb\u00cc\u01cd"+ + "\u00cd\u01cf\u00ce\u01d1\u00cf\u01d3\u00d0\u01d5\u00d1\u01d7\u00d2\u01d9"+ + "\u00d3\u01db\u00d4\u01dd\u00d5\u01df\u00d6\u01e1\u00d7\u01e3\u00d8\u01e5"+ + "\u00d9\u01e7\u00da\u01e9\u00db\u01eb\u00dc\u01ed\u00dd\u01ef\u00de\u01f1"+ + "\u00df\u01f3\u00e0\u01f5\u00e1\u01f7\u00e2\u01f9\u00e3\u01fb\u00e4\u01fd"+ + "\u00e5\u01ff\u00e6\u0201\u00e7\u0203\u00e8\u0205\u00e9\u0207\u00ea\u0209"+ + "\u00eb\u020b\u00ec\u020d\u00ed\u020f\u00ee\u0211\u00ef\u0213\u00f0\u0215"+ + "\u00f1\u0217\u00f2\u0219\u00f3\u021b\u00f4\u021d\u00f5\u021f\u00f6\u0221"+ + "\u00f7\u0223\u00f8\u0225\u00f9\u0227\u00fa\u0229\u00fb\u022b\u00fc\u022d"+ + "\u00fd\u022f\u00fe\u0231\u00ff\u0233\u0100\u0235\u0101\u0237\u0102\u0239"+ + "\u0103\u023b\u0104\u023d\u0105\u023f\u0106\u0241\u0107\u0243\u0108\u0245"+ + "\u0109\u0247\u010a\u0249\u010b\u024b\u010c\u024d\u010d\u024f\u010e\u0251"+ + "\u010f\u0253\u0110\u0255\u0111\u0257\u0112\u0259\u0113\u025b\u0114\u025d"+ + "\u0115\u025f\u0116\u0261\u0117\u0263\u0118\u0265\u0119\u0267\u011a\u0269"+ + "\u011b\u026b\u011c\u026d\u011d\u026f\u011e\u0271\u011f\u0273\u0120\u0275"+ + "\u0121\u0277\u0122\u0279\u0123\u027b\u0124\u027d\u0125\u027f\u0126\u0281"+ + "\u0127\u0283\u0128\u0285\u0129\u0287\u012a\u0289\u012b\u028b\u012c\u028d"+ + "\u012d\u028f\u012e\u0291\u012f\u0293\u0130\u0295\u0131\u0297\u0132\u0299"+ + "\u0133\u029b\u0134\u029d\u0135\u029f\u0136\u02a1\u0137\u02a3\u0138\u02a5"+ + "\u0139\u02a7\u013a\u02a9\u013b\u02ab\u013c\u02ad\u013d\u02af\u013e\u02b1"+ + "\u013f\u02b3\u0140\u02b5\u0141\u02b7\u0142\u02b9\u0143\u02bb\u0144\u02bd"+ + "\u0000\u02bf\u0145\u02c1\u0000\u02c3\u0000\u02c5\u0146\u02c7\u0147\u02c9"+ + "\u0000\u02cb\u0000\u02cd\u0000\u02cf\u0000\u02d1\u0148\u02d3\u0149\u02d5"+ + "\u014a\u02d7\u014b\u02d9\u014c\u02db\u014d\u02dd\u014e\u02df\u014f\u02e1"+ + "\u0150\u02e3\u0151\u02e5\u0152\u02e7\u0153\u02e9\u0154\u02eb\u0155\u02ed"+ + "\u0156\u02ef\u0157\u02f1\u0158\u02f3\u0159\u02f5\u015a\u02f7\u015b\u02f9"+ + "\u015c\u02fb\u015d\u02fd\u015e\u02ff\u015f\u0301\u0160\u0303\u0161\u0305"+ + "\u0162\u0307\u0163\u0309\u0164\u030b\u0165\u030d\u0166\u030f\u0167\u0311"+ + "\u0168\u0313\u0169\u0315\u016a\u0317\u016b\u0319\u016c\u031b\u016d\u031d"+ + "\u016e\u031f\u016f\u0321\u0170\u0323\u0171\u0325\u0172\u0327\u0173\u0329"+ + "\u0174\u032b\u0175\u032d\u0176\u032f\u0177\u0331\u0178\u0333\u0179\u0335"+ + "\u017a\u0337\u017b\u0339\u017c\u033b\u017d\u033d\u017e\u033f\u017f\u0341"+ + "\u0180\u0343\u0181\u0345\u0182\u0347\u0000\u0349\u0000\u034b\u0000\u034d"+ + "\u0000\u034f\u0183\u0351\u0184\u0353\u0185\u0355\u0186\u0357\u0187\u0359"+ + "\u0000\u035b\u0000\u035d\u0000\u035f\u0000\u0361\u0000\u0363\u0000\u0365"+ + "\u0000\u0367\u0000\u0369\u0000\u036b\u0000\u036d\u0000\u036f\u0000\u0001"+ + "\u00002\u0002\u0000IIii\u0002\u0000MMmm\u0002\u0000PPpp\u0002\u0000LL"+ + "ll\u0002\u0000EEee\u0002\u0000SSss\u0002\u0000TTtt\u0002\u0000RRrr\u0002"+ + "\u0000UUuu\u0002\u0000FFff\u0002\u0000AAaa\u0002\u0000NNnn\u0002\u0000"+ + "KKkk\u0002\u0000OOoo\u0002\u0000WWww\u0004\u0000\n\n\r\r\'\'\\\\\u0004"+ + "\u0000\n\n\r\r\"\"\\\\\u0004\u0000\n\n\r\r\\\\``\u0002\u0000BBbb\u0002"+ + "\u0000XXxx\u0004\u0000DDFFddff\u0002\u0000CCcc\u0002\u0000DDdd\u0002\u0000"+ + "YYyy\u0002\u0000GGgg\u0002\u0000VVvv\u0002\u0000HHhh\u0002\u0000ZZzz\u0002"+ + "\u0000QQqq\u0002\u0000JJjj\u0288\u0000AZaz\u00aa\u00aa\u00b5\u00b5\u00ba"+ + "\u00ba\u00c0\u00d6\u00d8\u00f6\u00f8\u02c1\u02c6\u02d1\u02e0\u02e4\u02ec"+ + "\u02ec\u02ee\u02ee\u0370\u0374\u0376\u0377\u037a\u037d\u037f\u037f\u0386"+ + "\u0386\u0388\u038a\u038c\u038c\u038e\u03a1\u03a3\u03f5\u03f7\u0481\u048a"+ + "\u052f\u0531\u0556\u0559\u0559\u0560\u0588\u05d0\u05ea\u05ef\u05f2\u0620"+ + "\u064a\u066e\u066f\u0671\u06d3\u06d5\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa"+ + "\u06fc\u06ff\u06ff\u0710\u0710\u0712\u072f\u074d\u07a5\u07b1\u07b1\u07ca"+ + "\u07ea\u07f4\u07f5\u07fa\u07fa\u0800\u0815\u081a\u081a\u0824\u0824\u0828"+ + "\u0828\u0840\u0858\u0860\u086a\u0870\u0887\u0889\u088e\u08a0\u08c9\u0904"+ + "\u0939\u093d\u093d\u0950\u0950\u0958\u0961\u0971\u0980\u0985\u098c\u098f"+ + "\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09bd\u09bd\u09ce"+ + "\u09ce\u09dc\u09dd\u09df\u09e1\u09f0\u09f1\u09fc\u09fc\u0a05\u0a0a\u0a0f"+ + "\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59"+ + "\u0a5c\u0a5e\u0a5e\u0a72\u0a74\u0a85\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa"+ + "\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abd\u0abd\u0ad0\u0ad0\u0ae0\u0ae1\u0af9"+ + "\u0af9\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b35"+ + "\u0b39\u0b3d\u0b3d\u0b5c\u0b5d\u0b5f\u0b61\u0b71\u0b71\u0b83\u0b83\u0b85"+ + "\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3"+ + "\u0ba4\u0ba8\u0baa\u0bae\u0bb9\u0bd0\u0bd0\u0c05\u0c0c\u0c0e\u0c10\u0c12"+ + "\u0c28\u0c2a\u0c39\u0c3d\u0c3d\u0c58\u0c5a\u0c5d\u0c5d\u0c60\u0c61\u0c80"+ + "\u0c80\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbd"+ + "\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04\u0d0c\u0d0e\u0d10\u0d12"+ + "\u0d3a\u0d3d\u0d3d\u0d4e\u0d4e\u0d54\u0d56\u0d5f\u0d61\u0d7a\u0d7f\u0d85"+ + "\u0d96\u0d9a\u0db1\u0db3\u0dbb\u0dbd\u0dbd\u0dc0\u0dc6\u0e01\u0e30\u0e32"+ + "\u0e33\u0e40\u0e46\u0e81\u0e82\u0e84\u0e84\u0e86\u0e8a\u0e8c\u0ea3\u0ea5"+ + "\u0ea5\u0ea7\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0edc"+ + "\u0edf\u0f00\u0f00\u0f40\u0f47\u0f49\u0f6c\u0f88\u0f8c\u1000\u102a\u103f"+ + "\u103f\u1050\u1055\u105a\u105d\u1061\u1061\u1065\u1066\u106e\u1070\u1075"+ + "\u1081\u108e\u108e\u10a0\u10c5\u10c7\u10c7\u10cd\u10cd\u10d0\u10fa\u10fc"+ + "\u1248\u124a\u124d\u1250\u1256\u1258\u1258\u125a\u125d\u1260\u1288\u128a"+ + "\u128d\u1290\u12b0\u12b2\u12b5\u12b8\u12be\u12c0\u12c0\u12c2\u12c5\u12c8"+ + "\u12d6\u12d8\u1310\u1312\u1315\u1318\u135a\u1380\u138f\u13a0\u13f5\u13f8"+ + "\u13fd\u1401\u166c\u166f\u167f\u1681\u169a\u16a0\u16ea\u16ee\u16f8\u1700"+ + "\u1711\u171f\u1731\u1740\u1751\u1760\u176c\u176e\u1770\u1780\u17b3\u17d7"+ + "\u17d7\u17dc\u17dc\u1820\u1878\u1880\u18a8\u18aa\u18aa\u18b0\u18f5\u1900"+ + "\u191e\u1950\u196d\u1970\u1974\u1980\u19ab\u19b0\u19c9\u1a00\u1a16\u1a20"+ + "\u1a54\u1aa7\u1aa7\u1b05\u1b33\u1b45\u1b4c\u1b83\u1ba0\u1bae\u1baf\u1bba"+ + "\u1be5\u1c00\u1c23\u1c4d\u1c4f\u1c5a\u1c7d\u1c80\u1c88\u1c90\u1cba\u1cbd"+ + "\u1cbf\u1ce9\u1cec\u1cee\u1cf3\u1cf5\u1cf6\u1cfa\u1cfa\u1d00\u1dbf\u1e00"+ + "\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b"+ + "\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2"+ + "\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6"+ + "\u1ffc\u2071\u2071\u207f\u207f\u2090\u209c\u2102\u2102\u2107\u2107\u210a"+ + "\u2113\u2115\u2115\u2118\u211d\u2124\u2124\u2126\u2126\u2128\u2128\u212a"+ + "\u2139\u213c\u213f\u2145\u2149\u214e\u214e\u2160\u2188\u2c00\u2ce4\u2ceb"+ + "\u2cee\u2cf2\u2cf3\u2d00\u2d25\u2d27\u2d27\u2d2d\u2d2d\u2d30\u2d67\u2d6f"+ + "\u2d6f\u2d80\u2d96\u2da0\u2da6\u2da8\u2dae\u2db0\u2db6\u2db8\u2dbe\u2dc0"+ + "\u2dc6\u2dc8\u2dce\u2dd0\u2dd6\u2dd8\u2dde\u3005\u3007\u3021\u3029\u3031"+ + "\u3035\u3038\u303c\u3041\u3096\u309b\u309f\u30a1\u30fa\u30fc\u30ff\u3105"+ + "\u312f\u3131\u318e\u31a0\u31bf\u31f0\u31ff\u3400\u4dbf\u4e00\u8000\ua48c"+ + "\u8000\ua4d0\u8000\ua4fd\u8000\ua500\u8000\ua60c\u8000\ua610\u8000\ua61f"+ + "\u8000\ua62a\u8000\ua62b\u8000\ua640\u8000\ua66e\u8000\ua67f\u8000\ua69d"+ + "\u8000\ua6a0\u8000\ua6ef\u8000\ua717\u8000\ua71f\u8000\ua722\u8000\ua788"+ + "\u8000\ua78b\u8000\ua7ca\u8000\ua7d0\u8000\ua7d1\u8000\ua7d3\u8000\ua7d3"+ + "\u8000\ua7d5\u8000\ua7d9\u8000\ua7f2\u8000\ua801\u8000\ua803\u8000\ua805"+ + "\u8000\ua807\u8000\ua80a\u8000\ua80c\u8000\ua822\u8000\ua840\u8000\ua873"+ + "\u8000\ua882\u8000\ua8b3\u8000\ua8f2\u8000\ua8f7\u8000\ua8fb\u8000\ua8fb"+ + "\u8000\ua8fd\u8000\ua8fe\u8000\ua90a\u8000\ua925\u8000\ua930\u8000\ua946"+ + "\u8000\ua960\u8000\ua97c\u8000\ua984\u8000\ua9b2\u8000\ua9cf\u8000\ua9cf"+ + "\u8000\ua9e0\u8000\ua9e4\u8000\ua9e6\u8000\ua9ef\u8000\ua9fa\u8000\ua9fe"+ + "\u8000\uaa00\u8000\uaa28\u8000\uaa40\u8000\uaa42\u8000\uaa44\u8000\uaa4b"+ + "\u8000\uaa60\u8000\uaa76\u8000\uaa7a\u8000\uaa7a\u8000\uaa7e\u8000\uaaaf"+ + "\u8000\uaab1\u8000\uaab1\u8000\uaab5\u8000\uaab6\u8000\uaab9\u8000\uaabd"+ + "\u8000\uaac0\u8000\uaac0\u8000\uaac2\u8000\uaac2\u8000\uaadb\u8000\uaadd"+ + "\u8000\uaae0\u8000\uaaea\u8000\uaaf2\u8000\uaaf4\u8000\uab01\u8000\uab06"+ + "\u8000\uab09\u8000\uab0e\u8000\uab11\u8000\uab16\u8000\uab20\u8000\uab26"+ + "\u8000\uab28\u8000\uab2e\u8000\uab30\u8000\uab5a\u8000\uab5c\u8000\uab69"+ + "\u8000\uab70\u8000\uabe2\u8000\uac00\u8000\ud7a3\u8000\ud7b0\u8000\ud7c6"+ + "\u8000\ud7cb\u8000\ud7fb\u8000\uf900\u8000\ufa6d\u8000\ufa70\u8000\ufad9"+ + "\u8000\ufb00\u8000\ufb06\u8000\ufb13\u8000\ufb17\u8000\ufb1d\u8000\ufb1d"+ + "\u8000\ufb1f\u8000\ufb28\u8000\ufb2a\u8000\ufb36\u8000\ufb38\u8000\ufb3c"+ + "\u8000\ufb3e\u8000\ufb3e\u8000\ufb40\u8000\ufb41\u8000\ufb43\u8000\ufb44"+ + "\u8000\ufb46\u8000\ufbb1\u8000\ufbd3\u8000\ufd3d\u8000\ufd50\u8000\ufd8f"+ + "\u8000\ufd92\u8000\ufdc7\u8000\ufdf0\u8000\ufdfb\u8000\ufe70\u8000\ufe74"+ + "\u8000\ufe76\u8000\ufefc\u8000\uff21\u8000\uff3a\u8000\uff41\u8000\uff5a"+ + "\u8000\uff66\u8000\uffbe\u8000\uffc2\u8000\uffc7\u8000\uffca\u8000\uffcf"+ + "\u8000\uffd2\u8000\uffd7\u8000\uffda\u8000\uffdc\u8001\u0000\u8001\u000b"+ + "\u8001\r\u8001&\u8001(\u8001:\u8001<\u8001=\u8001?\u8001M\u8001P\u8001"+ + "]\u8001\u0080\u8001\u00fa\u8001\u0140\u8001\u0174\u8001\u0280\u8001\u029c"+ + "\u8001\u02a0\u8001\u02d0\u8001\u0300\u8001\u031f\u8001\u032d\u8001\u034a"+ + "\u8001\u0350\u8001\u0375\u8001\u0380\u8001\u039d\u8001\u03a0\u8001\u03c3"+ + "\u8001\u03c8\u8001\u03cf\u8001\u03d1\u8001\u03d5\u8001\u0400\u8001\u049d"+ + "\u8001\u04b0\u8001\u04d3\u8001\u04d8\u8001\u04fb\u8001\u0500\u8001\u0527"+ + "\u8001\u0530\u8001\u0563\u8001\u0570\u8001\u057a\u8001\u057c\u8001\u058a"+ + "\u8001\u058c\u8001\u0592\u8001\u0594\u8001\u0595\u8001\u0597\u8001\u05a1"+ + "\u8001\u05a3\u8001\u05b1\u8001\u05b3\u8001\u05b9\u8001\u05bb\u8001\u05bc"+ + "\u8001\u0600\u8001\u0736\u8001\u0740\u8001\u0755\u8001\u0760\u8001\u0767"+ + "\u8001\u0780\u8001\u0785\u8001\u0787\u8001\u07b0\u8001\u07b2\u8001\u07ba"+ + "\u8001\u0800\u8001\u0805\u8001\u0808\u8001\u0808\u8001\u080a\u8001\u0835"+ + "\u8001\u0837\u8001\u0838\u8001\u083c\u8001\u083c\u8001\u083f\u8001\u0855"+ + "\u8001\u0860\u8001\u0876\u8001\u0880\u8001\u089e\u8001\u08e0\u8001\u08f2"+ + "\u8001\u08f4\u8001\u08f5\u8001\u0900\u8001\u0915\u8001\u0920\u8001\u0939"+ + "\u8001\u0980\u8001\u09b7\u8001\u09be\u8001\u09bf\u8001\u0a00\u8001\u0a00"+ + "\u8001\u0a10\u8001\u0a13\u8001\u0a15\u8001\u0a17\u8001\u0a19\u8001\u0a35"+ + "\u8001\u0a60\u8001\u0a7c\u8001\u0a80\u8001\u0a9c\u8001\u0ac0\u8001\u0ac7"+ + "\u8001\u0ac9\u8001\u0ae4\u8001\u0b00\u8001\u0b35\u8001\u0b40\u8001\u0b55"+ + "\u8001\u0b60\u8001\u0b72\u8001\u0b80\u8001\u0b91\u8001\u0c00\u8001\u0c48"+ + "\u8001\u0c80\u8001\u0cb2\u8001\u0cc0\u8001\u0cf2\u8001\u0d00\u8001\u0d23"+ + "\u8001\u0e80\u8001\u0ea9\u8001\u0eb0\u8001\u0eb1\u8001\u0f00\u8001\u0f1c"+ + "\u8001\u0f27\u8001\u0f27\u8001\u0f30\u8001\u0f45\u8001\u0f70\u8001\u0f81"+ + "\u8001\u0fb0\u8001\u0fc4\u8001\u0fe0\u8001\u0ff6\u8001\u1003\u8001\u1037"+ + "\u8001\u1071\u8001\u1072\u8001\u1075\u8001\u1075\u8001\u1083\u8001\u10af"+ + "\u8001\u10d0\u8001\u10e8\u8001\u1103\u8001\u1126\u8001\u1144\u8001\u1144"+ + "\u8001\u1147\u8001\u1147\u8001\u1150\u8001\u1172\u8001\u1176\u8001\u1176"+ + "\u8001\u1183\u8001\u11b2\u8001\u11c1\u8001\u11c4\u8001\u11da\u8001\u11da"+ + "\u8001\u11dc\u8001\u11dc\u8001\u1200\u8001\u1211\u8001\u1213\u8001\u122b"+ + "\u8001\u1280\u8001\u1286\u8001\u1288\u8001\u1288\u8001\u128a\u8001\u128d"+ + "\u8001\u128f\u8001\u129d\u8001\u129f\u8001\u12a8\u8001\u12b0\u8001\u12de"+ + "\u8001\u1305\u8001\u130c\u8001\u130f\u8001\u1310\u8001\u1313\u8001\u1328"+ + "\u8001\u132a\u8001\u1330\u8001\u1332\u8001\u1333\u8001\u1335\u8001\u1339"+ + "\u8001\u133d\u8001\u133d\u8001\u1350\u8001\u1350\u8001\u135d\u8001\u1361"+ + "\u8001\u1400\u8001\u1434\u8001\u1447\u8001\u144a\u8001\u145f\u8001\u1461"+ + "\u8001\u1480\u8001\u14af\u8001\u14c4\u8001\u14c5\u8001\u14c7\u8001\u14c7"+ + "\u8001\u1580\u8001\u15ae\u8001\u15d8\u8001\u15db\u8001\u1600\u8001\u162f"+ + "\u8001\u1644\u8001\u1644\u8001\u1680\u8001\u16aa\u8001\u16b8\u8001\u16b8"+ + "\u8001\u1700\u8001\u171a\u8001\u1740\u8001\u1746\u8001\u1800\u8001\u182b"+ + "\u8001\u18a0\u8001\u18df\u8001\u18ff\u8001\u1906\u8001\u1909\u8001\u1909"+ + "\u8001\u190c\u8001\u1913\u8001\u1915\u8001\u1916\u8001\u1918\u8001\u192f"+ + "\u8001\u193f\u8001\u193f\u8001\u1941\u8001\u1941\u8001\u19a0\u8001\u19a7"+ + "\u8001\u19aa\u8001\u19d0\u8001\u19e1\u8001\u19e1\u8001\u19e3\u8001\u19e3"+ + "\u8001\u1a00\u8001\u1a00\u8001\u1a0b\u8001\u1a32\u8001\u1a3a\u8001\u1a3a"+ + "\u8001\u1a50\u8001\u1a50\u8001\u1a5c\u8001\u1a89\u8001\u1a9d\u8001\u1a9d"+ + "\u8001\u1ab0\u8001\u1af8\u8001\u1c00\u8001\u1c08\u8001\u1c0a\u8001\u1c2e"+ + "\u8001\u1c40\u8001\u1c40\u8001\u1c72\u8001\u1c8f\u8001\u1d00\u8001\u1d06"+ + "\u8001\u1d08\u8001\u1d09\u8001\u1d0b\u8001\u1d30\u8001\u1d46\u8001\u1d46"+ + "\u8001\u1d60\u8001\u1d65\u8001\u1d67\u8001\u1d68\u8001\u1d6a\u8001\u1d89"+ + "\u8001\u1d98\u8001\u1d98\u8001\u1ee0\u8001\u1ef2\u8001\u1fb0\u8001\u1fb0"+ + "\u8001\u2000\u8001\u2399\u8001\u2400\u8001\u246e\u8001\u2480\u8001\u2543"+ + "\u8001\u2f90\u8001\u2ff0\u8001\u3000\u8001\u342e\u8001\u4400\u8001\u4646"+ + "\u8001\u6800\u8001\u6a38\u8001\u6a40\u8001\u6a5e\u8001\u6a70\u8001\u6abe"+ + "\u8001\u6ad0\u8001\u6aed\u8001\u6b00\u8001\u6b2f\u8001\u6b40\u8001\u6b43"+ + "\u8001\u6b63\u8001\u6b77\u8001\u6b7d\u8001\u6b8f\u8001\u6e40\u8001\u6e7f"+ + "\u8001\u6f00\u8001\u6f4a\u8001\u6f50\u8001\u6f50\u8001\u6f93\u8001\u6f9f"+ + "\u8001\u6fe0\u8001\u6fe1\u8001\u6fe3\u8001\u6fe3\u8001\u7000\u8001\u87f7"+ + "\u8001\u8800\u8001\u8cd5\u8001\u8d00\u8001\u8d08\u8001\uaff0\u8001\uaff3"+ + "\u8001\uaff5\u8001\uaffb\u8001\uaffd\u8001\uaffe\u8001\ub000\u8001\ub122"+ + "\u8001\ub150\u8001\ub152\u8001\ub164\u8001\ub167\u8001\ub170\u8001\ub2fb"+ + "\u8001\ubc00\u8001\ubc6a\u8001\ubc70\u8001\ubc7c\u8001\ubc80\u8001\ubc88"+ + "\u8001\ubc90\u8001\ubc99\u8001\ud400\u8001\ud454\u8001\ud456\u8001\ud49c"+ + "\u8001\ud49e\u8001\ud49f\u8001\ud4a2\u8001\ud4a2\u8001\ud4a5\u8001\ud4a6"+ + "\u8001\ud4a9\u8001\ud4ac\u8001\ud4ae\u8001\ud4b9\u8001\ud4bb\u8001\ud4bb"+ + "\u8001\ud4bd\u8001\ud4c3\u8001\ud4c5\u8001\ud505\u8001\ud507\u8001\ud50a"+ + "\u8001\ud50d\u8001\ud514\u8001\ud516\u8001\ud51c\u8001\ud51e\u8001\ud539"+ + "\u8001\ud53b\u8001\ud53e\u8001\ud540\u8001\ud544\u8001\ud546\u8001\ud546"+ + "\u8001\ud54a\u8001\ud550\u8001\ud552\u8001\ud6a5\u8001\ud6a8\u8001\ud6c0"+ + "\u8001\ud6c2\u8001\ud6da\u8001\ud6dc\u8001\ud6fa\u8001\ud6fc\u8001\ud714"+ + "\u8001\ud716\u8001\ud734\u8001\ud736\u8001\ud74e\u8001\ud750\u8001\ud76e"+ + "\u8001\ud770\u8001\ud788\u8001\ud78a\u8001\ud7a8\u8001\ud7aa\u8001\ud7c2"+ + "\u8001\ud7c4\u8001\ud7cb\u8001\udf00\u8001\udf1e\u8001\ue100\u8001\ue12c"+ + "\u8001\ue137\u8001\ue13d\u8001\ue14e\u8001\ue14e\u8001\ue290\u8001\ue2ad"+ + "\u8001\ue2c0\u8001\ue2eb\u8001\ue7e0\u8001\ue7e6\u8001\ue7e8\u8001\ue7eb"+ + "\u8001\ue7ed\u8001\ue7ee\u8001\ue7f0\u8001\ue7fe\u8001\ue800\u8001\ue8c4"+ + "\u8001\ue900\u8001\ue943\u8001\ue94b\u8001\ue94b\u8001\uee00\u8001\uee03"+ + "\u8001\uee05\u8001\uee1f\u8001\uee21\u8001\uee22\u8001\uee24\u8001\uee24"+ + "\u8001\uee27\u8001\uee27\u8001\uee29\u8001\uee32\u8001\uee34\u8001\uee37"+ + "\u8001\uee39\u8001\uee39\u8001\uee3b\u8001\uee3b\u8001\uee42\u8001\uee42"+ + "\u8001\uee47\u8001\uee47\u8001\uee49\u8001\uee49\u8001\uee4b\u8001\uee4b"+ + "\u8001\uee4d\u8001\uee4f\u8001\uee51\u8001\uee52\u8001\uee54\u8001\uee54"+ + "\u8001\uee57\u8001\uee57\u8001\uee59\u8001\uee59\u8001\uee5b\u8001\uee5b"+ + "\u8001\uee5d\u8001\uee5d\u8001\uee5f\u8001\uee5f\u8001\uee61\u8001\uee62"+ + "\u8001\uee64\u8001\uee64\u8001\uee67\u8001\uee6a\u8001\uee6c\u8001\uee72"+ + "\u8001\uee74\u8001\uee77\u8001\uee79\u8001\uee7c\u8001\uee7e\u8001\uee7e"+ + "\u8001\uee80\u8001\uee89\u8001\uee8b\u8001\uee9b\u8001\ueea1\u8001\ueea3"+ + "\u8001\ueea5\u8001\ueea9\u8001\ueeab\u8001\ueebb\u8002\u0000\u8002\ua6df"+ + "\u8002\ua700\u8002\ub738\u8002\ub740\u8002\ub81d\u8002\ub820\u8002\ucea1"+ + "\u8002\uceb0\u8002\uebe0\u8002\uf800\u8002\ufa1d\u8003\u0000\u8003\u134a"+ + "\u02f4\u000009AZ__az\u00aa\u00aa\u00b5\u00b5\u00b7\u00b7\u00ba\u00ba\u00c0"+ + "\u00d6\u00d8\u00f6\u00f8\u02c1\u02c6\u02d1\u02e0\u02e4\u02ec\u02ec\u02ee"+ + "\u02ee\u0300\u0374\u0376\u0377\u037a\u037d\u037f\u037f\u0386\u038a\u038c"+ + "\u038c\u038e\u03a1\u03a3\u03f5\u03f7\u0481\u0483\u0487\u048a\u052f\u0531"+ + "\u0556\u0559\u0559\u0560\u0588\u0591\u05bd\u05bf\u05bf\u05c1\u05c2\u05c4"+ + "\u05c5\u05c7\u05c7\u05d0\u05ea\u05ef\u05f2\u0610\u061a\u0620\u0669\u066e"+ + "\u06d3\u06d5\u06dc\u06df\u06e8\u06ea\u06fc\u06ff\u06ff\u0710\u074a\u074d"+ + "\u07b1\u07c0\u07f5\u07fa\u07fa\u07fd\u07fd\u0800\u082d\u0840\u085b\u0860"+ + "\u086a\u0870\u0887\u0889\u088e\u0898\u08e1\u08e3\u0963\u0966\u096f\u0971"+ + "\u0983\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6"+ + "\u09b9\u09bc\u09c4\u09c7\u09c8\u09cb\u09ce\u09d7\u09d7\u09dc\u09dd\u09df"+ + "\u09e3\u09e6\u09f1\u09fc\u09fc\u09fe\u09fe\u0a01\u0a03\u0a05\u0a0a\u0a0f"+ + "\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c"+ + "\u0a3c\u0a3e\u0a42\u0a47\u0a48\u0a4b\u0a4d\u0a51\u0a51\u0a59\u0a5c\u0a5e"+ + "\u0a5e\u0a66\u0a75\u0a81\u0a83\u0a85\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa"+ + "\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abc\u0ac5\u0ac7\u0ac9\u0acb\u0acd\u0ad0"+ + "\u0ad0\u0ae0\u0ae3\u0ae6\u0aef\u0af9\u0aff\u0b01\u0b03\u0b05\u0b0c\u0b0f"+ + "\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b35\u0b39\u0b3c\u0b44\u0b47"+ + "\u0b48\u0b4b\u0b4d\u0b55\u0b57\u0b5c\u0b5d\u0b5f\u0b63\u0b66\u0b6f\u0b71"+ + "\u0b71\u0b82\u0b83\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c"+ + "\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb9\u0bbe\u0bc2\u0bc6"+ + "\u0bc8\u0bca\u0bcd\u0bd0\u0bd0\u0bd7\u0bd7\u0be6\u0bef\u0c00\u0c0c\u0c0e"+ + "\u0c10\u0c12\u0c28\u0c2a\u0c39\u0c3c\u0c44\u0c46\u0c48\u0c4a\u0c4d\u0c55"+ + "\u0c56\u0c58\u0c5a\u0c5d\u0c5d\u0c60\u0c63\u0c66\u0c6f\u0c80\u0c83\u0c85"+ + "\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbc\u0cc4\u0cc6"+ + "\u0cc8\u0cca\u0ccd\u0cd5\u0cd6\u0cdd\u0cde\u0ce0\u0ce3\u0ce6\u0cef\u0cf1"+ + "\u0cf2\u0d00\u0d0c\u0d0e\u0d10\u0d12\u0d44\u0d46\u0d48\u0d4a\u0d4e\u0d54"+ + "\u0d57\u0d5f\u0d63\u0d66\u0d6f\u0d7a\u0d7f\u0d81\u0d83\u0d85\u0d96\u0d9a"+ + "\u0db1\u0db3\u0dbb\u0dbd\u0dbd\u0dc0\u0dc6\u0dca\u0dca\u0dcf\u0dd4\u0dd6"+ + "\u0dd6\u0dd8\u0ddf\u0de6\u0def\u0df2\u0df3\u0e01\u0e3a\u0e40\u0e4e\u0e50"+ + "\u0e59\u0e81\u0e82\u0e84\u0e84\u0e86\u0e8a\u0e8c\u0ea3\u0ea5\u0ea5\u0ea7"+ + "\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0ec8\u0ecd\u0ed0\u0ed9\u0edc\u0edf\u0f00"+ + "\u0f00\u0f18\u0f19\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39\u0f39\u0f3e"+ + "\u0f47\u0f49\u0f6c\u0f71\u0f84\u0f86\u0f97\u0f99\u0fbc\u0fc6\u0fc6\u1000"+ + "\u1049\u1050\u109d\u10a0\u10c5\u10c7\u10c7\u10cd\u10cd\u10d0\u10fa\u10fc"+ + "\u1248\u124a\u124d\u1250\u1256\u1258\u1258\u125a\u125d\u1260\u1288\u128a"+ + "\u128d\u1290\u12b0\u12b2\u12b5\u12b8\u12be\u12c0\u12c0\u12c2\u12c5\u12c8"+ + "\u12d6\u12d8\u1310\u1312\u1315\u1318\u135a\u135d\u135f\u1369\u1371\u1380"+ + "\u138f\u13a0\u13f5\u13f8\u13fd\u1401\u166c\u166f\u167f\u1681\u169a\u16a0"+ + "\u16ea\u16ee\u16f8\u1700\u1715\u171f\u1734\u1740\u1753\u1760\u176c\u176e"+ + "\u1770\u1772\u1773\u1780\u17d3\u17d7\u17d7\u17dc\u17dd\u17e0\u17e9\u180b"+ + "\u180d\u180f\u1819\u1820\u1878\u1880\u18aa\u18b0\u18f5\u1900\u191e\u1920"+ + "\u192b\u1930\u193b\u1946\u196d\u1970\u1974\u1980\u19ab\u19b0\u19c9\u19d0"+ + "\u19da\u1a00\u1a1b\u1a20\u1a5e\u1a60\u1a7c\u1a7f\u1a89\u1a90\u1a99\u1aa7"+ + "\u1aa7\u1ab0\u1abd\u1abf\u1ace\u1b00\u1b4c\u1b50\u1b59\u1b6b\u1b73\u1b80"+ + "\u1bf3\u1c00\u1c37\u1c40\u1c49\u1c4d\u1c7d\u1c80\u1c88\u1c90\u1cba\u1cbd"+ + "\u1cbf\u1cd0\u1cd2\u1cd4\u1cfa\u1d00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48"+ + "\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80"+ + "\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6"+ + "\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u203f\u2040\u2054\u2054\u2071"+ + "\u2071\u207f\u207f\u2090\u209c\u20d0\u20dc\u20e1\u20e1\u20e5\u20f0\u2102"+ + "\u2102\u2107\u2107\u210a\u2113\u2115\u2115\u2118\u211d\u2124\u2124\u2126"+ + "\u2126\u2128\u2128\u212a\u2139\u213c\u213f\u2145\u2149\u214e\u214e\u2160"+ + "\u2188\u2c00\u2ce4\u2ceb\u2cf3\u2d00\u2d25\u2d27\u2d27\u2d2d\u2d2d\u2d30"+ + "\u2d67\u2d6f\u2d6f\u2d7f\u2d96\u2da0\u2da6\u2da8\u2dae\u2db0\u2db6\u2db8"+ + "\u2dbe\u2dc0\u2dc6\u2dc8\u2dce\u2dd0\u2dd6\u2dd8\u2dde\u2de0\u2dff\u3005"+ + "\u3007\u3021\u302f\u3031\u3035\u3038\u303c\u3041\u3096\u3099\u309f\u30a1"+ + "\u30fa\u30fc\u30ff\u3105\u312f\u3131\u318e\u31a0\u31bf\u31f0\u31ff\u3400"+ + "\u4dbf\u4e00\u8000\ua48c\u8000\ua4d0\u8000\ua4fd\u8000\ua500\u8000\ua60c"+ + "\u8000\ua610\u8000\ua62b\u8000\ua640\u8000\ua66f\u8000\ua674\u8000\ua67d"+ + "\u8000\ua67f\u8000\ua6f1\u8000\ua717\u8000\ua71f\u8000\ua722\u8000\ua788"+ + "\u8000\ua78b\u8000\ua7ca\u8000\ua7d0\u8000\ua7d1\u8000\ua7d3\u8000\ua7d3"+ + "\u8000\ua7d5\u8000\ua7d9\u8000\ua7f2\u8000\ua827\u8000\ua82c\u8000\ua82c"+ + "\u8000\ua840\u8000\ua873\u8000\ua880\u8000\ua8c5\u8000\ua8d0\u8000\ua8d9"+ + "\u8000\ua8e0\u8000\ua8f7\u8000\ua8fb\u8000\ua8fb\u8000\ua8fd\u8000\ua92d"+ + "\u8000\ua930\u8000\ua953\u8000\ua960\u8000\ua97c\u8000\ua980\u8000\ua9c0"+ + "\u8000\ua9cf\u8000\ua9d9\u8000\ua9e0\u8000\ua9fe\u8000\uaa00\u8000\uaa36"+ + "\u8000\uaa40\u8000\uaa4d\u8000\uaa50\u8000\uaa59\u8000\uaa60\u8000\uaa76"+ + "\u8000\uaa7a\u8000\uaac2\u8000\uaadb\u8000\uaadd\u8000\uaae0\u8000\uaaef"+ + "\u8000\uaaf2\u8000\uaaf6\u8000\uab01\u8000\uab06\u8000\uab09\u8000\uab0e"+ + "\u8000\uab11\u8000\uab16\u8000\uab20\u8000\uab26\u8000\uab28\u8000\uab2e"+ + "\u8000\uab30\u8000\uab5a\u8000\uab5c\u8000\uab69\u8000\uab70\u8000\uabea"+ + "\u8000\uabec\u8000\uabed\u8000\uabf0\u8000\uabf9\u8000\uac00\u8000\ud7a3"+ + "\u8000\ud7b0\u8000\ud7c6\u8000\ud7cb\u8000\ud7fb\u8000\uf900\u8000\ufa6d"+ + "\u8000\ufa70\u8000\ufad9\u8000\ufb00\u8000\ufb06\u8000\ufb13\u8000\ufb17"+ + "\u8000\ufb1d\u8000\ufb28\u8000\ufb2a\u8000\ufb36\u8000\ufb38\u8000\ufb3c"+ + "\u8000\ufb3e\u8000\ufb3e\u8000\ufb40\u8000\ufb41\u8000\ufb43\u8000\ufb44"+ + "\u8000\ufb46\u8000\ufbb1\u8000\ufbd3\u8000\ufd3d\u8000\ufd50\u8000\ufd8f"+ + "\u8000\ufd92\u8000\ufdc7\u8000\ufdf0\u8000\ufdfb\u8000\ufe00\u8000\ufe0f"+ + "\u8000\ufe20\u8000\ufe2f\u8000\ufe33\u8000\ufe34\u8000\ufe4d\u8000\ufe4f"+ + "\u8000\ufe70\u8000\ufe74\u8000\ufe76\u8000\ufefc\u8000\uff10\u8000\uff19"+ + "\u8000\uff21\u8000\uff3a\u8000\uff3f\u8000\uff3f\u8000\uff41\u8000\uff5a"+ + "\u8000\uff66\u8000\uffbe\u8000\uffc2\u8000\uffc7\u8000\uffca\u8000\uffcf"+ + "\u8000\uffd2\u8000\uffd7\u8000\uffda\u8000\uffdc\u8001\u0000\u8001\u000b"+ + "\u8001\r\u8001&\u8001(\u8001:\u8001<\u8001=\u8001?\u8001M\u8001P\u8001"+ + "]\u8001\u0080\u8001\u00fa\u8001\u0140\u8001\u0174\u8001\u01fd\u8001\u01fd"+ + "\u8001\u0280\u8001\u029c\u8001\u02a0\u8001\u02d0\u8001\u02e0\u8001\u02e0"+ + "\u8001\u0300\u8001\u031f\u8001\u032d\u8001\u034a\u8001\u0350\u8001\u037a"+ + "\u8001\u0380\u8001\u039d\u8001\u03a0\u8001\u03c3\u8001\u03c8\u8001\u03cf"+ + "\u8001\u03d1\u8001\u03d5\u8001\u0400\u8001\u049d\u8001\u04a0\u8001\u04a9"+ + "\u8001\u04b0\u8001\u04d3\u8001\u04d8\u8001\u04fb\u8001\u0500\u8001\u0527"+ + "\u8001\u0530\u8001\u0563\u8001\u0570\u8001\u057a\u8001\u057c\u8001\u058a"+ + "\u8001\u058c\u8001\u0592\u8001\u0594\u8001\u0595\u8001\u0597\u8001\u05a1"+ + "\u8001\u05a3\u8001\u05b1\u8001\u05b3\u8001\u05b9\u8001\u05bb\u8001\u05bc"+ + "\u8001\u0600\u8001\u0736\u8001\u0740\u8001\u0755\u8001\u0760\u8001\u0767"+ + "\u8001\u0780\u8001\u0785\u8001\u0787\u8001\u07b0\u8001\u07b2\u8001\u07ba"+ + "\u8001\u0800\u8001\u0805\u8001\u0808\u8001\u0808\u8001\u080a\u8001\u0835"+ + "\u8001\u0837\u8001\u0838\u8001\u083c\u8001\u083c\u8001\u083f\u8001\u0855"+ + "\u8001\u0860\u8001\u0876\u8001\u0880\u8001\u089e\u8001\u08e0\u8001\u08f2"+ + "\u8001\u08f4\u8001\u08f5\u8001\u0900\u8001\u0915\u8001\u0920\u8001\u0939"+ + "\u8001\u0980\u8001\u09b7\u8001\u09be\u8001\u09bf\u8001\u0a00\u8001\u0a03"+ + "\u8001\u0a05\u8001\u0a06\u8001\u0a0c\u8001\u0a13\u8001\u0a15\u8001\u0a17"+ + "\u8001\u0a19\u8001\u0a35\u8001\u0a38\u8001\u0a3a\u8001\u0a3f\u8001\u0a3f"+ + "\u8001\u0a60\u8001\u0a7c\u8001\u0a80\u8001\u0a9c\u8001\u0ac0\u8001\u0ac7"+ + "\u8001\u0ac9\u8001\u0ae6\u8001\u0b00\u8001\u0b35\u8001\u0b40\u8001\u0b55"+ + "\u8001\u0b60\u8001\u0b72\u8001\u0b80\u8001\u0b91\u8001\u0c00\u8001\u0c48"+ + "\u8001\u0c80\u8001\u0cb2\u8001\u0cc0\u8001\u0cf2\u8001\u0d00\u8001\u0d27"+ + "\u8001\u0d30\u8001\u0d39\u8001\u0e80\u8001\u0ea9\u8001\u0eab\u8001\u0eac"+ + "\u8001\u0eb0\u8001\u0eb1\u8001\u0f00\u8001\u0f1c\u8001\u0f27\u8001\u0f27"+ + "\u8001\u0f30\u8001\u0f50\u8001\u0f70\u8001\u0f85\u8001\u0fb0\u8001\u0fc4"+ + "\u8001\u0fe0\u8001\u0ff6\u8001\u1000\u8001\u1046\u8001\u1066\u8001\u1075"+ + "\u8001\u107f\u8001\u10ba\u8001\u10c2\u8001\u10c2\u8001\u10d0\u8001\u10e8"+ + "\u8001\u10f0\u8001\u10f9\u8001\u1100\u8001\u1134\u8001\u1136\u8001\u113f"+ + "\u8001\u1144\u8001\u1147\u8001\u1150\u8001\u1173\u8001\u1176\u8001\u1176"+ + "\u8001\u1180\u8001\u11c4\u8001\u11c9\u8001\u11cc\u8001\u11ce\u8001\u11da"+ + "\u8001\u11dc\u8001\u11dc\u8001\u1200\u8001\u1211\u8001\u1213\u8001\u1237"+ + "\u8001\u123e\u8001\u123e\u8001\u1280\u8001\u1286\u8001\u1288\u8001\u1288"+ + "\u8001\u128a\u8001\u128d\u8001\u128f\u8001\u129d\u8001\u129f\u8001\u12a8"+ + "\u8001\u12b0\u8001\u12ea\u8001\u12f0\u8001\u12f9\u8001\u1300\u8001\u1303"+ + "\u8001\u1305\u8001\u130c\u8001\u130f\u8001\u1310\u8001\u1313\u8001\u1328"+ + "\u8001\u132a\u8001\u1330\u8001\u1332\u8001\u1333\u8001\u1335\u8001\u1339"+ + "\u8001\u133b\u8001\u1344\u8001\u1347\u8001\u1348\u8001\u134b\u8001\u134d"+ + "\u8001\u1350\u8001\u1350\u8001\u1357\u8001\u1357\u8001\u135d\u8001\u1363"+ + "\u8001\u1366\u8001\u136c\u8001\u1370\u8001\u1374\u8001\u1400\u8001\u144a"+ + "\u8001\u1450\u8001\u1459\u8001\u145e\u8001\u1461\u8001\u1480\u8001\u14c5"+ + "\u8001\u14c7\u8001\u14c7\u8001\u14d0\u8001\u14d9\u8001\u1580\u8001\u15b5"+ + "\u8001\u15b8\u8001\u15c0\u8001\u15d8\u8001\u15dd\u8001\u1600\u8001\u1640"+ + "\u8001\u1644\u8001\u1644\u8001\u1650\u8001\u1659\u8001\u1680\u8001\u16b8"+ + "\u8001\u16c0\u8001\u16c9\u8001\u1700\u8001\u171a\u8001\u171d\u8001\u172b"+ + "\u8001\u1730\u8001\u1739\u8001\u1740\u8001\u1746\u8001\u1800\u8001\u183a"+ + "\u8001\u18a0\u8001\u18e9\u8001\u18ff\u8001\u1906\u8001\u1909\u8001\u1909"+ + "\u8001\u190c\u8001\u1913\u8001\u1915\u8001\u1916\u8001\u1918\u8001\u1935"+ + "\u8001\u1937\u8001\u1938\u8001\u193b\u8001\u1943\u8001\u1950\u8001\u1959"+ + "\u8001\u19a0\u8001\u19a7\u8001\u19aa\u8001\u19d7\u8001\u19da\u8001\u19e1"+ + "\u8001\u19e3\u8001\u19e4\u8001\u1a00\u8001\u1a3e\u8001\u1a47\u8001\u1a47"+ + "\u8001\u1a50\u8001\u1a99\u8001\u1a9d\u8001\u1a9d\u8001\u1ab0\u8001\u1af8"+ + "\u8001\u1c00\u8001\u1c08\u8001\u1c0a\u8001\u1c36\u8001\u1c38\u8001\u1c40"+ + "\u8001\u1c50\u8001\u1c59\u8001\u1c72\u8001\u1c8f\u8001\u1c92\u8001\u1ca7"+ + "\u8001\u1ca9\u8001\u1cb6\u8001\u1d00\u8001\u1d06\u8001\u1d08\u8001\u1d09"+ + "\u8001\u1d0b\u8001\u1d36\u8001\u1d3a\u8001\u1d3a\u8001\u1d3c\u8001\u1d3d"+ + "\u8001\u1d3f\u8001\u1d47\u8001\u1d50\u8001\u1d59\u8001\u1d60\u8001\u1d65"+ + "\u8001\u1d67\u8001\u1d68\u8001\u1d6a\u8001\u1d8e\u8001\u1d90\u8001\u1d91"+ + "\u8001\u1d93\u8001\u1d98\u8001\u1da0\u8001\u1da9\u8001\u1ee0\u8001\u1ef6"+ + "\u8001\u1fb0\u8001\u1fb0\u8001\u2000\u8001\u2399\u8001\u2400\u8001\u246e"+ + "\u8001\u2480\u8001\u2543\u8001\u2f90\u8001\u2ff0\u8001\u3000\u8001\u342e"+ + "\u8001\u4400\u8001\u4646\u8001\u6800\u8001\u6a38\u8001\u6a40\u8001\u6a5e"+ + "\u8001\u6a60\u8001\u6a69\u8001\u6a70\u8001\u6abe\u8001\u6ac0\u8001\u6ac9"+ + "\u8001\u6ad0\u8001\u6aed\u8001\u6af0\u8001\u6af4\u8001\u6b00\u8001\u6b36"+ + "\u8001\u6b40\u8001\u6b43\u8001\u6b50\u8001\u6b59\u8001\u6b63\u8001\u6b77"+ + "\u8001\u6b7d\u8001\u6b8f\u8001\u6e40\u8001\u6e7f\u8001\u6f00\u8001\u6f4a"+ + "\u8001\u6f4f\u8001\u6f87\u8001\u6f8f\u8001\u6f9f\u8001\u6fe0\u8001\u6fe1"+ + "\u8001\u6fe3\u8001\u6fe4\u8001\u6ff0\u8001\u6ff1\u8001\u7000\u8001\u87f7"+ + "\u8001\u8800\u8001\u8cd5\u8001\u8d00\u8001\u8d08\u8001\uaff0\u8001\uaff3"+ + "\u8001\uaff5\u8001\uaffb\u8001\uaffd\u8001\uaffe\u8001\ub000\u8001\ub122"+ + "\u8001\ub150\u8001\ub152\u8001\ub164\u8001\ub167\u8001\ub170\u8001\ub2fb"+ + "\u8001\ubc00\u8001\ubc6a\u8001\ubc70\u8001\ubc7c\u8001\ubc80\u8001\ubc88"+ + "\u8001\ubc90\u8001\ubc99\u8001\ubc9d\u8001\ubc9e\u8001\ucf00\u8001\ucf2d"+ + "\u8001\ucf30\u8001\ucf46\u8001\ud165\u8001\ud169\u8001\ud16d\u8001\ud172"+ + "\u8001\ud17b\u8001\ud182\u8001\ud185\u8001\ud18b\u8001\ud1aa\u8001\ud1ad"+ + "\u8001\ud242\u8001\ud244\u8001\ud400\u8001\ud454\u8001\ud456\u8001\ud49c"+ + "\u8001\ud49e\u8001\ud49f\u8001\ud4a2\u8001\ud4a2\u8001\ud4a5\u8001\ud4a6"+ + "\u8001\ud4a9\u8001\ud4ac\u8001\ud4ae\u8001\ud4b9\u8001\ud4bb\u8001\ud4bb"+ + "\u8001\ud4bd\u8001\ud4c3\u8001\ud4c5\u8001\ud505\u8001\ud507\u8001\ud50a"+ + "\u8001\ud50d\u8001\ud514\u8001\ud516\u8001\ud51c\u8001\ud51e\u8001\ud539"+ + "\u8001\ud53b\u8001\ud53e\u8001\ud540\u8001\ud544\u8001\ud546\u8001\ud546"+ + "\u8001\ud54a\u8001\ud550\u8001\ud552\u8001\ud6a5\u8001\ud6a8\u8001\ud6c0"+ + "\u8001\ud6c2\u8001\ud6da\u8001\ud6dc\u8001\ud6fa\u8001\ud6fc\u8001\ud714"+ + "\u8001\ud716\u8001\ud734\u8001\ud736\u8001\ud74e\u8001\ud750\u8001\ud76e"+ + "\u8001\ud770\u8001\ud788\u8001\ud78a\u8001\ud7a8\u8001\ud7aa\u8001\ud7c2"+ + "\u8001\ud7c4\u8001\ud7cb\u8001\ud7ce\u8001\ud7ff\u8001\uda00\u8001\uda36"+ + "\u8001\uda3b\u8001\uda6c\u8001\uda75\u8001\uda75\u8001\uda84\u8001\uda84"+ + "\u8001\uda9b\u8001\uda9f\u8001\udaa1\u8001\udaaf\u8001\udf00\u8001\udf1e"+ + "\u8001\ue000\u8001\ue006\u8001\ue008\u8001\ue018\u8001\ue01b\u8001\ue021"+ + "\u8001\ue023\u8001\ue024\u8001\ue026\u8001\ue02a\u8001\ue100\u8001\ue12c"+ + "\u8001\ue130\u8001\ue13d\u8001\ue140\u8001\ue149\u8001\ue14e\u8001\ue14e"+ + "\u8001\ue290\u8001\ue2ae\u8001\ue2c0\u8001\ue2f9\u8001\ue7e0\u8001\ue7e6"+ + "\u8001\ue7e8\u8001\ue7eb\u8001\ue7ed\u8001\ue7ee\u8001\ue7f0\u8001\ue7fe"+ + "\u8001\ue800\u8001\ue8c4\u8001\ue8d0\u8001\ue8d6\u8001\ue900\u8001\ue94b"+ + "\u8001\ue950\u8001\ue959\u8001\uee00\u8001\uee03\u8001\uee05\u8001\uee1f"+ + "\u8001\uee21\u8001\uee22\u8001\uee24\u8001\uee24\u8001\uee27\u8001\uee27"+ + "\u8001\uee29\u8001\uee32\u8001\uee34\u8001\uee37\u8001\uee39\u8001\uee39"+ + "\u8001\uee3b\u8001\uee3b\u8001\uee42\u8001\uee42\u8001\uee47\u8001\uee47"+ + "\u8001\uee49\u8001\uee49\u8001\uee4b\u8001\uee4b\u8001\uee4d\u8001\uee4f"+ + "\u8001\uee51\u8001\uee52\u8001\uee54\u8001\uee54\u8001\uee57\u8001\uee57"+ + "\u8001\uee59\u8001\uee59\u8001\uee5b\u8001\uee5b\u8001\uee5d\u8001\uee5d"+ + "\u8001\uee5f\u8001\uee5f\u8001\uee61\u8001\uee62\u8001\uee64\u8001\uee64"+ + "\u8001\uee67\u8001\uee6a\u8001\uee6c\u8001\uee72\u8001\uee74\u8001\uee77"+ + "\u8001\uee79\u8001\uee7c\u8001\uee7e\u8001\uee7e\u8001\uee80\u8001\uee89"+ + "\u8001\uee8b\u8001\uee9b\u8001\ueea1\u8001\ueea3\u8001\ueea5\u8001\ueea9"+ + "\u8001\ueeab\u8001\ueebb\u8001\ufbf0\u8001\ufbf9\u8002\u0000\u8002\ua6df"+ + "\u8002\ua700\u8002\ub738\u8002\ub740\u8002\ub81d\u8002\ub820\u8002\ucea1"+ + "\u8002\uceb0\u8002\uebe0\u8002\uf800\u8002\ufa1d\u8003\u0000\u8003\u134a"+ + "\u800e\u0100\u800e\u01ef\u0003\u000009AFaf\u0001\u000009\u0001\u00000"+ + "7\u0001\u000001\b\u0000\u00a0\u00a0\u1680\u1680\u180e\u180e\u2000\u200a"+ + "\u2028\u2029\u202f\u202f\u205f\u205f\u3000\u3000\u0002\u0000\n\n\r\r\u0001"+ + "\u0000\u001d\u001d\u0001\u0000\u001c\u001c\u0001\u0000\r\r\u0015\u0000"+ + "$$\u00a2\u00a5\u058f\u058f\u060b\u060b\u07fe\u07ff\u09f2\u09f3\u09fb\u09fb"+ + "\u0af1\u0af1\u0bf9\u0bf9\u0e3f\u0e3f\u17db\u17db\u20a0\u20c0\u8000\ua838"+ + "\u8000\ua838\u8000\ufdfc\u8000\ufdfc\u8000\ufe69\u8000\ufe69\u8000\uff04"+ + "\u8000\uff04\u8000\uffe0\u8000\uffe1\u8000\uffe5\u8000\uffe6\u8001\u1fdd"+ + "\u8001\u1fe0\u8001\ue2ff\u8001\ue2ff\u8001\uecb0\u8001\uecb0\u0001\u0000"+ + " \u0006\u0000__\u203f\u2040\u2054\u2054\u8000\ufe33\u8000\ufe34\u8000"+ + "\ufe4d\u8000\ufe4f\u8000\uff3f\u8000\uff3f\u0001\u0000\t\t\u0001\u0000"+ + "\n\n\u0001\u0000\u000b\u000b\u0001\u0000\u001f\u001f\u0001\u0000\f\f\u0001"+ + "\u0000\u001e\u001e\u0e97\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0005"+ + "\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001"+ + "\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000"+ + "\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000\u0000"+ + "\u00007\u0001\u0000\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000;"+ + "\u0001\u0000\u0000\u0000\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001\u0000"+ + "\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000\u0000"+ + "\u0000E\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000\u0000U"+ + "\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000\u0000[\u0001\u0000"+ + "\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000"+ + "\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e"+ + "\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000"+ + "\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000"+ + "\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s"+ + "\u0001\u0000\u0000\u0000\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000"+ + "\u0000\u0000\u0000y\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000"+ + "\u0000}\u0001\u0000\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000"+ + "\u0081\u0001\u0000\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000"+ + "\u0085\u0001\u0000\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000"+ + "\u0089\u0001\u0000\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000"+ + "\u008d\u0001\u0000\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000"+ + "\u0091\u0001\u0000\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000"+ + "\u0095\u0001\u0000\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000"+ + "\u0099\u0001\u0000\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000"+ + "\u009d\u0001\u0000\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000"+ + "\u00a1\u0001\u0000\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000"+ + "\u00a5\u0001\u0000\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000"+ + "\u00a9\u0001\u0000\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000"+ + "\u00ad\u0001\u0000\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000"+ + "\u00b1\u0001\u0000\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000"+ + "\u00b5\u0001\u0000\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000"+ + "\u00b9\u0001\u0000\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000"+ + "\u00bd\u0001\u0000\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000"+ + "\u00c1\u0001\u0000\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000"+ + "\u00c5\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000"+ + "\u00c9\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000"+ + "\u00cd\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000"+ + "\u00d1\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000"+ + "\u00d5\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000"+ + "\u00d9\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000"+ + "\u00dd\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0000"+ + "\u00e1\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000\u0000"+ + "\u00e5\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000\u0000"+ + "\u00e9\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000\u0000"+ + "\u00ed\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000\u0000"+ + "\u00f1\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000\u0000"+ + "\u00f5\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000\u0000"+ + "\u00f9\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000\u0000"+ + "\u00fd\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0101\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000\u0000"+ + "\u0105\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000\u0000"+ + "\u0109\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000\u0000"+ + "\u010d\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000\u0000"+ + "\u0111\u0001\u0000\u0000\u0000\u0000\u0113\u0001\u0000\u0000\u0000\u0000"+ + "\u0115\u0001\u0000\u0000\u0000\u0000\u0117\u0001\u0000\u0000\u0000\u0000"+ + "\u0119\u0001\u0000\u0000\u0000\u0000\u011b\u0001\u0000\u0000\u0000\u0000"+ + "\u011d\u0001\u0000\u0000\u0000\u0000\u011f\u0001\u0000\u0000\u0000\u0000"+ + "\u0121\u0001\u0000\u0000\u0000\u0000\u0123\u0001\u0000\u0000\u0000\u0000"+ + "\u0125\u0001\u0000\u0000\u0000\u0000\u0127\u0001\u0000\u0000\u0000\u0000"+ + "\u0129\u0001\u0000\u0000\u0000\u0000\u012b\u0001\u0000\u0000\u0000\u0000"+ + "\u012d\u0001\u0000\u0000\u0000\u0000\u012f\u0001\u0000\u0000\u0000\u0000"+ + "\u0131\u0001\u0000\u0000\u0000\u0000\u0133\u0001\u0000\u0000\u0000\u0000"+ + "\u0135\u0001\u0000\u0000\u0000\u0000\u0137\u0001\u0000\u0000\u0000\u0000"+ + "\u0139\u0001\u0000\u0000\u0000\u0000\u013b\u0001\u0000\u0000\u0000\u0000"+ + "\u013d\u0001\u0000\u0000\u0000\u0000\u013f\u0001\u0000\u0000\u0000\u0000"+ + "\u0141\u0001\u0000\u0000\u0000\u0000\u0143\u0001\u0000\u0000\u0000\u0000"+ + "\u0145\u0001\u0000\u0000\u0000\u0000\u0147\u0001\u0000\u0000\u0000\u0000"+ + "\u0149\u0001\u0000\u0000\u0000\u0000\u014b\u0001\u0000\u0000\u0000\u0000"+ + "\u014d\u0001\u0000\u0000\u0000\u0000\u014f\u0001\u0000\u0000\u0000\u0000"+ + "\u0151\u0001\u0000\u0000\u0000\u0000\u0153\u0001\u0000\u0000\u0000\u0000"+ + "\u0155\u0001\u0000\u0000\u0000\u0000\u0157\u0001\u0000\u0000\u0000\u0000"+ + "\u0159\u0001\u0000\u0000\u0000\u0000\u015b\u0001\u0000\u0000\u0000\u0000"+ + "\u015d\u0001\u0000\u0000\u0000\u0000\u015f\u0001\u0000\u0000\u0000\u0000"+ + "\u0161\u0001\u0000\u0000\u0000\u0000\u0163\u0001\u0000\u0000\u0000\u0000"+ + "\u0165\u0001\u0000\u0000\u0000\u0000\u0167\u0001\u0000\u0000\u0000\u0000"+ + "\u0169\u0001\u0000\u0000\u0000\u0000\u016b\u0001\u0000\u0000\u0000\u0000"+ + "\u016d\u0001\u0000\u0000\u0000\u0000\u016f\u0001\u0000\u0000\u0000\u0000"+ + "\u0171\u0001\u0000\u0000\u0000\u0000\u0173\u0001\u0000\u0000\u0000\u0000"+ + "\u0175\u0001\u0000\u0000\u0000\u0000\u0177\u0001\u0000\u0000\u0000\u0000"+ + "\u0179\u0001\u0000\u0000\u0000\u0000\u017b\u0001\u0000\u0000\u0000\u0000"+ + "\u017d\u0001\u0000\u0000\u0000\u0000\u017f\u0001\u0000\u0000\u0000\u0000"+ + "\u0181\u0001\u0000\u0000\u0000\u0000\u0183\u0001\u0000\u0000\u0000\u0000"+ + "\u0185\u0001\u0000\u0000\u0000\u0000\u0187\u0001\u0000\u0000\u0000\u0000"+ + "\u0189\u0001\u0000\u0000\u0000\u0000\u018b\u0001\u0000\u0000\u0000\u0000"+ + "\u018d\u0001\u0000\u0000\u0000\u0000\u018f\u0001\u0000\u0000\u0000\u0000"+ + "\u0191\u0001\u0000\u0000\u0000\u0000\u0193\u0001\u0000\u0000\u0000\u0000"+ + "\u0195\u0001\u0000\u0000\u0000\u0000\u0197\u0001\u0000\u0000\u0000\u0000"+ + "\u0199\u0001\u0000\u0000\u0000\u0000\u019b\u0001\u0000\u0000\u0000\u0000"+ + "\u019d\u0001\u0000\u0000\u0000\u0000\u019f\u0001\u0000\u0000\u0000\u0000"+ + "\u01a1\u0001\u0000\u0000\u0000\u0000\u01a3\u0001\u0000\u0000\u0000\u0000"+ + "\u01a5\u0001\u0000\u0000\u0000\u0000\u01a7\u0001\u0000\u0000\u0000\u0000"+ + "\u01a9\u0001\u0000\u0000\u0000\u0000\u01ab\u0001\u0000\u0000\u0000\u0000"+ + "\u01ad\u0001\u0000\u0000\u0000\u0000\u01af\u0001\u0000\u0000\u0000\u0000"+ + "\u01b1\u0001\u0000\u0000\u0000\u0000\u01b3\u0001\u0000\u0000\u0000\u0000"+ + "\u01b5\u0001\u0000\u0000\u0000\u0000\u01b7\u0001\u0000\u0000\u0000\u0000"+ + "\u01b9\u0001\u0000\u0000\u0000\u0000\u01bb\u0001\u0000\u0000\u0000\u0000"+ + "\u01bd\u0001\u0000\u0000\u0000\u0000\u01bf\u0001\u0000\u0000\u0000\u0000"+ + "\u01c1\u0001\u0000\u0000\u0000\u0000\u01c3\u0001\u0000\u0000\u0000\u0000"+ + "\u01c5\u0001\u0000\u0000\u0000\u0000\u01c7\u0001\u0000\u0000\u0000\u0000"+ + "\u01c9\u0001\u0000\u0000\u0000\u0000\u01cb\u0001\u0000\u0000\u0000\u0000"+ + "\u01cd\u0001\u0000\u0000\u0000\u0000\u01cf\u0001\u0000\u0000\u0000\u0000"+ + "\u01d1\u0001\u0000\u0000\u0000\u0000\u01d3\u0001\u0000\u0000\u0000\u0000"+ + "\u01d5\u0001\u0000\u0000\u0000\u0000\u01d7\u0001\u0000\u0000\u0000\u0000"+ + "\u01d9\u0001\u0000\u0000\u0000\u0000\u01db\u0001\u0000\u0000\u0000\u0000"+ + "\u01dd\u0001\u0000\u0000\u0000\u0000\u01df\u0001\u0000\u0000\u0000\u0000"+ + "\u01e1\u0001\u0000\u0000\u0000\u0000\u01e3\u0001\u0000\u0000\u0000\u0000"+ + "\u01e5\u0001\u0000\u0000\u0000\u0000\u01e7\u0001\u0000\u0000\u0000\u0000"+ + "\u01e9\u0001\u0000\u0000\u0000\u0000\u01eb\u0001\u0000\u0000\u0000\u0000"+ + "\u01ed\u0001\u0000\u0000\u0000\u0000\u01ef\u0001\u0000\u0000\u0000\u0000"+ + "\u01f1\u0001\u0000\u0000\u0000\u0000\u01f3\u0001\u0000\u0000\u0000\u0000"+ + "\u01f5\u0001\u0000\u0000\u0000\u0000\u01f7\u0001\u0000\u0000\u0000\u0000"+ + "\u01f9\u0001\u0000\u0000\u0000\u0000\u01fb\u0001\u0000\u0000\u0000\u0000"+ + "\u01fd\u0001\u0000\u0000\u0000\u0000\u01ff\u0001\u0000\u0000\u0000\u0000"+ + "\u0201\u0001\u0000\u0000\u0000\u0000\u0203\u0001\u0000\u0000\u0000\u0000"+ + "\u0205\u0001\u0000\u0000\u0000\u0000\u0207\u0001\u0000\u0000\u0000\u0000"+ + "\u0209\u0001\u0000\u0000\u0000\u0000\u020b\u0001\u0000\u0000\u0000\u0000"+ + "\u020d\u0001\u0000\u0000\u0000\u0000\u020f\u0001\u0000\u0000\u0000\u0000"+ + "\u0211\u0001\u0000\u0000\u0000\u0000\u0213\u0001\u0000\u0000\u0000\u0000"+ + "\u0215\u0001\u0000\u0000\u0000\u0000\u0217\u0001\u0000\u0000\u0000\u0000"+ + "\u0219\u0001\u0000\u0000\u0000\u0000\u021b\u0001\u0000\u0000\u0000\u0000"+ + "\u021d\u0001\u0000\u0000\u0000\u0000\u021f\u0001\u0000\u0000\u0000\u0000"+ + "\u0221\u0001\u0000\u0000\u0000\u0000\u0223\u0001\u0000\u0000\u0000\u0000"+ + "\u0225\u0001\u0000\u0000\u0000\u0000\u0227\u0001\u0000\u0000\u0000\u0000"+ + "\u0229\u0001\u0000\u0000\u0000\u0000\u022b\u0001\u0000\u0000\u0000\u0000"+ + "\u022d\u0001\u0000\u0000\u0000\u0000\u022f\u0001\u0000\u0000\u0000\u0000"+ + "\u0231\u0001\u0000\u0000\u0000\u0000\u0233\u0001\u0000\u0000\u0000\u0000"+ + "\u0235\u0001\u0000\u0000\u0000\u0000\u0237\u0001\u0000\u0000\u0000\u0000"+ + "\u0239\u0001\u0000\u0000\u0000\u0000\u023b\u0001\u0000\u0000\u0000\u0000"+ + "\u023d\u0001\u0000\u0000\u0000\u0000\u023f\u0001\u0000\u0000\u0000\u0000"+ + "\u0241\u0001\u0000\u0000\u0000\u0000\u0243\u0001\u0000\u0000\u0000\u0000"+ + "\u0245\u0001\u0000\u0000\u0000\u0000\u0247\u0001\u0000\u0000\u0000\u0000"+ + "\u0249\u0001\u0000\u0000\u0000\u0000\u024b\u0001\u0000\u0000\u0000\u0000"+ + "\u024d\u0001\u0000\u0000\u0000\u0000\u024f\u0001\u0000\u0000\u0000\u0000"+ + "\u0251\u0001\u0000\u0000\u0000\u0000\u0253\u0001\u0000\u0000\u0000\u0000"+ + "\u0255\u0001\u0000\u0000\u0000\u0000\u0257\u0001\u0000\u0000\u0000\u0000"+ + "\u0259\u0001\u0000\u0000\u0000\u0000\u025b\u0001\u0000\u0000\u0000\u0000"+ + "\u025d\u0001\u0000\u0000\u0000\u0000\u025f\u0001\u0000\u0000\u0000\u0000"+ + "\u0261\u0001\u0000\u0000\u0000\u0000\u0263\u0001\u0000\u0000\u0000\u0000"+ + "\u0265\u0001\u0000\u0000\u0000\u0000\u0267\u0001\u0000\u0000\u0000\u0000"+ + "\u0269\u0001\u0000\u0000\u0000\u0000\u026b\u0001\u0000\u0000\u0000\u0000"+ + "\u026d\u0001\u0000\u0000\u0000\u0000\u026f\u0001\u0000\u0000\u0000\u0000"+ + "\u0271\u0001\u0000\u0000\u0000\u0000\u0273\u0001\u0000\u0000\u0000\u0000"+ + "\u0275\u0001\u0000\u0000\u0000\u0000\u0277\u0001\u0000\u0000\u0000\u0000"+ + "\u0279\u0001\u0000\u0000\u0000\u0000\u027b\u0001\u0000\u0000\u0000\u0000"+ + "\u027d\u0001\u0000\u0000\u0000\u0000\u027f\u0001\u0000\u0000\u0000\u0000"+ + "\u0281\u0001\u0000\u0000\u0000\u0000\u0283\u0001\u0000\u0000\u0000\u0000"+ + "\u0285\u0001\u0000\u0000\u0000\u0000\u0287\u0001\u0000\u0000\u0000\u0000"+ + "\u0289\u0001\u0000\u0000\u0000\u0000\u028b\u0001\u0000\u0000\u0000\u0000"+ + "\u028d\u0001\u0000\u0000\u0000\u0000\u028f\u0001\u0000\u0000\u0000\u0000"+ + "\u0291\u0001\u0000\u0000\u0000\u0000\u0293\u0001\u0000\u0000\u0000\u0000"+ + "\u0295\u0001\u0000\u0000\u0000\u0000\u0297\u0001\u0000\u0000\u0000\u0000"+ + "\u0299\u0001\u0000\u0000\u0000\u0000\u029b\u0001\u0000\u0000\u0000\u0000"+ + "\u029d\u0001\u0000\u0000\u0000\u0000\u029f\u0001\u0000\u0000\u0000\u0000"+ + "\u02a1\u0001\u0000\u0000\u0000\u0000\u02a3\u0001\u0000\u0000\u0000\u0000"+ + "\u02a5\u0001\u0000\u0000\u0000\u0000\u02a7\u0001\u0000\u0000\u0000\u0000"+ + "\u02a9\u0001\u0000\u0000\u0000\u0000\u02ab\u0001\u0000\u0000\u0000\u0000"+ + "\u02ad\u0001\u0000\u0000\u0000\u0000\u02af\u0001\u0000\u0000\u0000\u0000"+ + "\u02b1\u0001\u0000\u0000\u0000\u0000\u02b3\u0001\u0000\u0000\u0000\u0000"+ + "\u02b5\u0001\u0000\u0000\u0000\u0000\u02b7\u0001\u0000\u0000\u0000\u0000"+ + "\u02b9\u0001\u0000\u0000\u0000\u0000\u02bb\u0001\u0000\u0000\u0000\u0000"+ + "\u02bf\u0001\u0000\u0000\u0000\u0000\u02c5\u0001\u0000\u0000\u0000\u0000"+ + "\u02c7\u0001\u0000\u0000\u0000\u0000\u02d1\u0001\u0000\u0000\u0000\u0000"+ + "\u02d3\u0001\u0000\u0000\u0000\u0000\u02d5\u0001\u0000\u0000\u0000\u0000"+ + "\u02d7\u0001\u0000\u0000\u0000\u0000\u02d9\u0001\u0000\u0000\u0000\u0000"+ + "\u02db\u0001\u0000\u0000\u0000\u0000\u02dd\u0001\u0000\u0000\u0000\u0000"+ + "\u02df\u0001\u0000\u0000\u0000\u0000\u02e1\u0001\u0000\u0000\u0000\u0000"+ + "\u02e3\u0001\u0000\u0000\u0000\u0000\u02e5\u0001\u0000\u0000\u0000\u0000"+ + "\u02e7\u0001\u0000\u0000\u0000\u0000\u02e9\u0001\u0000\u0000\u0000\u0000"+ + "\u02eb\u0001\u0000\u0000\u0000\u0000\u02ed\u0001\u0000\u0000\u0000\u0000"+ + "\u02ef\u0001\u0000\u0000\u0000\u0000\u02f1\u0001\u0000\u0000\u0000\u0000"+ + "\u02f3\u0001\u0000\u0000\u0000\u0000\u02f5\u0001\u0000\u0000\u0000\u0000"+ + "\u02f7\u0001\u0000\u0000\u0000\u0000\u02f9\u0001\u0000\u0000\u0000\u0000"+ + "\u02fb\u0001\u0000\u0000\u0000\u0000\u02fd\u0001\u0000\u0000\u0000\u0000"+ + "\u02ff\u0001\u0000\u0000\u0000\u0000\u0301\u0001\u0000\u0000\u0000\u0000"+ + "\u0303\u0001\u0000\u0000\u0000\u0000\u0305\u0001\u0000\u0000\u0000\u0000"+ + "\u0307\u0001\u0000\u0000\u0000\u0000\u0309\u0001\u0000\u0000\u0000\u0000"+ + "\u030b\u0001\u0000\u0000\u0000\u0000\u030d\u0001\u0000\u0000\u0000\u0000"+ + "\u030f\u0001\u0000\u0000\u0000\u0000\u0311\u0001\u0000\u0000\u0000\u0000"+ + "\u0313\u0001\u0000\u0000\u0000\u0000\u0315\u0001\u0000\u0000\u0000\u0000"+ + "\u0317\u0001\u0000\u0000\u0000\u0000\u0319\u0001\u0000\u0000\u0000\u0000"+ + "\u031b\u0001\u0000\u0000\u0000\u0000\u031d\u0001\u0000\u0000\u0000\u0000"+ + "\u031f\u0001\u0000\u0000\u0000\u0000\u0321\u0001\u0000\u0000\u0000\u0000"+ + "\u0323\u0001\u0000\u0000\u0000\u0000\u0325\u0001\u0000\u0000\u0000\u0000"+ + "\u0327\u0001\u0000\u0000\u0000\u0000\u0329\u0001\u0000\u0000\u0000\u0000"+ + "\u032b\u0001\u0000\u0000\u0000\u0000\u032d\u0001\u0000\u0000\u0000\u0000"+ + "\u032f\u0001\u0000\u0000\u0000\u0000\u0331\u0001\u0000\u0000\u0000\u0000"+ + "\u0333\u0001\u0000\u0000\u0000\u0000\u0335\u0001\u0000\u0000\u0000\u0000"+ + "\u0337\u0001\u0000\u0000\u0000\u0000\u0339\u0001\u0000\u0000\u0000\u0000"+ + "\u033b\u0001\u0000\u0000\u0000\u0000\u033d\u0001\u0000\u0000\u0000\u0000"+ + "\u033f\u0001\u0000\u0000\u0000\u0000\u0341\u0001\u0000\u0000\u0000\u0000"+ + "\u0343\u0001\u0000\u0000\u0000\u0000\u0345\u0001\u0000\u0000\u0000\u0000"+ + "\u034f\u0001\u0000\u0000\u0000\u0000\u0351\u0001\u0000\u0000\u0000\u0000"+ + "\u0353\u0001\u0000\u0000\u0000\u0000\u0355\u0001\u0000\u0000\u0000\u0000"+ + "\u0357\u0001\u0000\u0000\u0000\u0001\u0379\u0001\u0000\u0000\u0000\u0003"+ + "\u037b\u0001\u0000\u0000\u0000\u0005\u038d\u0001\u0000\u0000\u0000\u0007"+ + "\u0390\u0001\u0000\u0000\u0000\t\u0395\u0001\u0000\u0000\u0000\u000b\u039a"+ + "\u0001\u0000\u0000\u0000\r\u039e\u0001\u0000\u0000\u0000\u000f\u03a0\u0001"+ + "\u0000\u0000\u0000\u0011\u03a9\u0001\u0000\u0000\u0000\u0013\u03b2\u0001"+ + "\u0000\u0000\u0000\u0015\u03bd\u0001\u0000\u0000\u0000\u0017\u03c3\u0001"+ + "\u0000\u0000\u0000\u0019\u03c9\u0001\u0000\u0000\u0000\u001b\u03d8\u0001"+ + "\u0000\u0000\u0000\u001d\u03da\u0001\u0000\u0000\u0000\u001f\u03dd\u0001"+ + "\u0000\u0000\u0000!\u03e0\u0001\u0000\u0000\u0000#\u03e3\u0001\u0000\u0000"+ + "\u0000%\u03e6\u0001\u0000\u0000\u0000\'\u03e9\u0001\u0000\u0000\u0000"+ + ")\u03ec\u0001\u0000\u0000\u0000+\u03ef\u0001\u0000\u0000\u0000-\u03f2"+ + "\u0001\u0000\u0000\u0000/\u03f5\u0001\u0000\u0000\u00001\u03fc\u0001\u0000"+ + "\u0000\u00003\u0405\u0001\u0000\u0000\u00005\u0422\u0001\u0000\u0000\u0000"+ + "7\u0425\u0001\u0000\u0000\u00009\u0427\u0001\u0000\u0000\u0000;\u042a"+ + "\u0001\u0000\u0000\u0000=\u042d\u0001\u0000\u0000\u0000?\u042f\u0001\u0000"+ + "\u0000\u0000A\u0432\u0001\u0000\u0000\u0000C\u0435\u0001\u0000\u0000\u0000"+ + "E\u0438\u0001\u0000\u0000\u0000G\u0442\u0001\u0000\u0000\u0000I\u0444"+ + "\u0001\u0000\u0000\u0000K\u044a\u0001\u0000\u0000\u0000M\u044c\u0001\u0000"+ + "\u0000\u0000O\u0456\u0001\u0000\u0000\u0000Q\u045a\u0001\u0000\u0000\u0000"+ + "S\u045e\u0001\u0000\u0000\u0000U\u0469\u0001\u0000\u0000\u0000W\u0474"+ + "\u0001\u0000\u0000\u0000Y\u047f\u0001\u0000\u0000\u0000[\u0481\u0001\u0000"+ + "\u0000\u0000]\u0485\u0001\u0000\u0000\u0000_\u048a\u0001\u0000\u0000\u0000"+ + "a\u048e\u0001\u0000\u0000\u0000c\u049c\u0001\u0000\u0000\u0000e\u04a0"+ + "\u0001\u0000\u0000\u0000g\u04a4\u0001\u0000\u0000\u0000i\u04aa\u0001\u0000"+ + "\u0000\u0000k\u04ad\u0001\u0000\u0000\u0000m\u04b1\u0001\u0000\u0000\u0000"+ + "o\u04bb\u0001\u0000\u0000\u0000q\u04c0\u0001\u0000\u0000\u0000s\u04c3"+ + "\u0001\u0000\u0000\u0000u\u04c8\u0001\u0000\u0000\u0000w\u04cc\u0001\u0000"+ + "\u0000\u0000y\u04d0\u0001\u0000\u0000\u0000{\u04d7\u0001\u0000\u0000\u0000"+ + "}\u04de\u0001\u0000\u0000\u0000\u007f\u04e3\u0001\u0000\u0000\u0000\u0081"+ + "\u04eb\u0001\u0000\u0000\u0000\u0083\u04f0\u0001\u0000\u0000\u0000\u0085"+ + "\u04f6\u0001\u0000\u0000\u0000\u0087\u04f9\u0001\u0000\u0000\u0000\u0089"+ + "\u0505\u0001\u0000\u0000\u0000\u008b\u050b\u0001\u0000\u0000\u0000\u008d"+ + "\u0510\u0001\u0000\u0000\u0000\u008f\u051c\u0001\u0000\u0000\u0000\u0091"+ + "\u0521\u0001\u0000\u0000\u0000\u0093\u0526\u0001\u0000\u0000\u0000\u0095"+ + "\u052b\u0001\u0000\u0000\u0000\u0097\u0533\u0001\u0000\u0000\u0000\u0099"+ + "\u0538\u0001\u0000\u0000\u0000\u009b\u0544\u0001\u0000\u0000\u0000\u009d"+ + "\u0555\u0001\u0000\u0000\u0000\u009f\u0565\u0001\u0000\u0000\u0000\u00a1"+ + "\u056b\u0001\u0000\u0000\u0000\u00a3\u0574\u0001\u0000\u0000\u0000\u00a5"+ + "\u0581\u0001\u0000\u0000\u0000\u00a7\u0588\u0001\u0000\u0000\u0000\u00a9"+ + "\u058d\u0001\u0000\u0000\u0000\u00ab\u0591\u0001\u0000\u0000\u0000\u00ad"+ + "\u0596\u0001\u0000\u0000\u0000\u00af\u059a\u0001\u0000\u0000\u0000\u00b1"+ + "\u05a0\u0001\u0000\u0000\u0000\u00b3\u05a7\u0001\u0000\u0000\u0000\u00b5"+ + "\u05b4\u0001\u0000\u0000\u0000\u00b7\u05c2\u0001\u0000\u0000\u0000\u00b9"+ + "\u05d9\u0001\u0000\u0000\u0000\u00bb\u05e8\u0001\u0000\u0000\u0000\u00bd"+ + "\u05f5\u0001\u0000\u0000\u0000\u00bf\u0607\u0001\u0000\u0000\u0000\u00c1"+ + "\u060c\u0001\u0000\u0000\u0000\u00c3\u0615\u0001\u0000\u0000\u0000\u00c5"+ + "\u0619\u0001\u0000\u0000\u0000\u00c7\u061d\u0001\u0000\u0000\u0000\u00c9"+ + "\u0625\u0001\u0000\u0000\u0000\u00cb\u062d\u0001\u0000\u0000\u0000\u00cd"+ + "\u0634\u0001\u0000\u0000\u0000\u00cf\u0639\u0001\u0000\u0000\u0000\u00d1"+ + "\u0644\u0001\u0000\u0000\u0000\u00d3\u064b\u0001\u0000\u0000\u0000\u00d5"+ + "\u0654\u0001\u0000\u0000\u0000\u00d7\u065b\u0001\u0000\u0000\u0000\u00d9"+ + "\u0660\u0001\u0000\u0000\u0000\u00db\u0669\u0001\u0000\u0000\u0000\u00dd"+ + "\u067a\u0001\u0000\u0000\u0000\u00df\u0685\u0001\u0000\u0000\u0000\u00e1"+ + "\u068a\u0001\u0000\u0000\u0000\u00e3\u068e\u0001\u0000\u0000\u0000\u00e5"+ + "\u0695\u0001\u0000\u0000\u0000\u00e7\u069c\u0001\u0000\u0000\u0000\u00e9"+ + "\u06a0\u0001\u0000\u0000\u0000\u00eb\u06a7\u0001\u0000\u0000\u0000\u00ed"+ + "\u06ae\u0001\u0000\u0000\u0000\u00ef\u06b4\u0001\u0000\u0000\u0000\u00f1"+ + "\u06bc\u0001\u0000\u0000\u0000\u00f3\u06c4\u0001\u0000\u0000\u0000\u00f5"+ + "\u06cc\u0001\u0000\u0000\u0000\u00f7\u06d5\u0001\u0000\u0000\u0000\u00f9"+ + "\u06de\u0001\u0000\u0000\u0000\u00fb\u06e4\u0001\u0000\u0000\u0000\u00fd"+ + "\u06e8\u0001\u0000\u0000\u0000\u00ff\u06ed\u0001\u0000\u0000\u0000\u0101"+ + "\u06f3\u0001\u0000\u0000\u0000\u0103\u06fa\u0001\u0000\u0000\u0000\u0105"+ + "\u0705\u0001\u0000\u0000\u0000\u0107\u0719\u0001\u0000\u0000\u0000\u0109"+ + "\u0725\u0001\u0000\u0000\u0000\u010b\u072a\u0001\u0000\u0000\u0000\u010d"+ + "\u072d\u0001\u0000\u0000\u0000\u010f\u0730\u0001\u0000\u0000\u0000\u0111"+ + "\u0737\u0001\u0000\u0000\u0000\u0113\u073b\u0001\u0000\u0000\u0000\u0115"+ + "\u0743\u0001\u0000\u0000\u0000\u0117\u0748\u0001\u0000\u0000\u0000\u0119"+ + "\u0751\u0001\u0000\u0000\u0000\u011b\u0757\u0001\u0000\u0000\u0000\u011d"+ + "\u0761\u0001\u0000\u0000\u0000\u011f\u0767\u0001\u0000\u0000\u0000\u0121"+ + "\u0771\u0001\u0000\u0000\u0000\u0123\u0777\u0001\u0000\u0000\u0000\u0125"+ + "\u0781\u0001\u0000\u0000\u0000\u0127\u0788\u0001\u0000\u0000\u0000\u0129"+ + "\u0793\u0001\u0000\u0000\u0000\u012b\u079a\u0001\u0000\u0000\u0000\u012d"+ + "\u07a5\u0001\u0000\u0000\u0000\u012f\u07af\u0001\u0000\u0000\u0000\u0131"+ + "\u07b8\u0001\u0000\u0000\u0000\u0133\u07bb\u0001\u0000\u0000\u0000\u0135"+ + "\u07c3\u0001\u0000\u0000\u0000\u0137\u07c8\u0001\u0000\u0000\u0000\u0139"+ + "\u07cc\u0001\u0000\u0000\u0000\u013b\u07d1\u0001\u0000\u0000\u0000\u013d"+ + "\u07d7\u0001\u0000\u0000\u0000\u013f\u07dc\u0001\u0000\u0000\u0000\u0141"+ + "\u07df\u0001\u0000\u0000\u0000\u0143\u07e5\u0001\u0000\u0000\u0000\u0145"+ + "\u07f4\u0001\u0000\u0000\u0000\u0147\u07ff\u0001\u0000\u0000\u0000\u0149"+ + "\u080f\u0001\u0000\u0000\u0000\u014b\u0813\u0001\u0000\u0000\u0000\u014d"+ + "\u0819\u0001\u0000\u0000\u0000\u014f\u081f\u0001\u0000\u0000\u0000\u0151"+ + "\u0825\u0001\u0000\u0000\u0000\u0153\u082b\u0001\u0000\u0000\u0000\u0155"+ + "\u082f\u0001\u0000\u0000\u0000\u0157\u0833\u0001\u0000\u0000\u0000\u0159"+ + "\u083a\u0001\u0000\u0000\u0000\u015b\u083e\u0001\u0000\u0000\u0000\u015d"+ + "\u0844\u0001\u0000\u0000\u0000\u015f\u0849\u0001\u0000\u0000\u0000\u0161"+ + "\u0852\u0001\u0000\u0000\u0000\u0163\u085c\u0001\u0000\u0000\u0000\u0165"+ + "\u0860\u0001\u0000\u0000\u0000\u0167\u0868\u0001\u0000\u0000\u0000\u0169"+ + "\u086d\u0001\u0000\u0000\u0000\u016b\u0873\u0001\u0000\u0000\u0000\u016d"+ + "\u087a\u0001\u0000\u0000\u0000\u016f\u0887\u0001\u0000\u0000\u0000\u0171"+ + "\u088a\u0001\u0000\u0000\u0000\u0173\u0891\u0001\u0000\u0000\u0000\u0175"+ + "\u089a\u0001\u0000\u0000\u0000\u0177\u089d\u0001\u0000\u0000\u0000\u0179"+ + "\u08a3\u0001\u0000\u0000\u0000\u017b\u08ad\u0001\u0000\u0000\u0000\u017d"+ + "\u08b7\u0001\u0000\u0000\u0000\u017f\u08c2\u0001\u0000\u0000\u0000\u0181"+ + "\u08c7\u0001\u0000\u0000\u0000\u0183\u08d3\u0001\u0000\u0000\u0000\u0185"+ + "\u08d9\u0001\u0000\u0000\u0000\u0187\u08e9\u0001\u0000\u0000\u0000\u0189"+ + "\u08f9\u0001\u0000\u0000\u0000\u018b\u08ff\u0001\u0000\u0000\u0000\u018d"+ + "\u0909\u0001\u0000\u0000\u0000\u018f\u0919\u0001\u0000\u0000\u0000\u0191"+ + "\u0921\u0001\u0000\u0000\u0000\u0193\u0926\u0001\u0000\u0000\u0000\u0195"+ + "\u092d\u0001\u0000\u0000\u0000\u0197\u0934\u0001\u0000\u0000\u0000\u0199"+ + "\u093c\u0001\u0000\u0000\u0000\u019b\u0942\u0001\u0000\u0000\u0000\u019d"+ + "\u0949\u0001\u0000\u0000\u0000\u019f\u094f\u0001\u0000\u0000\u0000\u01a1"+ + "\u0958\u0001\u0000\u0000\u0000\u01a3\u095e\u0001\u0000\u0000\u0000\u01a5"+ + "\u0963\u0001\u0000\u0000\u0000\u01a7\u096a\u0001\u0000\u0000\u0000\u01a9"+ + "\u0971\u0001\u0000\u0000\u0000\u01ab\u0978\u0001\u0000\u0000\u0000\u01ad"+ + "\u0980\u0001\u0000\u0000\u0000\u01af\u098d\u0001\u0000\u0000\u0000\u01b1"+ + "\u0991\u0001\u0000\u0000\u0000\u01b3\u0998\u0001\u0000\u0000\u0000\u01b5"+ + "\u099c\u0001\u0000\u0000\u0000\u01b7\u09a1\u0001\u0000\u0000\u0000\u01b9"+ + "\u09a6\u0001\u0000\u0000\u0000\u01bb\u09ab\u0001\u0000\u0000\u0000\u01bd"+ + "\u09b1\u0001\u0000\u0000\u0000\u01bf\u09ba\u0001\u0000\u0000\u0000\u01c1"+ + "\u09bf\u0001\u0000\u0000\u0000\u01c3\u09c5\u0001\u0000\u0000\u0000\u01c5"+ + "\u09d0\u0001\u0000\u0000\u0000\u01c7\u09dc\u0001\u0000\u0000\u0000\u01c9"+ + "\u09e3\u0001\u0000\u0000\u0000\u01cb\u09e7\u0001\u0000\u0000\u0000\u01cd"+ + "\u09eb\u0001\u0000\u0000\u0000\u01cf\u09f0\u0001\u0000\u0000\u0000\u01d1"+ + "\u09f5\u0001\u0000\u0000\u0000\u01d3\u09fa\u0001\u0000\u0000\u0000\u01d5"+ + "\u0a04\u0001\u0000\u0000\u0000\u01d7\u0a0d\u0001\u0000\u0000\u0000\u01d9"+ + "\u0a12\u0001\u0000\u0000\u0000\u01db\u0a18\u0001\u0000\u0000\u0000\u01dd"+ + "\u0a20\u0001\u0000\u0000\u0000\u01df\u0a25\u0001\u0000\u0000\u0000\u01e1"+ + "\u0a2b\u0001\u0000\u0000\u0000\u01e3\u0a32\u0001\u0000\u0000\u0000\u01e5"+ + "\u0a39\u0001\u0000\u0000\u0000\u01e7\u0a40\u0001\u0000\u0000\u0000\u01e9"+ + "\u0a48\u0001\u0000\u0000\u0000\u01eb\u0a50\u0001\u0000\u0000\u0000\u01ed"+ + "\u0a56\u0001\u0000\u0000\u0000\u01ef\u0a5f\u0001\u0000\u0000\u0000\u01f1"+ + "\u0a65\u0001\u0000\u0000\u0000\u01f3\u0a69\u0001\u0000\u0000\u0000\u01f5"+ + "\u0a73\u0001\u0000\u0000\u0000\u01f7\u0a79\u0001\u0000\u0000\u0000\u01f9"+ + "\u0a83\u0001\u0000\u0000\u0000\u01fb\u0a8b\u0001\u0000\u0000\u0000\u01fd"+ + "\u0a94\u0001\u0000\u0000\u0000\u01ff\u0a99\u0001\u0000\u0000\u0000\u0201"+ + "\u0a9f\u0001\u0000\u0000\u0000\u0203\u0aa4\u0001\u0000\u0000\u0000\u0205"+ + "\u0aa8\u0001\u0000\u0000\u0000\u0207\u0aad\u0001\u0000\u0000\u0000\u0209"+ + "\u0ab3\u0001\u0000\u0000\u0000\u020b\u0ab9\u0001\u0000\u0000\u0000\u020d"+ + "\u0ac8\u0001\u0000\u0000\u0000\u020f\u0ad3\u0001\u0000\u0000\u0000\u0211"+ + "\u0adc\u0001\u0000\u0000\u0000\u0213\u0ae6\u0001\u0000\u0000\u0000\u0215"+ + "\u0af1\u0001\u0000\u0000\u0000\u0217\u0af7\u0001\u0000\u0000\u0000\u0219"+ + "\u0aff\u0001\u0000\u0000\u0000\u021b\u0b05\u0001\u0000\u0000\u0000\u021d"+ + "\u0b0b\u0001\u0000\u0000\u0000\u021f\u0b16\u0001\u0000\u0000\u0000\u0221"+ + "\u0b23\u0001\u0000\u0000\u0000\u0223\u0b30\u0001\u0000\u0000\u0000\u0225"+ + "\u0b35\u0001\u0000\u0000\u0000\u0227\u0b3f\u0001\u0000\u0000\u0000\u0229"+ + "\u0b46\u0001\u0000\u0000\u0000\u022b\u0b4c\u0001\u0000\u0000\u0000\u022d"+ + "\u0b55\u0001\u0000\u0000\u0000\u022f\u0b5e\u0001\u0000\u0000\u0000\u0231"+ + "\u0b68\u0001\u0000\u0000\u0000\u0233\u0b6e\u0001\u0000\u0000\u0000\u0235"+ + "\u0b76\u0001\u0000\u0000\u0000\u0237\u0b7f\u0001\u0000\u0000\u0000\u0239"+ + "\u0b86\u0001\u0000\u0000\u0000\u023b\u0b8e\u0001\u0000\u0000\u0000\u023d"+ + "\u0b91\u0001\u0000\u0000\u0000\u023f\u0b96\u0001\u0000\u0000\u0000\u0241"+ + "\u0ba0\u0001\u0000\u0000\u0000\u0243\u0baa\u0001\u0000\u0000\u0000\u0245"+ + "\u0bb2\u0001\u0000\u0000\u0000\u0247\u0bba\u0001\u0000\u0000\u0000\u0249"+ + "\u0bc0\u0001\u0000\u0000\u0000\u024b\u0bc8\u0001\u0000\u0000\u0000\u024d"+ + "\u0bd2\u0001\u0000\u0000\u0000\u024f\u0bd9\u0001\u0000\u0000\u0000\u0251"+ + "\u0be0\u0001\u0000\u0000\u0000\u0253\u0bea\u0001\u0000\u0000\u0000\u0255"+ + "\u0bf6\u0001\u0000\u0000\u0000\u0257\u0bff\u0001\u0000\u0000\u0000\u0259"+ + "\u0c06\u0001\u0000\u0000\u0000\u025b\u0c0b\u0001\u0000\u0000\u0000\u025d"+ + "\u0c12\u0001\u0000\u0000\u0000\u025f\u0c1a\u0001\u0000\u0000\u0000\u0261"+ + "\u0c22\u0001\u0000\u0000\u0000\u0263\u0c2b\u0001\u0000\u0000\u0000\u0265"+ + "\u0c36\u0001\u0000\u0000\u0000\u0267\u0c42\u0001\u0000\u0000\u0000\u0269"+ + "\u0c4c\u0001\u0000\u0000\u0000\u026b\u0c55\u0001\u0000\u0000\u0000\u026d"+ + "\u0c5a\u0001\u0000\u0000\u0000\u026f\u0c60\u0001\u0000\u0000\u0000\u0271"+ + "\u0c68\u0001\u0000\u0000\u0000\u0273\u0c71\u0001\u0000\u0000\u0000\u0275"+ + "\u0c77\u0001\u0000\u0000\u0000\u0277\u0c7d\u0001\u0000\u0000\u0000\u0279"+ + "\u0c84\u0001\u0000\u0000\u0000\u027b\u0c89\u0001\u0000\u0000\u0000\u027d"+ + "\u0c8f\u0001\u0000\u0000\u0000\u027f\u0c97\u0001\u0000\u0000\u0000\u0281"+ + "\u0c9e\u0001\u0000\u0000\u0000\u0283\u0ca3\u0001\u0000\u0000\u0000\u0285"+ + "\u0ca7\u0001\u0000\u0000\u0000\u0287\u0cab\u0001\u0000\u0000\u0000\u0289"+ + "\u0cb0\u0001\u0000\u0000\u0000\u028b\u0cb5\u0001\u0000\u0000\u0000\u028d"+ + "\u0cb8\u0001\u0000\u0000\u0000\u028f\u0cbd\u0001\u0000\u0000\u0000\u0291"+ + "\u0cc8\u0001\u0000\u0000\u0000\u0293\u0ccd\u0001\u0000\u0000\u0000\u0295"+ + "\u0cd8\u0001\u0000\u0000\u0000\u0297\u0ce1\u0001\u0000\u0000\u0000\u0299"+ + "\u0ce6\u0001\u0000\u0000\u0000\u029b\u0cf3\u0001\u0000\u0000\u0000\u029d"+ + "\u0d01\u0001\u0000\u0000\u0000\u029f\u0d0c\u0001\u0000\u0000\u0000\u02a1"+ + "\u0d15\u0001\u0000\u0000\u0000\u02a3\u0d1c\u0001\u0000\u0000\u0000\u02a5"+ + "\u0d23\u0001\u0000\u0000\u0000\u02a7\u0d29\u0001\u0000\u0000\u0000\u02a9"+ + "\u0d2e\u0001\u0000\u0000\u0000\u02ab\u0d31\u0001\u0000\u0000\u0000\u02ad"+ + "\u0d37\u0001\u0000\u0000\u0000\u02af\u0d43\u0001\u0000\u0000\u0000\u02b1"+ + "\u0d48\u0001\u0000\u0000\u0000\u02b3\u0d53\u0001\u0000\u0000\u0000\u02b5"+ + "\u0d5a\u0001\u0000\u0000\u0000\u02b7\u0d5f\u0001\u0000\u0000\u0000\u02b9"+ + "\u0d67\u0001\u0000\u0000\u0000\u02bb\u0d6d\u0001\u0000\u0000\u0000\u02bd"+ + "\u0d74\u0001\u0000\u0000\u0000\u02bf\u0d76\u0001\u0000\u0000\u0000\u02c1"+ + "\u0d7e\u0001\u0000\u0000\u0000\u02c3\u0d84\u0001\u0000\u0000\u0000\u02c5"+ + "\u0d86\u0001\u0000\u0000\u0000\u02c7\u0d89\u0001\u0000\u0000\u0000\u02c9"+ + "\u0d8e\u0001\u0000\u0000\u0000\u02cb\u0d90\u0001\u0000\u0000\u0000\u02cd"+ + "\u0d92\u0001\u0000\u0000\u0000\u02cf\u0d94\u0001\u0000\u0000\u0000\u02d1"+ + "\u0d96\u0001\u0000\u0000\u0000\u02d3\u0d9a\u0001\u0000\u0000\u0000\u02d5"+ + "\u0d9e\u0001\u0000\u0000\u0000\u02d7\u0da2\u0001\u0000\u0000\u0000\u02d9"+ + "\u0da5\u0001\u0000\u0000\u0000\u02db\u0da8\u0001\u0000\u0000\u0000\u02dd"+ + "\u0dab\u0001\u0000\u0000\u0000\u02df\u0dae\u0001\u0000\u0000\u0000\u02e1"+ + "\u0db1\u0001\u0000\u0000\u0000\u02e3\u0db4\u0001\u0000\u0000\u0000\u02e5"+ + "\u0db7\u0001\u0000\u0000\u0000\u02e7\u0dbb\u0001\u0000\u0000\u0000\u02e9"+ + "\u0dbf\u0001\u0000\u0000\u0000\u02eb\u0dc3\u0001\u0000\u0000\u0000\u02ed"+ + "\u0dc7\u0001\u0000\u0000\u0000\u02ef\u0dcb\u0001\u0000\u0000\u0000\u02f1"+ + "\u0dce\u0001\u0000\u0000\u0000\u02f3\u0dd1\u0001\u0000\u0000\u0000\u02f5"+ + "\u0dd4\u0001\u0000\u0000\u0000\u02f7\u0dd7\u0001\u0000\u0000\u0000\u02f9"+ + "\u0dda\u0001\u0000\u0000\u0000\u02fb\u0ddd\u0001\u0000\u0000\u0000\u02fd"+ + "\u0de0\u0001\u0000\u0000\u0000\u02ff\u0de3\u0001\u0000\u0000\u0000\u0301"+ + "\u0de6\u0001\u0000\u0000\u0000\u0303\u0dea\u0001\u0000\u0000\u0000\u0305"+ + "\u0ded\u0001\u0000\u0000\u0000\u0307\u0df1\u0001\u0000\u0000\u0000\u0309"+ + "\u0df4\u0001\u0000\u0000\u0000\u030b\u0df7\u0001\u0000\u0000\u0000\u030d"+ + "\u0dfa\u0001\u0000\u0000\u0000\u030f\u0dfc\u0001\u0000\u0000\u0000\u0311"+ + "\u0dfe\u0001\u0000\u0000\u0000\u0313\u0e00\u0001\u0000\u0000\u0000\u0315"+ + "\u0e02\u0001\u0000\u0000\u0000\u0317\u0e04\u0001\u0000\u0000\u0000\u0319"+ + "\u0e06\u0001\u0000\u0000\u0000\u031b\u0e08\u0001\u0000\u0000\u0000\u031d"+ + "\u0e0a\u0001\u0000\u0000\u0000\u031f\u0e0c\u0001\u0000\u0000\u0000\u0321"+ + "\u0e0e\u0001\u0000\u0000\u0000\u0323\u0e10\u0001\u0000\u0000\u0000\u0325"+ + "\u0e12\u0001\u0000\u0000\u0000\u0327\u0e14\u0001\u0000\u0000\u0000\u0329"+ + "\u0e16\u0001\u0000\u0000\u0000\u032b\u0e18\u0001\u0000\u0000\u0000\u032d"+ + "\u0e1a\u0001\u0000\u0000\u0000\u032f\u0e1c\u0001\u0000\u0000\u0000\u0331"+ + "\u0e1e\u0001\u0000\u0000\u0000\u0333\u0e20\u0001\u0000\u0000\u0000\u0335"+ + "\u0e22\u0001\u0000\u0000\u0000\u0337\u0e24\u0001\u0000\u0000\u0000\u0339"+ + "\u0e26\u0001\u0000\u0000\u0000\u033b\u0e28\u0001\u0000\u0000\u0000\u033d"+ + "\u0e2a\u0001\u0000\u0000\u0000\u033f\u0e2c\u0001\u0000\u0000\u0000\u0341"+ + "\u0e2e\u0001\u0000\u0000\u0000\u0343\u0e30\u0001\u0000\u0000\u0000\u0345"+ + "\u0e32\u0001\u0000\u0000\u0000\u0347\u0e34\u0001\u0000\u0000\u0000\u0349"+ + "\u0e36\u0001\u0000\u0000\u0000\u034b\u0e38\u0001\u0000\u0000\u0000\u034d"+ + "\u0e3a\u0001\u0000\u0000\u0000\u034f\u0e3d\u0001\u0000\u0000\u0000\u0351"+ + "\u0e4e\u0001\u0000\u0000\u0000\u0353\u0e50\u0001\u0000\u0000\u0000\u0355"+ + "\u0e5e\u0001\u0000\u0000\u0000\u0357\u0e69\u0001\u0000\u0000\u0000\u0359"+ + "\u0e74\u0001\u0000\u0000\u0000\u035b\u0e76\u0001\u0000\u0000\u0000\u035d"+ + "\u0e78\u0001\u0000\u0000\u0000\u035f\u0e7a\u0001\u0000\u0000\u0000\u0361"+ + "\u0e7c\u0001\u0000\u0000\u0000\u0363\u0e7e\u0001\u0000\u0000\u0000\u0365"+ + "\u0e80\u0001\u0000\u0000\u0000\u0367\u0e82\u0001\u0000\u0000\u0000\u0369"+ + "\u0e84\u0001\u0000\u0000\u0000\u036b\u0e86\u0001\u0000\u0000\u0000\u036d"+ + "\u0e88\u0001\u0000\u0000\u0000\u036f\u0e8a\u0001\u0000\u0000\u0000\u0371"+ + "\u037a\u0003\u02fd\u017e\u0000\u0372\u0373\u0007\u0000\u0000\u0000\u0373"+ + "\u0374\u0007\u0001\u0000\u0000\u0374\u0375\u0007\u0002\u0000\u0000\u0375"+ + "\u0376\u0007\u0003\u0000\u0000\u0376\u0377\u0007\u0000\u0000\u0000\u0377"+ + "\u0378\u0007\u0004\u0000\u0000\u0378\u037a\u0007\u0005\u0000\u0000\u0379"+ + "\u0371\u0001\u0000\u0000\u0000\u0379\u0372\u0001\u0000\u0000\u0000\u037a"+ + "\u0002\u0001\u0000\u0000\u0000\u037b\u037c\u0003\u02bd\u015e\u0000\u037c"+ + "\u0004\u0001\u0000\u0000\u0000\u037d\u037e\u0007\u0006\u0000\u0000\u037e"+ + "\u037f\u0007\u0007\u0000\u0000\u037f\u0380\u0007\b\u0000\u0000\u0380\u038e"+ + "\u0007\u0004\u0000\u0000\u0381\u0382\u0007\t\u0000\u0000\u0382\u0383\u0007"+ + "\n\u0000\u0000\u0383\u0384\u0007\u0003\u0000\u0000\u0384\u0385\u0007\u0005"+ + "\u0000\u0000\u0385\u038e\u0007\u0004\u0000\u0000\u0386\u0387\u0007\b\u0000"+ + "\u0000\u0387\u0388\u0007\u000b\u0000\u0000\u0388\u0389\u0007\f\u0000\u0000"+ + "\u0389\u038a\u0007\u000b\u0000\u0000\u038a\u038b\u0007\r\u0000\u0000\u038b"+ + "\u038c\u0007\u000e\u0000\u0000\u038c\u038e\u0007\u000b\u0000\u0000\u038d"+ + "\u037d\u0001\u0000\u0000\u0000\u038d\u0381\u0001\u0000\u0000\u0000\u038d"+ + "\u0386\u0001\u0000\u0000\u0000\u038e\u0006\u0001\u0000\u0000\u0000\u038f"+ + "\u0391\u0003\r\u0006\u0000\u0390\u038f\u0001\u0000\u0000\u0000\u0390\u0391"+ + "\u0001\u0000\u0000\u0000\u0391\u0392\u0001\u0000\u0000\u0000\u0392\u0393"+ + "\u0003\u000f\u0007\u0000\u0393\b\u0001\u0000\u0000\u0000\u0394\u0396\u0003"+ + "\r\u0006\u0000\u0395\u0394\u0001\u0000\u0000\u0000\u0395\u0396\u0001\u0000"+ + "\u0000\u0000\u0396\u0397\u0001\u0000\u0000\u0000\u0397\u0398\u0003\u0011"+ + "\b\u0000\u0398\n\u0001\u0000\u0000\u0000\u0399\u039b\u0003\r\u0006\u0000"+ + "\u039a\u0399\u0001\u0000\u0000\u0000\u039a\u039b\u0001\u0000\u0000\u0000"+ + "\u039b\u039c\u0001\u0000\u0000\u0000\u039c\u039d\u0003\u0013\t\u0000\u039d"+ + "\f\u0001\u0000\u0000\u0000\u039e\u039f\u0003\u0315\u018a\u0000\u039f\u000e"+ + "\u0001\u0000\u0000\u0000\u03a0\u03a4\u0003\u0335\u019a\u0000\u03a1\u03a3"+ + "\u0003\u0015\n\u0000\u03a2\u03a1\u0001\u0000\u0000\u0000\u03a3\u03a6\u0001"+ + "\u0000\u0000\u0000\u03a4\u03a2\u0001\u0000\u0000\u0000\u03a4\u03a5\u0001"+ + "\u0000\u0000\u0000\u03a5\u03a7\u0001\u0000\u0000\u0000\u03a6\u03a4\u0001"+ + "\u0000\u0000\u0000\u03a7\u03a8\u0003\u0335\u019a\u0000\u03a8\u0010\u0001"+ + "\u0000\u0000\u0000\u03a9\u03ad\u0003\u0319\u018c\u0000\u03aa\u03ac\u0003"+ + "\u0017\u000b\u0000\u03ab\u03aa\u0001\u0000\u0000\u0000\u03ac\u03af\u0001"+ + "\u0000\u0000\u0000\u03ad\u03ab\u0001\u0000\u0000\u0000\u03ad\u03ae\u0001"+ + "\u0000\u0000\u0000\u03ae\u03b0\u0001\u0000\u0000\u0000\u03af\u03ad\u0001"+ + "\u0000\u0000\u0000\u03b0\u03b1\u0003\u0319\u018c\u0000\u03b1\u0012\u0001"+ + "\u0000\u0000\u0000\u03b2\u03b6\u0003\u0321\u0190\u0000\u03b3\u03b5\u0003"+ + "\u0019\f\u0000\u03b4\u03b3\u0001\u0000\u0000\u0000\u03b5\u03b8\u0001\u0000"+ + "\u0000\u0000\u03b6\u03b4\u0001\u0000\u0000\u0000\u03b6\u03b7\u0001\u0000"+ + "\u0000\u0000\u03b7\u03b9\u0001\u0000\u0000\u0000\u03b8\u03b6\u0001\u0000"+ + "\u0000\u0000\u03b9\u03ba\u0003\u0321\u0190\u0000\u03ba\u0014\u0001\u0000"+ + "\u0000\u0000\u03bb\u03be\u0003\u001b\r\u0000\u03bc\u03be\b\u000f\u0000"+ + "\u0000\u03bd\u03bb\u0001\u0000\u0000\u0000\u03bd\u03bc\u0001\u0000\u0000"+ + "\u0000\u03be\u03bf\u0001\u0000\u0000\u0000\u03bf\u03bd\u0001\u0000\u0000"+ + "\u0000\u03bf\u03c0\u0001\u0000\u0000\u0000\u03c0\u0016\u0001\u0000\u0000"+ + "\u0000\u03c1\u03c4\u0003\u001b\r\u0000\u03c2\u03c4\b\u0010\u0000\u0000"+ + "\u03c3\u03c1\u0001\u0000\u0000\u0000\u03c3\u03c2\u0001\u0000\u0000\u0000"+ + "\u03c4\u03c5\u0001\u0000\u0000\u0000\u03c5\u03c3\u0001\u0000\u0000\u0000"+ + "\u03c5\u03c6\u0001\u0000\u0000\u0000\u03c6\u0018\u0001\u0000\u0000\u0000"+ + "\u03c7\u03ca\u0003\u001b\r\u0000\u03c8\u03ca\b\u0011\u0000\u0000\u03c9"+ + "\u03c7\u0001\u0000\u0000\u0000\u03c9\u03c8\u0001\u0000\u0000\u0000\u03ca"+ + "\u03cb\u0001\u0000\u0000\u0000\u03cb\u03c9\u0001\u0000\u0000\u0000\u03cb"+ + "\u03cc\u0001\u0000\u0000\u0000\u03cc\u001a\u0001\u0000\u0000\u0000\u03cd"+ + "\u03d9\u0003\u001d\u000e\u0000\u03ce\u03d9\u0003\u001f\u000f\u0000\u03cf"+ + "\u03d9\u0003!\u0010\u0000\u03d0\u03d9\u0003#\u0011\u0000\u03d1\u03d9\u0003"+ + "%\u0012\u0000\u03d2\u03d9\u0003\'\u0013\u0000\u03d3\u03d9\u0003)\u0014"+ + "\u0000\u03d4\u03d9\u0003+\u0015\u0000\u03d5\u03d9\u0003-\u0016\u0000\u03d6"+ + "\u03d9\u0003/\u0017\u0000\u03d7\u03d9\u00031\u0018\u0000\u03d8\u03cd\u0001"+ + "\u0000\u0000\u0000\u03d8\u03ce\u0001\u0000\u0000\u0000\u03d8\u03cf\u0001"+ + "\u0000\u0000\u0000\u03d8\u03d0\u0001\u0000\u0000\u0000\u03d8\u03d1\u0001"+ + "\u0000\u0000\u0000\u03d8\u03d2\u0001\u0000\u0000\u0000\u03d8\u03d3\u0001"+ + "\u0000\u0000\u0000\u03d8\u03d4\u0001\u0000\u0000\u0000\u03d8\u03d5\u0001"+ + "\u0000\u0000\u0000\u03d8\u03d6\u0001\u0000\u0000\u0000\u03d8\u03d7\u0001"+ + "\u0000\u0000\u0000\u03d9\u001c\u0001\u0000\u0000\u0000\u03da\u03db\u0003"+ + "\u0337\u019b\u0000\u03db\u03dc\u0003\u0337\u019b\u0000\u03dc\u001e\u0001"+ + "\u0000\u0000\u0000\u03dd\u03de\u0003\u0337\u019b\u0000\u03de\u03df\u0003"+ + "\u0335\u019a\u0000\u03df \u0001\u0000\u0000\u0000\u03e0\u03e1\u0003\u0337"+ + "\u019b\u0000\u03e1\u03e2\u0003\u0319\u018c\u0000\u03e2\"\u0001\u0000\u0000"+ + "\u0000\u03e3\u03e4\u0003\u0337\u019b\u0000\u03e4\u03e5\u0003\u0321\u0190"+ + "\u0000\u03e5$\u0001\u0000\u0000\u0000\u03e6\u03e7\u0003\u0337\u019b\u0000"+ + "\u03e7\u03e8\u0007\u0006\u0000\u0000\u03e8&\u0001\u0000\u0000\u0000\u03e9"+ + "\u03ea\u0003\u0337\u019b\u0000\u03ea\u03eb\u0007\u0012\u0000\u0000\u03eb"+ + "(\u0001\u0000\u0000\u0000\u03ec\u03ed\u0003\u0337\u019b\u0000\u03ed\u03ee"+ + "\u0007\u000b\u0000\u0000\u03ee*\u0001\u0000\u0000\u0000\u03ef\u03f0\u0003"+ + "\u0337\u019b\u0000\u03f0\u03f1\u0007\u0007\u0000\u0000\u03f1,\u0001\u0000"+ + "\u0000\u0000\u03f2\u03f3\u0003\u0337\u019b\u0000\u03f3\u03f4\u0007\t\u0000"+ + "\u0000\u03f4.\u0001\u0000\u0000\u0000\u03f5\u03f6\u0003\u0337\u019b\u0000"+ + "\u03f6\u03f7\u0007\b\u0000\u0000\u03f7\u03f8\u0003\u0347\u01a3\u0000\u03f8"+ + "\u03f9\u0003\u0347\u01a3\u0000\u03f9\u03fa\u0003\u0347\u01a3\u0000\u03fa"+ + "\u03fb\u0003\u0347\u01a3\u0000\u03fb0\u0001\u0000\u0000\u0000\u03fc\u03fd"+ + "\u0003\u0337\u019b\u0000\u03fd\u03fe\u0007\b\u0000\u0000\u03fe\u03ff\u0003"+ + "\u0347\u01a3\u0000\u03ff\u0400\u0003\u0347\u01a3\u0000\u0400\u0401\u0003"+ + "\u0347\u01a3\u0000\u0401\u0402\u0003\u0347\u01a3\u0000\u0402\u0403\u0003"+ + "\u0347\u01a3\u0000\u0403\u0404\u0003\u0347\u01a3\u0000\u04042\u0001\u0000"+ + "\u0000\u0000\u0405\u0406\u0007\u0013\u0000\u0000\u0406\u040a\u0003\u0335"+ + "\u019a\u0000\u0407\u0409\u0003\u0361\u01b0\u0000\u0408\u0407\u0001\u0000"+ + "\u0000\u0000\u0409\u040c\u0001\u0000\u0000\u0000\u040a\u0408\u0001\u0000"+ + "\u0000\u0000\u040a\u040b\u0001\u0000\u0000\u0000\u040b\u041d\u0001\u0000"+ + "\u0000\u0000\u040c\u040a\u0001\u0000\u0000\u0000\u040d\u0411\u0003\u0347"+ + "\u01a3\u0000\u040e\u0410\u0003\u0361\u01b0\u0000\u040f\u040e\u0001\u0000"+ + "\u0000\u0000\u0410\u0413\u0001\u0000\u0000\u0000\u0411\u040f\u0001\u0000"+ + "\u0000\u0000\u0411\u0412\u0001\u0000\u0000\u0000\u0412\u0414\u0001\u0000"+ + "\u0000\u0000\u0413\u0411\u0001\u0000\u0000\u0000\u0414\u0418\u0003\u0347"+ + "\u01a3\u0000\u0415\u0417\u0003\u0361\u01b0\u0000\u0416\u0415\u0001\u0000"+ + "\u0000\u0000\u0417\u041a\u0001\u0000\u0000\u0000\u0418\u0416\u0001\u0000"+ + "\u0000\u0000\u0418\u0419\u0001\u0000\u0000\u0000\u0419\u041c\u0001\u0000"+ + "\u0000\u0000\u041a\u0418\u0001\u0000\u0000\u0000\u041b\u040d\u0001\u0000"+ + "\u0000\u0000\u041c\u041f\u0001\u0000\u0000\u0000\u041d\u041b\u0001\u0000"+ + "\u0000\u0000\u041d\u041e\u0001\u0000\u0000\u0000\u041e\u0420\u0001\u0000"+ + "\u0000\u0000\u041f\u041d\u0001\u0000\u0000\u0000\u0420\u0421\u0003\u0335"+ + "\u019a\u0000\u04214\u0001\u0000\u0000\u0000\u0422\u0423\u0003I$\u0000"+ + "\u0423\u0424\u0003G#\u0000\u04246\u0001\u0000\u0000\u0000\u0425\u0426"+ + "\u0003I$\u0000\u04268\u0001\u0000\u0000\u0000\u0427\u0428\u0003I$\u0000"+ + "\u0428\u0429\u0003Y,\u0000\u0429:\u0001\u0000\u0000\u0000\u042a\u042b"+ + "\u0003O\'\u0000\u042b\u042c\u0003G#\u0000\u042c<\u0001\u0000\u0000\u0000"+ + "\u042d\u042e\u0003O\'\u0000\u042e>\u0001\u0000\u0000\u0000\u042f\u0430"+ + "\u0003O\'\u0000\u0430\u0431\u0003Y,\u0000\u0431@\u0001\u0000\u0000\u0000"+ + "\u0432\u0433\u0003E\"\u0000\u0433\u0434\u0003G#\u0000\u0434B\u0001\u0000"+ + "\u0000\u0000\u0435\u0436\u0003E\"\u0000\u0436\u0437\u0003Y,\u0000\u0437"+ + "D\u0001\u0000\u0000\u0000\u0438\u043f\u0003\u0349\u01a4\u0000\u0439\u043b"+ + "\u0003\u0343\u01a1\u0000\u043a\u0439\u0001\u0000\u0000\u0000\u043a\u043b"+ + "\u0001\u0000\u0000\u0000\u043b\u043c\u0001\u0000\u0000\u0000\u043c\u043e"+ + "\u0003\u0349\u01a4\u0000\u043d\u043a\u0001\u0000\u0000\u0000\u043e\u0441"+ + "\u0001\u0000\u0000\u0000\u043f\u043d\u0001\u0000\u0000\u0000\u043f\u0440"+ + "\u0001\u0000\u0000\u0000\u0440F\u0001\u0000\u0000\u0000\u0441\u043f\u0001"+ + "\u0000\u0000\u0000\u0442\u0443\u0007\u0001\u0000\u0000\u0443H\u0001\u0000"+ + "\u0000\u0000\u0444\u0445\u0003K%\u0000\u0445\u0446\u0007\u0004\u0000\u0000"+ + "\u0446\u0447\u0003M&\u0000\u0447J\u0001\u0000\u0000\u0000\u0448\u044b"+ + "\u0003O\'\u0000\u0449\u044b\u0003E\"\u0000\u044a\u0448\u0001\u0000\u0000"+ + "\u0000\u044a\u0449\u0001\u0000\u0000\u0000\u044bL\u0001\u0000\u0000\u0000"+ + "\u044c\u044d\u0003Q(\u0000\u044dN\u0001\u0000\u0000\u0000\u044e\u044f"+ + "\u0003E\"\u0000\u044f\u0451\u0003\u032f\u0197\u0000\u0450\u0452\u0003"+ + "E\"\u0000\u0451\u0450\u0001\u0000\u0000\u0000\u0451\u0452\u0001\u0000"+ + "\u0000\u0000\u0452\u0457\u0001\u0000\u0000\u0000\u0453\u0454\u0003\u032f"+ + "\u0197\u0000\u0454\u0455\u0003E\"\u0000\u0455\u0457\u0001\u0000\u0000"+ + "\u0000\u0456\u044e\u0001\u0000\u0000\u0000\u0456\u0453\u0001\u0000\u0000"+ + "\u0000\u0457P\u0001\u0000\u0000\u0000\u0458\u045b\u0003\u0331\u0198\u0000"+ + "\u0459\u045b\u0003\u032b\u0195\u0000\u045a\u0458\u0001\u0000\u0000\u0000"+ + "\u045a\u0459\u0001\u0000\u0000\u0000\u045a\u045b\u0001\u0000\u0000\u0000"+ + "\u045b\u045c\u0001\u0000\u0000\u0000\u045c\u045d\u0003E\"\u0000\u045d"+ + "R\u0001\u0000\u0000\u0000\u045e\u045f\u00050\u0000\u0000\u045f\u0460\u0007"+ + "\u0013\u0000\u0000\u0460\u0465\u0001\u0000\u0000\u0000\u0461\u0463\u0005"+ + "_\u0000\u0000\u0462\u0461\u0001\u0000\u0000\u0000\u0462\u0463\u0001\u0000"+ + "\u0000\u0000\u0463\u0464\u0001\u0000\u0000\u0000\u0464\u0466\u0003\u0347"+ + "\u01a3\u0000\u0465\u0462\u0001\u0000\u0000\u0000\u0466\u0467\u0001\u0000"+ + "\u0000\u0000\u0467\u0465\u0001\u0000\u0000\u0000\u0467\u0468\u0001\u0000"+ + "\u0000\u0000\u0468T\u0001\u0000\u0000\u0000\u0469\u046a\u00050\u0000\u0000"+ + "\u046a\u046b\u0007\r\u0000\u0000\u046b\u0470\u0001\u0000\u0000\u0000\u046c"+ + "\u046e\u0005_\u0000\u0000\u046d\u046c\u0001\u0000\u0000\u0000\u046d\u046e"+ + "\u0001\u0000\u0000\u0000\u046e\u046f\u0001\u0000\u0000\u0000\u046f\u0471"+ + "\u0003\u034b\u01a5\u0000\u0470\u046d\u0001\u0000\u0000\u0000\u0471\u0472"+ + "\u0001\u0000\u0000\u0000\u0472\u0470\u0001\u0000\u0000\u0000\u0472\u0473"+ + "\u0001\u0000\u0000\u0000\u0473V\u0001\u0000\u0000\u0000\u0474\u0475\u0005"+ + "0\u0000\u0000\u0475\u0476\u0007\u0012\u0000\u0000\u0476\u047b\u0001\u0000"+ + "\u0000\u0000\u0477\u0479\u0005_\u0000\u0000\u0478\u0477\u0001\u0000\u0000"+ + "\u0000\u0478\u0479\u0001\u0000\u0000\u0000\u0479\u047a\u0001\u0000\u0000"+ + "\u0000\u047a\u047c\u0003\u034d\u01a6\u0000\u047b\u0478\u0001\u0000\u0000"+ + "\u0000\u047c\u047d\u0001\u0000\u0000\u0000\u047d\u047b\u0001\u0000\u0000"+ + "\u0000\u047d\u047e\u0001\u0000\u0000\u0000\u047eX\u0001\u0000\u0000\u0000"+ + "\u047f\u0480\u0007\u0014\u0000\u0000\u0480Z\u0001\u0000\u0000\u0000\u0481"+ + "\u0482\u0007\n\u0000\u0000\u0482\u0483\u0007\u0012\u0000\u0000\u0483\u0484"+ + "\u0007\u0005\u0000\u0000\u0484\\\u0001\u0000\u0000\u0000\u0485\u0486\u0007"+ + "\n\u0000\u0000\u0486\u0487\u0007\u0015\u0000\u0000\u0487\u0488\u0007\r"+ + "\u0000\u0000\u0488\u0489\u0007\u0005\u0000\u0000\u0489^\u0001\u0000\u0000"+ + "\u0000\u048a\u048b\u0007\n\u0000\u0000\u048b\u048c\u0007\u0003\u0000\u0000"+ + "\u048c\u048d\u0007\u0003\u0000\u0000\u048d`\u0001\u0000\u0000\u0000\u048e"+ + "\u048f\u0007\n\u0000\u0000\u048f\u0490\u0007\u0003\u0000\u0000\u0490\u0491"+ + "\u0007\u0003\u0000\u0000\u0491\u0492\u0005_\u0000\u0000\u0492\u0493\u0007"+ + "\u0016\u0000\u0000\u0493\u0494\u0007\u0000\u0000\u0000\u0494\u0495\u0007"+ + "\t\u0000\u0000\u0495\u0496\u0007\t\u0000\u0000\u0496\u0497\u0007\u0004"+ + "\u0000\u0000\u0497\u0498\u0007\u0007\u0000\u0000\u0498\u0499\u0007\u0004"+ + "\u0000\u0000\u0499\u049a\u0007\u000b\u0000\u0000\u049a\u049b\u0007\u0006"+ + "\u0000\u0000\u049bb\u0001\u0000\u0000\u0000\u049c\u049d\u0007\n\u0000"+ + "\u0000\u049d\u049e\u0007\u000b\u0000\u0000\u049e\u049f\u0007\u0016\u0000"+ + "\u0000\u049fd\u0001\u0000\u0000\u0000\u04a0\u04a1\u0007\n\u0000\u0000"+ + "\u04a1\u04a2\u0007\u000b\u0000\u0000\u04a2\u04a3\u0007\u0017\u0000\u0000"+ + "\u04a3f\u0001\u0000\u0000\u0000\u04a4\u04a5\u0007\n\u0000\u0000\u04a5"+ + "\u04a6\u0007\u0007\u0000\u0000\u04a6\u04a7\u0007\u0007\u0000\u0000\u04a7"+ + "\u04a8\u0007\n\u0000\u0000\u04a8\u04a9\u0007\u0017\u0000\u0000\u04a9h"+ + "\u0001\u0000\u0000\u0000\u04aa\u04ab\u0007\n\u0000\u0000\u04ab\u04ac\u0007"+ + "\u0005\u0000\u0000\u04acj\u0001\u0000\u0000\u0000\u04ad\u04ae\u0007\n"+ + "\u0000\u0000\u04ae\u04af\u0007\u0005\u0000\u0000\u04af\u04b0\u0007\u0015"+ + "\u0000\u0000\u04b0l\u0001\u0000\u0000\u0000\u04b1\u04b2\u0007\n\u0000"+ + "\u0000\u04b2\u04b3\u0007\u0005\u0000\u0000\u04b3\u04b4\u0007\u0015\u0000"+ + "\u0000\u04b4\u04b5\u0007\u0004\u0000\u0000\u04b5\u04b6\u0007\u000b\u0000"+ + "\u0000\u04b6\u04b7\u0007\u0016\u0000\u0000\u04b7\u04b8\u0007\u0000\u0000"+ + "\u0000\u04b8\u04b9\u0007\u000b\u0000\u0000\u04b9\u04ba\u0007\u0018\u0000"+ + "\u0000\u04ban\u0001\u0000\u0000\u0000\u04bb\u04bc\u0007\n\u0000\u0000"+ + "\u04bc\u04bd\u0007\u0005\u0000\u0000\u04bd\u04be\u0007\u0000\u0000\u0000"+ + "\u04be\u04bf\u0007\u000b\u0000\u0000\u04bfp\u0001\u0000\u0000\u0000\u04c0"+ + "\u04c1\u0007\n\u0000\u0000\u04c1\u04c2\u0007\u0006\u0000\u0000\u04c2r"+ + "\u0001\u0000\u0000\u0000\u04c3\u04c4\u0007\n\u0000\u0000\u04c4\u04c5\u0007"+ + "\u0006\u0000\u0000\u04c5\u04c6\u0007\n\u0000\u0000\u04c6\u04c7\u0007\u000b"+ + "\u0000\u0000\u04c7t\u0001\u0000\u0000\u0000\u04c8\u04c9\u0007\n\u0000"+ + "\u0000\u04c9\u04ca\u0007\u0019\u0000\u0000\u04ca\u04cb\u0007\u0018\u0000"+ + "\u0000\u04cbv\u0001\u0000\u0000\u0000\u04cc\u04cd\u0007\u0012\u0000\u0000"+ + "\u04cd\u04ce\u0007\u0000\u0000\u0000\u04ce\u04cf\u0007\u0018\u0000\u0000"+ + "\u04cfx\u0001\u0000\u0000\u0000\u04d0\u04d1\u0007\u0012\u0000\u0000\u04d1"+ + "\u04d2\u0007\u0000\u0000\u0000\u04d2\u04d3\u0007\u0018\u0000\u0000\u04d3"+ + "\u04d4\u0007\u0000\u0000\u0000\u04d4\u04d5\u0007\u000b\u0000\u0000\u04d5"+ + "\u04d6\u0007\u0006\u0000\u0000\u04d6z\u0001\u0000\u0000\u0000\u04d7\u04d8"+ + "\u0007\u0012\u0000\u0000\u04d8\u04d9\u0007\u0000\u0000\u0000\u04d9\u04da"+ + "\u0007\u000b\u0000\u0000\u04da\u04db\u0007\n\u0000\u0000\u04db\u04dc\u0007"+ + "\u0007\u0000\u0000\u04dc\u04dd\u0007\u0017\u0000\u0000\u04dd|\u0001\u0000"+ + "\u0000\u0000\u04de\u04df\u0007\u0012\u0000\u0000\u04df\u04e0\u0007\r\u0000"+ + "\u0000\u04e0\u04e1\u0007\r\u0000\u0000\u04e1\u04e2\u0007\u0003\u0000\u0000"+ + "\u04e2~\u0001\u0000\u0000\u0000\u04e3\u04e4\u0007\u0012\u0000\u0000\u04e4"+ + "\u04e5\u0007\r\u0000\u0000\u04e5\u04e6\u0007\r\u0000\u0000\u04e6\u04e7"+ + "\u0007\u0003\u0000\u0000\u04e7\u04e8\u0007\u0004\u0000\u0000\u04e8\u04e9"+ + "\u0007\n\u0000\u0000\u04e9\u04ea\u0007\u000b\u0000\u0000\u04ea\u0080\u0001"+ + "\u0000\u0000\u0000\u04eb\u04ec\u0007\u0012\u0000\u0000\u04ec\u04ed\u0007"+ + "\r\u0000\u0000\u04ed\u04ee\u0007\u0006\u0000\u0000\u04ee\u04ef\u0007\u001a"+ + "\u0000\u0000\u04ef\u0082\u0001\u0000\u0000\u0000\u04f0\u04f1\u0007\u0012"+ + "\u0000\u0000\u04f1\u04f2\u0007\u0006\u0000\u0000\u04f2\u04f3\u0007\u0007"+ + "\u0000\u0000\u04f3\u04f4\u0007\u0000\u0000\u0000\u04f4\u04f5\u0007\u0001"+ + "\u0000\u0000\u04f5\u0084\u0001\u0000\u0000\u0000\u04f6\u04f7\u0007\u0012"+ + "\u0000\u0000\u04f7\u04f8\u0007\u0017\u0000\u0000\u04f8\u0086\u0001\u0000"+ + "\u0000\u0000\u04f9\u04fa\u0007\u0012\u0000\u0000\u04fa\u04fb\u0007\u0017"+ + "\u0000\u0000\u04fb\u04fc\u0007\u0006\u0000\u0000\u04fc\u04fd\u0007\u0004"+ + "\u0000\u0000\u04fd\u04fe\u0005_\u0000\u0000\u04fe\u04ff\u0007\u0003\u0000"+ + "\u0000\u04ff\u0500\u0007\u0004\u0000\u0000\u0500\u0501\u0007\u000b\u0000"+ + "\u0000\u0501\u0502\u0007\u0018\u0000\u0000\u0502\u0503\u0007\u0006\u0000"+ + "\u0000\u0503\u0504\u0007\u001a\u0000\u0000\u0504\u0088\u0001\u0000\u0000"+ + "\u0000\u0505\u0506\u0007\u0012\u0000\u0000\u0506\u0507\u0007\u0017\u0000"+ + "\u0000\u0507\u0508\u0007\u0006\u0000\u0000\u0508\u0509\u0007\u0004\u0000"+ + "\u0000\u0509\u050a\u0007\u0005\u0000\u0000\u050a\u008a\u0001\u0000\u0000"+ + "\u0000\u050b\u050c\u0007\u0015\u0000\u0000\u050c\u050d\u0007\n\u0000\u0000"+ + "\u050d\u050e\u0007\u0003\u0000\u0000\u050e\u050f\u0007\u0003\u0000\u0000"+ + "\u050f\u008c\u0001\u0000\u0000\u0000\u0510\u0511\u0007\u0015\u0000\u0000"+ + "\u0511\u0512\u0007\n\u0000\u0000\u0512\u0513\u0007\u0007\u0000\u0000\u0513"+ + "\u0514\u0007\u0016\u0000\u0000\u0514\u0515\u0007\u0000\u0000\u0000\u0515"+ + "\u0516\u0007\u000b\u0000\u0000\u0516\u0517\u0007\n\u0000\u0000\u0517\u0518"+ + "\u0007\u0003\u0000\u0000\u0518\u0519\u0007\u0000\u0000\u0000\u0519\u051a"+ + "\u0007\u0006\u0000\u0000\u051a\u051b\u0007\u0017\u0000\u0000\u051b\u008e"+ + "\u0001\u0000\u0000\u0000\u051c\u051d\u0007\u0015\u0000\u0000\u051d\u051e"+ + "\u0007\n\u0000\u0000\u051e\u051f\u0007\u0005\u0000\u0000\u051f\u0520\u0007"+ + "\u0004\u0000\u0000\u0520\u0090\u0001\u0000\u0000\u0000\u0521\u0522\u0007"+ + "\u0015\u0000\u0000\u0522\u0523\u0007\n\u0000\u0000\u0523\u0524\u0007\u0005"+ + "\u0000\u0000\u0524\u0525\u0007\u0006\u0000\u0000\u0525\u0092\u0001\u0000"+ + "\u0000\u0000\u0526\u0527\u0007\u0015\u0000\u0000\u0527\u0528\u0007\u0004"+ + "\u0000\u0000\u0528\u0529\u0007\u0000\u0000\u0000\u0529\u052a\u0007\u0003"+ + "\u0000\u0000\u052a\u0094\u0001\u0000\u0000\u0000\u052b\u052c\u0007\u0015"+ + "\u0000\u0000\u052c\u052d\u0007\u0004\u0000\u0000\u052d\u052e\u0007\u0000"+ + "\u0000\u0000\u052e\u052f\u0007\u0003\u0000\u0000\u052f\u0530\u0007\u0000"+ + "\u0000\u0000\u0530\u0531\u0007\u000b\u0000\u0000\u0531\u0532\u0007\u0018"+ + "\u0000\u0000\u0532\u0096\u0001\u0000\u0000\u0000\u0533\u0534\u0007\u0015"+ + "\u0000\u0000\u0534\u0535\u0007\u001a\u0000\u0000\u0535\u0536\u0007\n\u0000"+ + "\u0000\u0536\u0537\u0007\u0007\u0000\u0000\u0537\u0098\u0001\u0000\u0000"+ + "\u0000\u0538\u0539\u0007\u0015\u0000\u0000\u0539\u053a\u0007\u001a\u0000"+ + "\u0000\u053a\u053b\u0007\n\u0000\u0000\u053b\u053c\u0007\u0007\u0000\u0000"+ + "\u053c\u053d\u0005_\u0000\u0000\u053d\u053e\u0007\u0003\u0000\u0000\u053e"+ + "\u053f\u0007\u0004\u0000\u0000\u053f\u0540\u0007\u000b\u0000\u0000\u0540"+ + "\u0541\u0007\u0018\u0000\u0000\u0541\u0542\u0007\u0006\u0000\u0000\u0542"+ + "\u0543\u0007\u001a\u0000\u0000\u0543\u009a\u0001\u0000\u0000\u0000\u0544"+ + "\u0545\u0007\u0015\u0000\u0000\u0545\u0546\u0007\u001a\u0000\u0000\u0546"+ + "\u0547\u0007\n\u0000\u0000\u0547\u0548\u0007\u0007\u0000\u0000\u0548\u0549"+ + "\u0007\n\u0000\u0000\u0549\u054a\u0007\u0015\u0000\u0000\u054a\u054b\u0007"+ + "\u0006\u0000\u0000\u054b\u054c\u0007\u0004\u0000\u0000\u054c\u054d\u0007"+ + "\u0007\u0000\u0000\u054d\u054e\u0005_\u0000\u0000\u054e\u054f\u0007\u0003"+ + "\u0000\u0000\u054f\u0550\u0007\u0004\u0000\u0000\u0550\u0551\u0007\u000b"+ + "\u0000\u0000\u0551\u0552\u0007\u0018\u0000\u0000\u0552\u0553\u0007\u0006"+ + "\u0000\u0000\u0553\u0554\u0007\u001a\u0000\u0000\u0554\u009c\u0001\u0000"+ + "\u0000\u0000\u0555\u0556\u0007\u0015\u0000\u0000\u0556\u0557\u0007\u001a"+ + "\u0000\u0000\u0557\u0558\u0007\n\u0000\u0000\u0558\u0559\u0007\u0007\u0000"+ + "\u0000\u0559\u055a\u0007\n\u0000\u0000\u055a\u055b\u0007\u0015\u0000\u0000"+ + "\u055b\u055c\u0007\u0006\u0000\u0000\u055c\u055d\u0007\u0004\u0000\u0000"+ + "\u055d\u055e\u0007\u0007\u0000\u0000\u055e\u055f\u0007\u0000\u0000\u0000"+ + "\u055f\u0560\u0007\u0005\u0000\u0000\u0560\u0561\u0007\u0006\u0000\u0000"+ + "\u0561\u0562\u0007\u0000\u0000\u0000\u0562\u0563\u0007\u0015\u0000\u0000"+ + "\u0563\u0564\u0007\u0005\u0000\u0000\u0564\u009e\u0001\u0000\u0000\u0000"+ + "\u0565\u0566\u0007\u0015\u0000\u0000\u0566\u0567\u0007\u0003\u0000\u0000"+ + "\u0567\u0568\u0007\r\u0000\u0000\u0568\u0569\u0007\u0005\u0000\u0000\u0569"+ + "\u056a\u0007\u0004\u0000\u0000\u056a\u00a0\u0001\u0000\u0000\u0000\u056b"+ + "\u056c\u0007\u0015\u0000\u0000\u056c\u056d\u0007\r\u0000\u0000\u056d\u056e"+ + "\u0007\n\u0000\u0000\u056e\u056f\u0007\u0003\u0000\u0000\u056f\u0570\u0007"+ + "\u0004\u0000\u0000\u0570\u0571\u0007\u0005\u0000\u0000\u0571\u0572\u0007"+ + "\u0015\u0000\u0000\u0572\u0573\u0007\u0004\u0000\u0000\u0573\u00a2\u0001"+ + "\u0000\u0000\u0000\u0574\u0575\u0007\u0015\u0000\u0000\u0575\u0576\u0007"+ + "\r\u0000\u0000\u0576\u0577\u0007\u0003\u0000\u0000\u0577\u0578\u0007\u0003"+ + "\u0000\u0000\u0578\u0579\u0007\u0004\u0000\u0000\u0579\u057a\u0007\u0015"+ + "\u0000\u0000\u057a\u057b\u0007\u0006\u0000\u0000\u057b\u057c\u0005_\u0000"+ + "\u0000\u057c\u057d\u0007\u0003\u0000\u0000\u057d\u057e\u0007\u0000\u0000"+ + "\u0000\u057e\u057f\u0007\u0005\u0000\u0000\u057f\u0580\u0007\u0006\u0000"+ + "\u0000\u0580\u00a4\u0001\u0000\u0000\u0000\u0581\u0582\u0007\u0015\u0000"+ + "\u0000\u0582\u0583\u0007\r\u0000\u0000\u0583\u0584\u0007\u0001\u0000\u0000"+ + "\u0584\u0585\u0007\u0001\u0000\u0000\u0585\u0586\u0007\u0000\u0000\u0000"+ + "\u0586\u0587\u0007\u0006\u0000\u0000\u0587\u00a6\u0001\u0000\u0000\u0000"+ + "\u0588\u0589\u0007\u0015\u0000\u0000\u0589\u058a\u0007\r\u0000\u0000\u058a"+ + "\u058b\u0007\u0002\u0000\u0000\u058b\u058c\u0007\u0017\u0000\u0000\u058c"+ + "\u00a8\u0001\u0000\u0000\u0000\u058d\u058e\u0007\u0015\u0000\u0000\u058e"+ + "\u058f\u0007\r\u0000\u0000\u058f\u0590\u0007\u0005\u0000\u0000\u0590\u00aa"+ + "\u0001\u0000\u0000\u0000\u0591\u0592\u0007\u0015\u0000\u0000\u0592\u0593"+ + "\u0007\r\u0000\u0000\u0593\u0594\u0007\u0005\u0000\u0000\u0594\u0595\u0007"+ + "\u001a\u0000\u0000\u0595\u00ac\u0001\u0000\u0000\u0000\u0596\u0597\u0007"+ + "\u0015\u0000\u0000\u0597\u0598\u0007\r\u0000\u0000\u0598\u0599\u0007\u0006"+ + "\u0000\u0000\u0599\u00ae\u0001\u0000\u0000\u0000\u059a\u059b\u0007\u0015"+ + "\u0000\u0000\u059b\u059c\u0007\r\u0000\u0000\u059c\u059d\u0007\b\u0000"+ + "\u0000\u059d\u059e\u0007\u000b\u0000\u0000\u059e\u059f\u0007\u0006\u0000"+ + "\u0000\u059f\u00b0\u0001\u0000\u0000\u0000\u05a0\u05a1\u0007\u0015\u0000"+ + "\u0000\u05a1\u05a2\u0007\u0007\u0000\u0000\u05a2\u05a3\u0007\u0004\u0000"+ + "\u0000\u05a3\u05a4\u0007\n\u0000\u0000\u05a4\u05a5\u0007\u0006\u0000\u0000"+ + "\u05a5\u05a6\u0007\u0004\u0000\u0000\u05a6\u00b2\u0001\u0000\u0000\u0000"+ + "\u05a7\u05a8\u0007\u0015\u0000\u0000\u05a8\u05a9\u0007\b\u0000\u0000\u05a9"+ + "\u05aa\u0007\u0007\u0000\u0000\u05aa\u05ab\u0007\u0007\u0000\u0000\u05ab"+ + "\u05ac\u0007\u0004\u0000\u0000\u05ac\u05ad\u0007\u000b\u0000\u0000\u05ad"+ + "\u05ae\u0007\u0006\u0000\u0000\u05ae\u05af\u0005_\u0000\u0000\u05af\u05b0"+ + "\u0007\u0016\u0000\u0000\u05b0\u05b1\u0007\n\u0000\u0000\u05b1\u05b2\u0007"+ + "\u0006\u0000\u0000\u05b2\u05b3\u0007\u0004\u0000\u0000\u05b3\u00b4\u0001"+ + "\u0000\u0000\u0000\u05b4\u05b5\u0007\u0015\u0000\u0000\u05b5\u05b6\u0007"+ + "\b\u0000\u0000\u05b6\u05b7\u0007\u0007\u0000\u0000\u05b7\u05b8\u0007\u0007"+ + "\u0000\u0000\u05b8\u05b9\u0007\u0004\u0000\u0000\u05b9\u05ba\u0007\u000b"+ + "\u0000\u0000\u05ba\u05bb\u0007\u0006\u0000\u0000\u05bb\u05bc\u0005_\u0000"+ + "\u0000\u05bc\u05bd"; + private static final String _serializedATNSegment1 = + "\u0007\u0018\u0000\u0000\u05bd\u05be\u0007\u0007\u0000\u0000\u05be\u05bf"+ + "\u0007\n\u0000\u0000\u05bf\u05c0\u0007\u0002\u0000\u0000\u05c0\u05c1\u0007"+ + "\u001a\u0000\u0000\u05c1\u00b6\u0001\u0000\u0000\u0000\u05c2\u05c3\u0007"+ + "\u0015\u0000\u0000\u05c3\u05c4\u0007\b\u0000\u0000\u05c4\u05c5\u0007\u0007"+ + "\u0000\u0000\u05c5\u05c6\u0007\u0007\u0000\u0000\u05c6\u05c7\u0007\u0004"+ + "\u0000\u0000\u05c7\u05c8\u0007\u000b\u0000\u0000\u05c8\u05c9\u0007\u0006"+ + "\u0000\u0000\u05c9\u05ca\u0005_\u0000\u0000\u05ca\u05cb\u0007\u0002\u0000"+ + "\u0000\u05cb\u05cc\u0007\u0007\u0000\u0000\u05cc\u05cd\u0007\r\u0000\u0000"+ + "\u05cd\u05ce\u0007\u0002\u0000\u0000\u05ce\u05cf\u0007\u0004\u0000\u0000"+ + "\u05cf\u05d0\u0007\u0007\u0000\u0000\u05d0\u05d1\u0007\u0006\u0000\u0000"+ + "\u05d1\u05d2\u0007\u0017\u0000\u0000\u05d2\u05d3\u0005_\u0000\u0000\u05d3"+ + "\u05d4\u0007\u0018\u0000\u0000\u05d4\u05d5\u0007\u0007\u0000\u0000\u05d5"+ + "\u05d6\u0007\n\u0000\u0000\u05d6\u05d7\u0007\u0002\u0000\u0000\u05d7\u05d8"+ + "\u0007\u001a\u0000\u0000\u05d8\u00b8\u0001\u0000\u0000\u0000\u05d9\u05da"+ + "\u0007\u0015\u0000\u0000\u05da\u05db\u0007\b\u0000\u0000\u05db\u05dc\u0007"+ + "\u0007\u0000\u0000\u05dc\u05dd\u0007\u0007\u0000\u0000\u05dd\u05de\u0007"+ + "\u0004\u0000\u0000\u05de\u05df\u0007\u000b\u0000\u0000\u05df\u05e0\u0007"+ + "\u0006\u0000\u0000\u05e0\u05e1\u0005_\u0000\u0000\u05e1\u05e2\u0007\u0005"+ + "\u0000\u0000\u05e2\u05e3\u0007\u0015\u0000\u0000\u05e3\u05e4\u0007\u001a"+ + "\u0000\u0000\u05e4\u05e5\u0007\u0004\u0000\u0000\u05e5\u05e6\u0007\u0001"+ + "\u0000\u0000\u05e6\u05e7\u0007\n\u0000\u0000\u05e7\u00ba\u0001\u0000\u0000"+ + "\u0000\u05e8\u05e9\u0007\u0015\u0000\u0000\u05e9\u05ea\u0007\b\u0000\u0000"+ + "\u05ea\u05eb\u0007\u0007\u0000\u0000\u05eb\u05ec\u0007\u0007\u0000\u0000"+ + "\u05ec\u05ed\u0007\u0004\u0000\u0000\u05ed\u05ee\u0007\u000b\u0000\u0000"+ + "\u05ee\u05ef\u0007\u0006\u0000\u0000\u05ef\u05f0\u0005_\u0000\u0000\u05f0"+ + "\u05f1\u0007\u0006\u0000\u0000\u05f1\u05f2\u0007\u0000\u0000\u0000\u05f2"+ + "\u05f3\u0007\u0001\u0000\u0000\u05f3\u05f4\u0007\u0004\u0000\u0000\u05f4"+ + "\u00bc\u0001\u0000\u0000\u0000\u05f5\u05f6\u0007\u0015\u0000\u0000\u05f6"+ + "\u05f7\u0007\b\u0000\u0000\u05f7\u05f8\u0007\u0007\u0000\u0000\u05f8\u05f9"+ + "\u0007\u0007\u0000\u0000\u05f9\u05fa\u0007\u0004\u0000\u0000\u05fa\u05fb"+ + "\u0007\u000b\u0000\u0000\u05fb\u05fc\u0007\u0006\u0000\u0000\u05fc\u05fd"+ + "\u0005_\u0000\u0000\u05fd\u05fe\u0007\u0006\u0000\u0000\u05fe\u05ff\u0007"+ + "\u0000\u0000\u0000\u05ff\u0600\u0007\u0001\u0000\u0000\u0600\u0601\u0007"+ + "\u0004\u0000\u0000\u0601\u0602\u0007\u0005\u0000\u0000\u0602\u0603\u0007"+ + "\u0006\u0000\u0000\u0603\u0604\u0007\n\u0000\u0000\u0604\u0605\u0007\u0001"+ + "\u0000\u0000\u0605\u0606\u0007\u0002\u0000\u0000\u0606\u00be\u0001\u0000"+ + "\u0000\u0000\u0607\u0608\u0007\u0016\u0000\u0000\u0608\u0609\u0007\n\u0000"+ + "\u0000\u0609\u060a\u0007\u0006\u0000\u0000\u060a\u060b\u0007\u0004\u0000"+ + "\u0000\u060b\u00c0\u0001\u0000\u0000\u0000\u060c\u060d\u0007\u0016\u0000"+ + "\u0000\u060d\u060e\u0007\n\u0000\u0000\u060e\u060f\u0007\u0006\u0000\u0000"+ + "\u060f\u0610\u0007\u0004\u0000\u0000\u0610\u0611\u0007\u0006\u0000\u0000"+ + "\u0611\u0612\u0007\u0000\u0000\u0000\u0612\u0613\u0007\u0001\u0000\u0000"+ + "\u0613\u0614\u0007\u0004\u0000\u0000\u0614\u00c2\u0001\u0000\u0000\u0000"+ + "\u0615\u0616\u0007\u0016\u0000\u0000\u0616\u0617\u0007\n\u0000\u0000\u0617"+ + "\u0618\u0007\u0017\u0000\u0000\u0618\u00c4\u0001\u0000\u0000\u0000\u0619"+ + "\u061a\u0007\u0016\u0000\u0000\u061a\u061b\u0007\u0004\u0000\u0000\u061b"+ + "\u061c\u0007\u0015\u0000\u0000\u061c\u00c6\u0001\u0000\u0000\u0000\u061d"+ + "\u061e\u0007\u0016\u0000\u0000\u061e\u061f\u0007\u0004\u0000\u0000\u061f"+ + "\u0620\u0007\u0015\u0000\u0000\u0620\u0621\u0007\u0000\u0000\u0000\u0621"+ + "\u0622\u0007\u0001\u0000\u0000\u0622\u0623\u0007\n\u0000\u0000\u0623\u0624"+ + "\u0007\u0003\u0000\u0000\u0624\u00c8\u0001\u0000\u0000\u0000\u0625\u0626"+ + "\u0007\u0016\u0000\u0000\u0626\u0627\u0007\u0004\u0000\u0000\u0627\u0628"+ + "\u0007\u0018\u0000\u0000\u0628\u0629\u0007\u0007\u0000\u0000\u0629\u062a"+ + "\u0007\u0004\u0000\u0000\u062a\u062b\u0007\u0004\u0000\u0000\u062b\u062c"+ + "\u0007\u0005\u0000\u0000\u062c\u00ca\u0001\u0000\u0000\u0000\u062d\u062e"+ + "\u0007\u0016\u0000\u0000\u062e\u062f\u0007\u0004\u0000\u0000\u062f\u0630"+ + "\u0007\u0003\u0000\u0000\u0630\u0631\u0007\u0004\u0000\u0000\u0631\u0632"+ + "\u0007\u0006\u0000\u0000\u0632\u0633\u0007\u0004\u0000\u0000\u0633\u00cc"+ + "\u0001\u0000\u0000\u0000\u0634\u0635\u0007\u0016\u0000\u0000\u0635\u0636"+ + "\u0007\u0004\u0000\u0000\u0636\u0637\u0007\u0005\u0000\u0000\u0637\u0638"+ + "\u0007\u0015\u0000\u0000\u0638\u00ce\u0001\u0000\u0000\u0000\u0639\u063a"+ + "\u0007\u0016\u0000\u0000\u063a\u063b\u0007\u0004\u0000\u0000\u063b\u063c"+ + "\u0007\u0005\u0000\u0000\u063c\u063d\u0007\u0015\u0000\u0000\u063d\u063e"+ + "\u0007\u0004\u0000\u0000\u063e\u063f\u0007\u000b\u0000\u0000\u063f\u0640"+ + "\u0007\u0016\u0000\u0000\u0640\u0641\u0007\u0000\u0000\u0000\u0641\u0642"+ + "\u0007\u000b\u0000\u0000\u0642\u0643\u0007\u0018\u0000\u0000\u0643\u00d0"+ + "\u0001\u0000\u0000\u0000\u0644\u0645\u0007\u0016\u0000\u0000\u0645\u0646"+ + "\u0007\u0004\u0000\u0000\u0646\u0647\u0007\u0006\u0000\u0000\u0647\u0648"+ + "\u0007\n\u0000\u0000\u0648\u0649\u0007\u0015\u0000\u0000\u0649\u064a\u0007"+ + "\u001a\u0000\u0000\u064a\u00d2\u0001\u0000\u0000\u0000\u064b\u064c\u0007"+ + "\u0016\u0000\u0000\u064c\u064d\u0007\u0000\u0000\u0000\u064d\u064e\u0007"+ + "\u0005\u0000\u0000\u064e\u064f\u0007\u0006\u0000\u0000\u064f\u0650\u0007"+ + "\u0000\u0000\u0000\u0650\u0651\u0007\u000b\u0000\u0000\u0651\u0652\u0007"+ + "\u0015\u0000\u0000\u0652\u0653\u0007\u0006\u0000\u0000\u0653\u00d4\u0001"+ + "\u0000\u0000\u0000\u0654\u0655\u0007\u0016\u0000\u0000\u0655\u0656\u0007"+ + "\r\u0000\u0000\u0656\u0657\u0007\b\u0000\u0000\u0657\u0658\u0007\u0012"+ + "\u0000\u0000\u0658\u0659\u0007\u0003\u0000\u0000\u0659\u065a\u0007\u0004"+ + "\u0000\u0000\u065a\u00d6\u0001\u0000\u0000\u0000\u065b\u065c\u0007\u0016"+ + "\u0000\u0000\u065c\u065d\u0007\u0007\u0000\u0000\u065d\u065e\u0007\r\u0000"+ + "\u0000\u065e\u065f\u0007\u0002\u0000\u0000\u065f\u00d8\u0001\u0000\u0000"+ + "\u0000\u0660\u0661\u0007\u0016\u0000\u0000\u0661\u0662\u0007\b\u0000\u0000"+ + "\u0662\u0663\u0007\u0007\u0000\u0000\u0663\u0664\u0007\n\u0000\u0000\u0664"+ + "\u0665\u0007\u0006\u0000\u0000\u0665\u0666\u0007\u0000\u0000\u0000\u0666"+ + "\u0667\u0007\r\u0000\u0000\u0667\u0668\u0007\u000b\u0000\u0000\u0668\u00da"+ + "\u0001\u0000\u0000\u0000\u0669\u066a\u0007\u0016\u0000\u0000\u066a\u066b"+ + "\u0007\b\u0000\u0000\u066b\u066c\u0007\u0007\u0000\u0000\u066c\u066d\u0007"+ + "\n\u0000\u0000\u066d\u066e\u0007\u0006\u0000\u0000\u066e\u066f\u0007\u0000"+ + "\u0000\u0000\u066f\u0670\u0007\r\u0000\u0000\u0670\u0671\u0007\u000b\u0000"+ + "\u0000\u0671\u0672\u0005_\u0000\u0000\u0672\u0673\u0007\u0012\u0000\u0000"+ + "\u0673\u0674\u0007\u0004\u0000\u0000\u0674\u0675\u0007\u0006\u0000\u0000"+ + "\u0675\u0676\u0007\u000e\u0000\u0000\u0676\u0677\u0007\u0004\u0000\u0000"+ + "\u0677\u0678\u0007\u0004\u0000\u0000\u0678\u0679\u0007\u000b\u0000\u0000"+ + "\u0679\u00dc\u0001\u0000\u0000\u0000\u067a\u067b\u0007\u0004\u0000\u0000"+ + "\u067b\u067c\u0007\u0003\u0000\u0000\u067c\u067d\u0007\u0004\u0000\u0000"+ + "\u067d\u067e\u0007\u0001\u0000\u0000\u067e\u067f\u0007\u0004\u0000\u0000"+ + "\u067f\u0680\u0007\u000b\u0000\u0000\u0680\u0681\u0007\u0006\u0000\u0000"+ + "\u0681\u0682\u0005_\u0000\u0000\u0682\u0683\u0007\u0000\u0000\u0000\u0683"+ + "\u0684\u0007\u0016\u0000\u0000\u0684\u00de\u0001\u0000\u0000\u0000\u0685"+ + "\u0686\u0007\u0004\u0000\u0000\u0686\u0687\u0007\u0003\u0000\u0000\u0687"+ + "\u0688\u0007\u0005\u0000\u0000\u0688\u0689\u0007\u0004\u0000\u0000\u0689"+ + "\u00e0\u0001\u0000\u0000\u0000\u068a\u068b\u0007\u0004\u0000\u0000\u068b"+ + "\u068c\u0007\u000b\u0000\u0000\u068c\u068d\u0007\u0016\u0000\u0000\u068d"+ + "\u00e2\u0001\u0000\u0000\u0000\u068e\u068f\u0007\u0004\u0000\u0000\u068f"+ + "\u0690\u0007\u0013\u0000\u0000\u0690\u0691\u0007\u0015\u0000\u0000\u0691"+ + "\u0692\u0007\u0004\u0000\u0000\u0692\u0693\u0007\u0002\u0000\u0000\u0693"+ + "\u0694\u0007\u0006\u0000\u0000\u0694\u00e4\u0001\u0000\u0000\u0000\u0695"+ + "\u0696\u0007\u0004\u0000\u0000\u0696\u0697\u0007\u0013\u0000\u0000\u0697"+ + "\u0698\u0007\u0000\u0000\u0000\u0698\u0699\u0007\u0005\u0000\u0000\u0699"+ + "\u069a\u0007\u0006\u0000\u0000\u069a\u069b\u0007\u0005\u0000\u0000\u069b"+ + "\u00e6\u0001\u0000\u0000\u0000\u069c\u069d\u0007\u0004\u0000\u0000\u069d"+ + "\u069e\u0007\u0013\u0000\u0000\u069e\u069f\u0007\u0002\u0000\u0000\u069f"+ + "\u00e8\u0001\u0000\u0000\u0000\u06a0\u06a1\u0007\t\u0000\u0000\u06a1\u06a2"+ + "\u0007\u0000\u0000\u0000\u06a2\u06a3\u0007\u0003\u0000\u0000\u06a3\u06a4"+ + "\u0007\u0006\u0000\u0000\u06a4\u06a5\u0007\u0004\u0000\u0000\u06a5\u06a6"+ + "\u0007\u0007\u0000\u0000\u06a6\u00ea\u0001\u0000\u0000\u0000\u06a7\u06a8"+ + "\u0007\t\u0000\u0000\u06a8\u06a9\u0007\u0000\u0000\u0000\u06a9\u06aa\u0007"+ + "\u000b\u0000\u0000\u06aa\u06ab\u0007\u0000\u0000\u0000\u06ab\u06ac\u0007"+ + "\u0005\u0000\u0000\u06ac\u06ad\u0007\u001a\u0000\u0000\u06ad\u00ec\u0001"+ + "\u0000\u0000\u0000\u06ae\u06af\u0007\t\u0000\u0000\u06af\u06b0\u0007\u0003"+ + "\u0000\u0000\u06b0\u06b1\u0007\r\u0000\u0000\u06b1\u06b2\u0007\n\u0000"+ + "\u0000\u06b2\u06b3\u0007\u0006\u0000\u0000\u06b3\u00ee\u0001\u0000\u0000"+ + "\u0000\u06b4\u06b5\u0007\t\u0000\u0000\u06b5\u06b6\u0007\u0003\u0000\u0000"+ + "\u06b6\u06b7\u0007\r\u0000\u0000\u06b7\u06b8\u0007\n\u0000\u0000\u06b8"+ + "\u06b9\u0007\u0006\u0000\u0000\u06b9\u06ba\u00051\u0000\u0000\u06ba\u06bb"+ + "\u00056\u0000\u0000\u06bb\u00f0\u0001\u0000\u0000\u0000\u06bc\u06bd\u0007"+ + "\t\u0000\u0000\u06bd\u06be\u0007\u0003\u0000\u0000\u06be\u06bf\u0007\r"+ + "\u0000\u0000\u06bf\u06c0\u0007\n\u0000\u0000\u06c0\u06c1\u0007\u0006\u0000"+ + "\u0000\u06c1\u06c2\u00053\u0000\u0000\u06c2\u06c3\u00052\u0000\u0000\u06c3"+ + "\u00f2\u0001\u0000\u0000\u0000\u06c4\u06c5\u0007\t\u0000\u0000\u06c5\u06c6"+ + "\u0007\u0003\u0000\u0000\u06c6\u06c7\u0007\r\u0000\u0000\u06c7\u06c8\u0007"+ + "\n\u0000\u0000\u06c8\u06c9\u0007\u0006\u0000\u0000\u06c9\u06ca\u00056"+ + "\u0000\u0000\u06ca\u06cb\u00054\u0000\u0000\u06cb\u00f4\u0001\u0000\u0000"+ + "\u0000\u06cc\u06cd\u0007\t\u0000\u0000\u06cd\u06ce\u0007\u0003\u0000\u0000"+ + "\u06ce\u06cf\u0007\r\u0000\u0000\u06cf\u06d0\u0007\n\u0000\u0000\u06d0"+ + "\u06d1\u0007\u0006\u0000\u0000\u06d1\u06d2\u00051\u0000\u0000\u06d2\u06d3"+ + "\u00052\u0000\u0000\u06d3\u06d4\u00058\u0000\u0000\u06d4\u00f6\u0001\u0000"+ + "\u0000\u0000\u06d5\u06d6\u0007\t\u0000\u0000\u06d6\u06d7\u0007\u0003\u0000"+ + "\u0000\u06d7\u06d8\u0007\r\u0000\u0000\u06d8\u06d9\u0007\n\u0000\u0000"+ + "\u06d9\u06da\u0007\u0006\u0000\u0000\u06da\u06db\u00052\u0000\u0000\u06db"+ + "\u06dc\u00055\u0000\u0000\u06dc\u06dd\u00056\u0000\u0000\u06dd\u00f8\u0001"+ + "\u0000\u0000\u0000\u06de\u06df\u0007\t\u0000\u0000\u06df\u06e0\u0007\u0003"+ + "\u0000\u0000\u06e0\u06e1\u0007\r\u0000\u0000\u06e1\u06e2\u0007\r\u0000"+ + "\u0000\u06e2\u06e3\u0007\u0007\u0000\u0000\u06e3\u00fa\u0001\u0000\u0000"+ + "\u0000\u06e4\u06e5\u0007\t\u0000\u0000\u06e5\u06e6\u0007\r\u0000\u0000"+ + "\u06e6\u06e7\u0007\u0007\u0000\u0000\u06e7\u00fc\u0001\u0000\u0000\u0000"+ + "\u06e8\u06e9\u0007\t\u0000\u0000\u06e9\u06ea\u0007\u0007\u0000\u0000\u06ea"+ + "\u06eb\u0007\r\u0000\u0000\u06eb\u06ec\u0007\u0001\u0000\u0000\u06ec\u00fe"+ + "\u0001\u0000\u0000\u0000\u06ed\u06ee\u0007\u0018\u0000\u0000\u06ee\u06ef"+ + "\u0007\u0007\u0000\u0000\u06ef\u06f0\u0007\r\u0000\u0000\u06f0\u06f1\u0007"+ + "\b\u0000\u0000\u06f1\u06f2\u0007\u0002\u0000\u0000\u06f2\u0100\u0001\u0000"+ + "\u0000\u0000\u06f3\u06f4\u0007\u001a\u0000\u0000\u06f4\u06f5\u0007\n\u0000"+ + "\u0000\u06f5\u06f6\u0007\u0019\u0000\u0000\u06f6\u06f7\u0007\u0000\u0000"+ + "\u0000\u06f7\u06f8\u0007\u000b\u0000\u0000\u06f8\u06f9\u0007\u0018\u0000"+ + "\u0000\u06f9\u0102\u0001\u0000\u0000\u0000\u06fa\u06fb\u0007\u001a\u0000"+ + "\u0000\u06fb\u06fc\u0007\r\u0000\u0000\u06fc\u06fd\u0007\u0001\u0000\u0000"+ + "\u06fd\u06fe\u0007\u0004\u0000\u0000\u06fe\u06ff\u0005_\u0000\u0000\u06ff"+ + "\u0700\u0007\u0018\u0000\u0000\u0700\u0701\u0007\u0007\u0000\u0000\u0701"+ + "\u0702\u0007\n\u0000\u0000\u0702\u0703\u0007\u0002\u0000\u0000\u0703\u0704"+ + "\u0007\u001a\u0000\u0000\u0704\u0104\u0001\u0000\u0000\u0000\u0705\u0706"+ + "\u0007\u001a\u0000\u0000\u0706\u0707\u0007\r\u0000\u0000\u0707\u0708\u0007"+ + "\u0001\u0000\u0000\u0708\u0709\u0007\u0004\u0000\u0000\u0709\u070a\u0005"+ + "_\u0000\u0000\u070a\u070b\u0007\u0002\u0000\u0000\u070b\u070c\u0007\u0007"+ + "\u0000\u0000\u070c\u070d\u0007\r\u0000\u0000\u070d\u070e\u0007\u0002\u0000"+ + "\u0000\u070e\u070f\u0007\u0004\u0000\u0000\u070f\u0710\u0007\u0007\u0000"+ + "\u0000\u0710\u0711\u0007\u0006\u0000\u0000\u0711\u0712\u0007\u0017\u0000"+ + "\u0000\u0712\u0713\u0005_\u0000\u0000\u0713\u0714\u0007\u0018\u0000\u0000"+ + "\u0714\u0715\u0007\u0007\u0000\u0000\u0715\u0716\u0007\n\u0000\u0000\u0716"+ + "\u0717\u0007\u0002\u0000\u0000\u0717\u0718\u0007\u001a\u0000\u0000\u0718"+ + "\u0106\u0001\u0000\u0000\u0000\u0719\u071a\u0007\u001a\u0000\u0000\u071a"+ + "\u071b\u0007\r\u0000\u0000\u071b\u071c\u0007\u0001\u0000\u0000\u071c\u071d"+ + "\u0007\u0004\u0000\u0000\u071d\u071e\u0005_\u0000\u0000\u071e\u071f\u0007"+ + "\u0005\u0000\u0000\u071f\u0720\u0007\u0015\u0000\u0000\u0720\u0721\u0007"+ + "\u001a\u0000\u0000\u0721\u0722\u0007\u0004\u0000\u0000\u0722\u0723\u0007"+ + "\u0001\u0000\u0000\u0723\u0724\u0007\n\u0000\u0000\u0724\u0108\u0001\u0000"+ + "\u0000\u0000\u0725\u0726\u0007\u001a\u0000\u0000\u0726\u0727\u0007\r\u0000"+ + "\u0000\u0727\u0728\u0007\b\u0000\u0000\u0728\u0729\u0007\u0007\u0000\u0000"+ + "\u0729\u010a\u0001\u0000\u0000\u0000\u072a\u072b\u0007\u0000\u0000\u0000"+ + "\u072b\u072c\u0007\t\u0000\u0000\u072c\u010c\u0001\u0000\u0000\u0000\u072d"+ + "\u072e\u0007\u0000\u0000\u0000\u072e\u072f\u0007\u000b\u0000\u0000\u072f"+ + "\u010e\u0001\u0000\u0000\u0000\u0730\u0731\u0007\u0000\u0000\u0000\u0731"+ + "\u0732\u0007\u000b\u0000\u0000\u0732\u0733\u0007\u0005\u0000\u0000\u0733"+ + "\u0734\u0007\u0004\u0000\u0000\u0734\u0735\u0007\u0007\u0000\u0000\u0735"+ + "\u0736\u0007\u0006\u0000\u0000\u0736\u0110\u0001\u0000\u0000\u0000\u0737"+ + "\u0738\u0007\u0000\u0000\u0000\u0738\u0739\u0007\u000b\u0000\u0000\u0739"+ + "\u073a\u0007\u0006\u0000\u0000\u073a\u0112\u0001\u0000\u0000\u0000\u073b"+ + "\u073c\u0007\u0000\u0000\u0000\u073c\u073d\u0007\u000b\u0000\u0000\u073d"+ + "\u073e\u0007\u0006\u0000\u0000\u073e\u073f\u0007\u0004\u0000\u0000\u073f"+ + "\u0740\u0007\u0018\u0000\u0000\u0740\u0741\u0007\u0004\u0000\u0000\u0741"+ + "\u0742\u0007\u0007\u0000\u0000\u0742\u0114\u0001\u0000\u0000\u0000\u0743"+ + "\u0744\u0007\u0000\u0000\u0000\u0744\u0745\u0007\u000b\u0000\u0000\u0745"+ + "\u0746\u0007\u0006\u0000\u0000\u0746\u0747\u00058\u0000\u0000\u0747\u0116"+ + "\u0001\u0000\u0000\u0000\u0748\u0749\u0007\u0000\u0000\u0000\u0749\u074a"+ + "\u0007\u000b\u0000\u0000\u074a\u074b\u0007\u0006\u0000\u0000\u074b\u074c"+ + "\u0007\u0004\u0000\u0000\u074c\u074d\u0007\u0018\u0000\u0000\u074d\u074e"+ + "\u0007\u0004\u0000\u0000\u074e\u074f\u0007\u0007\u0000\u0000\u074f\u0750"+ + "\u00058\u0000\u0000\u0750\u0118\u0001\u0000\u0000\u0000\u0751\u0752\u0007"+ + "\u0000\u0000\u0000\u0752\u0753\u0007\u000b\u0000\u0000\u0753\u0754\u0007"+ + "\u0006\u0000\u0000\u0754\u0755\u00051\u0000\u0000\u0755\u0756\u00056\u0000"+ + "\u0000\u0756\u011a\u0001\u0000\u0000\u0000\u0757\u0758\u0007\u0000\u0000"+ + "\u0000\u0758\u0759\u0007\u000b\u0000\u0000\u0759\u075a\u0007\u0006\u0000"+ + "\u0000\u075a\u075b\u0007\u0004\u0000\u0000\u075b\u075c\u0007\u0018\u0000"+ + "\u0000\u075c\u075d\u0007\u0004\u0000\u0000\u075d\u075e\u0007\u0007\u0000"+ + "\u0000\u075e\u075f\u00051\u0000\u0000\u075f\u0760\u00056\u0000\u0000\u0760"+ + "\u011c\u0001\u0000\u0000\u0000\u0761\u0762\u0007\u0000\u0000\u0000\u0762"+ + "\u0763\u0007\u000b\u0000\u0000\u0763\u0764\u0007\u0006\u0000\u0000\u0764"+ + "\u0765\u00053\u0000\u0000\u0765\u0766\u00052\u0000\u0000\u0766\u011e\u0001"+ + "\u0000\u0000\u0000\u0767\u0768\u0007\u0000\u0000\u0000\u0768\u0769\u0007"+ + "\u000b\u0000\u0000\u0769\u076a\u0007\u0006\u0000\u0000\u076a\u076b\u0007"+ + "\u0004\u0000\u0000\u076b\u076c\u0007\u0018\u0000\u0000\u076c\u076d\u0007"+ + "\u0004\u0000\u0000\u076d\u076e\u0007\u0007\u0000\u0000\u076e\u076f\u0005"+ + "3\u0000\u0000\u076f\u0770\u00052\u0000\u0000\u0770\u0120\u0001\u0000\u0000"+ + "\u0000\u0771\u0772\u0007\u0000\u0000\u0000\u0772\u0773\u0007\u000b\u0000"+ + "\u0000\u0773\u0774\u0007\u0006\u0000\u0000\u0774\u0775\u00056\u0000\u0000"+ + "\u0775\u0776\u00054\u0000\u0000\u0776\u0122\u0001\u0000\u0000\u0000\u0777"+ + "\u0778\u0007\u0000\u0000\u0000\u0778\u0779\u0007\u000b\u0000\u0000\u0779"+ + "\u077a\u0007\u0006\u0000\u0000\u077a\u077b\u0007\u0004\u0000\u0000\u077b"+ + "\u077c\u0007\u0018\u0000\u0000\u077c\u077d\u0007\u0004\u0000\u0000\u077d"+ + "\u077e\u0007\u0007\u0000\u0000\u077e\u077f\u00056\u0000\u0000\u077f\u0780"+ + "\u00054\u0000\u0000\u0780\u0124\u0001\u0000\u0000\u0000\u0781\u0782\u0007"+ + "\u0000\u0000\u0000\u0782\u0783\u0007\u000b\u0000\u0000\u0783\u0784\u0007"+ + "\u0006\u0000\u0000\u0784\u0785\u00051\u0000\u0000\u0785\u0786\u00052\u0000"+ + "\u0000\u0786\u0787\u00058\u0000\u0000\u0787\u0126\u0001\u0000\u0000\u0000"+ + "\u0788\u0789\u0007\u0000\u0000\u0000\u0789\u078a\u0007\u000b\u0000\u0000"+ + "\u078a\u078b\u0007\u0006\u0000\u0000\u078b\u078c\u0007\u0004\u0000\u0000"+ + "\u078c\u078d\u0007\u0018\u0000\u0000\u078d\u078e\u0007\u0004\u0000\u0000"+ + "\u078e\u078f\u0007\u0007\u0000\u0000\u078f\u0790\u00051\u0000\u0000\u0790"+ + "\u0791\u00052\u0000\u0000\u0791\u0792\u00058\u0000\u0000\u0792\u0128\u0001"+ + "\u0000\u0000\u0000\u0793\u0794\u0007\u0000\u0000\u0000\u0794\u0795\u0007"+ + "\u000b\u0000\u0000\u0795\u0796\u0007\u0006\u0000\u0000\u0796\u0797\u0005"+ + "2\u0000\u0000\u0797\u0798\u00055\u0000\u0000\u0798\u0799\u00056\u0000"+ + "\u0000\u0799\u012a\u0001\u0000\u0000\u0000\u079a\u079b\u0007\u0000\u0000"+ + "\u0000\u079b\u079c\u0007\u000b\u0000\u0000\u079c\u079d\u0007\u0006\u0000"+ + "\u0000\u079d\u079e\u0007\u0004\u0000\u0000\u079e\u079f\u0007\u0018\u0000"+ + "\u0000\u079f\u07a0\u0007\u0004\u0000\u0000\u07a0\u07a1\u0007\u0007\u0000"+ + "\u0000\u07a1\u07a2\u00052\u0000\u0000\u07a2\u07a3\u00055\u0000\u0000\u07a3"+ + "\u07a4\u00056\u0000\u0000\u07a4\u012c\u0001\u0000\u0000\u0000\u07a5\u07a6"+ + "\u0007\u0000\u0000\u0000\u07a6\u07a7\u0007\u000b\u0000\u0000\u07a7\u07a8"+ + "\u0007\u0006\u0000\u0000\u07a8\u07a9\u0007\u0004\u0000\u0000\u07a9\u07aa"+ + "\u0007\u0007\u0000\u0000\u07aa\u07ab\u0007\u0005\u0000\u0000\u07ab\u07ac"+ + "\u0007\u0004\u0000\u0000\u07ac\u07ad\u0007\u0015\u0000\u0000\u07ad\u07ae"+ + "\u0007\u0006\u0000\u0000\u07ae\u012e\u0001\u0000\u0000\u0000\u07af\u07b0"+ + "\u0007\u0000\u0000\u0000\u07b0\u07b1\u0007\u000b\u0000\u0000\u07b1\u07b2"+ + "\u0007\u0006\u0000\u0000\u07b2\u07b3\u0007\u0004\u0000\u0000\u07b3\u07b4"+ + "\u0007\u0007\u0000\u0000\u07b4\u07b5\u0007\u0019\u0000\u0000\u07b5\u07b6"+ + "\u0007\n\u0000\u0000\u07b6\u07b7\u0007\u0003\u0000\u0000\u07b7\u0130\u0001"+ + "\u0000\u0000\u0000\u07b8\u07b9\u0007\u0000\u0000\u0000\u07b9\u07ba\u0007"+ + "\u0005\u0000\u0000\u07ba\u0132\u0001\u0000\u0000\u0000\u07bb\u07bc\u0007"+ + "\u0003\u0000\u0000\u07bc\u07bd\u0007\u0004\u0000\u0000\u07bd\u07be\u0007"+ + "\n\u0000\u0000\u07be\u07bf\u0007\u0016\u0000\u0000\u07bf\u07c0\u0007\u0000"+ + "\u0000\u0000\u07c0\u07c1\u0007\u000b\u0000\u0000\u07c1\u07c2\u0007\u0018"+ + "\u0000\u0000\u07c2\u0134\u0001\u0000\u0000\u0000\u07c3\u07c4\u0007\u0003"+ + "\u0000\u0000\u07c4\u07c5\u0007\u0004\u0000\u0000\u07c5\u07c6\u0007\t\u0000"+ + "\u0000\u07c6\u07c7\u0007\u0006\u0000\u0000\u07c7\u0136\u0001\u0000\u0000"+ + "\u0000\u07c8\u07c9\u0007\u0003\u0000\u0000\u07c9\u07ca\u0007\u0004\u0000"+ + "\u0000\u07ca\u07cb\u0007\u0006\u0000\u0000\u07cb\u0138\u0001\u0000\u0000"+ + "\u0000\u07cc\u07cd\u0007\u0003\u0000\u0000\u07cd\u07ce\u0007\u0000\u0000"+ + "\u0000\u07ce\u07cf\u0007\f\u0000\u0000\u07cf\u07d0\u0007\u0004\u0000\u0000"+ + "\u07d0\u013a\u0001\u0000\u0000\u0000\u07d1\u07d2\u0007\u0003\u0000\u0000"+ + "\u07d2\u07d3\u0007\u0000\u0000\u0000\u07d3\u07d4\u0007\u0001\u0000\u0000"+ + "\u07d4\u07d5\u0007\u0000\u0000\u0000\u07d5\u07d6\u0007\u0006\u0000\u0000"+ + "\u07d6\u013c\u0001\u0000\u0000\u0000\u07d7\u07d8\u0007\u0003\u0000\u0000"+ + "\u07d8\u07d9\u0007\u0000\u0000\u0000\u07d9\u07da\u0007\u0005\u0000\u0000"+ + "\u07da\u07db\u0007\u0006\u0000\u0000\u07db\u013e\u0001\u0000\u0000\u0000"+ + "\u07dc\u07dd\u0007\u0003\u0000\u0000\u07dd\u07de\u0007\u000b\u0000\u0000"+ + "\u07de\u0140\u0001\u0000\u0000\u0000\u07df\u07e0\u0007\u0003\u0000\u0000"+ + "\u07e0\u07e1\u0007\r\u0000\u0000\u07e1\u07e2\u0007\u0015\u0000\u0000\u07e2"+ + "\u07e3\u0007\n\u0000\u0000\u07e3\u07e4\u0007\u0003\u0000\u0000\u07e4\u0142"+ + "\u0001\u0000\u0000\u0000\u07e5\u07e6\u0007\u0003\u0000\u0000\u07e6\u07e7"+ + "\u0007\r\u0000\u0000\u07e7\u07e8\u0007\u0015\u0000\u0000\u07e8\u07e9\u0007"+ + "\n\u0000\u0000\u07e9\u07ea\u0007\u0003\u0000\u0000\u07ea\u07eb\u0005_"+ + "\u0000\u0000\u07eb\u07ec\u0007\u0016\u0000\u0000\u07ec\u07ed\u0007\n\u0000"+ + "\u0000\u07ed\u07ee\u0007\u0006\u0000\u0000\u07ee\u07ef\u0007\u0004\u0000"+ + "\u0000\u07ef\u07f0\u0007\u0006\u0000\u0000\u07f0\u07f1\u0007\u0000\u0000"+ + "\u0000\u07f1\u07f2\u0007\u0001\u0000\u0000\u07f2\u07f3\u0007\u0004\u0000"+ + "\u0000\u07f3\u0144\u0001\u0000\u0000\u0000\u07f4\u07f5\u0007\u0003\u0000"+ + "\u0000\u07f5\u07f6\u0007\r\u0000\u0000\u07f6\u07f7\u0007\u0015\u0000\u0000"+ + "\u07f7\u07f8\u0007\n\u0000\u0000\u07f8\u07f9\u0007\u0003\u0000\u0000\u07f9"+ + "\u07fa\u0005_\u0000\u0000\u07fa\u07fb\u0007\u0006\u0000\u0000\u07fb\u07fc"+ + "\u0007\u0000\u0000\u0000\u07fc\u07fd\u0007\u0001\u0000\u0000\u07fd\u07fe"+ + "\u0007\u0004\u0000\u0000\u07fe\u0146\u0001\u0000\u0000\u0000\u07ff\u0800"+ + "\u0007\u0003\u0000\u0000\u0800\u0801\u0007\r\u0000\u0000\u0801\u0802\u0007"+ + "\u0015\u0000\u0000\u0802\u0803\u0007\n\u0000\u0000\u0803\u0804\u0007\u0003"+ + "\u0000\u0000\u0804\u0805\u0005_\u0000\u0000\u0805\u0806\u0007\u0006\u0000"+ + "\u0000\u0806\u0807\u0007\u0000\u0000\u0000\u0807\u0808\u0007\u0001\u0000"+ + "\u0000\u0808\u0809\u0007\u0004\u0000\u0000\u0809\u080a\u0007\u0005\u0000"+ + "\u0000\u080a\u080b\u0007\u0006\u0000\u0000\u080b\u080c\u0007\n\u0000\u0000"+ + "\u080c\u080d\u0007\u0001\u0000\u0000\u080d\u080e\u0007\u0002\u0000\u0000"+ + "\u080e\u0148\u0001\u0000\u0000\u0000\u080f\u0810\u0007\u0003\u0000\u0000"+ + "\u0810\u0811\u0007\r\u0000\u0000\u0811\u0812\u0007\u0018\u0000\u0000\u0812"+ + "\u014a\u0001\u0000\u0000\u0000\u0813\u0814\u0007\u0003\u0000\u0000\u0814"+ + "\u0815\u0007\r\u0000\u0000\u0815\u0816\u0007\u0018\u0000\u0000\u0816\u0817"+ + "\u00051\u0000\u0000\u0817\u0818\u00050\u0000\u0000\u0818\u014c\u0001\u0000"+ + "\u0000\u0000\u0819\u081a\u0007\u0003\u0000\u0000\u081a\u081b\u0007\r\u0000"+ + "\u0000\u081b\u081c\u0007\u000e\u0000\u0000\u081c\u081d\u0007\u0004\u0000"+ + "\u0000\u081d\u081e\u0007\u0007\u0000\u0000\u081e\u014e\u0001\u0000\u0000"+ + "\u0000\u081f\u0820\u0007\u0003\u0000\u0000\u0820\u0821\u0007\u0006\u0000"+ + "\u0000\u0821\u0822\u0007\u0007\u0000\u0000\u0822\u0823\u0007\u0000\u0000"+ + "\u0000\u0823\u0824\u0007\u0001\u0000\u0000\u0824\u0150\u0001\u0000\u0000"+ + "\u0000\u0825\u0826\u0007\u0001\u0000\u0000\u0826\u0827\u0007\n\u0000\u0000"+ + "\u0827\u0828\u0007\u0006\u0000\u0000\u0828\u0829\u0007\u0015\u0000\u0000"+ + "\u0829\u082a\u0007\u001a\u0000\u0000\u082a\u0152\u0001\u0000\u0000\u0000"+ + "\u082b\u082c\u0007\u0001\u0000\u0000\u082c\u082d\u0007\n\u0000\u0000\u082d"+ + "\u082e\u0007\u0013\u0000\u0000\u082e\u0154\u0001\u0000\u0000\u0000\u082f"+ + "\u0830\u0007\u0001\u0000\u0000\u0830\u0831\u0007\u0000\u0000\u0000\u0831"+ + "\u0832\u0007\u000b\u0000\u0000\u0832\u0156\u0001\u0000\u0000\u0000\u0833"+ + "\u0834\u0007\u0001\u0000\u0000\u0834\u0835\u0007\u0000\u0000\u0000\u0835"+ + "\u0836\u0007\u000b\u0000\u0000\u0836\u0837\u0007\b\u0000\u0000\u0837\u0838"+ + "\u0007\u0006\u0000\u0000\u0838\u0839\u0007\u0004\u0000\u0000\u0839\u0158"+ + "\u0001\u0000\u0000\u0000\u083a\u083b\u0007\u0001\u0000\u0000\u083b\u083c"+ + "\u0007\r\u0000\u0000\u083c\u083d\u0007\u0016\u0000\u0000\u083d\u015a\u0001"+ + "\u0000\u0000\u0000\u083e\u083f\u0007\u0001\u0000\u0000\u083f\u0840\u0007"+ + "\r\u0000\u0000\u0840\u0841\u0007\u000b\u0000\u0000\u0841\u0842\u0007\u0006"+ + "\u0000\u0000\u0842\u0843\u0007\u001a\u0000\u0000\u0843\u015c\u0001\u0000"+ + "\u0000\u0000\u0844\u0845\u0007\u000b\u0000\u0000\u0845\u0846\u0007\u0004"+ + "\u0000\u0000\u0846\u0847\u0007\u0013\u0000\u0000\u0847\u0848\u0007\u0006"+ + "\u0000\u0000\u0848\u015e\u0001\u0000\u0000\u0000\u0849\u084a\u0007\u000b"+ + "\u0000\u0000\u084a\u084b\u0007\r\u0000\u0000\u084b\u084c\u0007\u0016\u0000"+ + "\u0000\u084c\u084d\u0007\u0004\u0000\u0000\u084d\u084e\u0007\u0006\u0000"+ + "\u0000\u084e\u084f\u0007\n\u0000\u0000\u084f\u0850\u0007\u0015\u0000\u0000"+ + "\u0850\u0851\u0007\u001a\u0000\u0000\u0851\u0160\u0001\u0000\u0000\u0000"+ + "\u0852\u0853\u0007\u000b\u0000\u0000\u0853\u0854\u0007\r\u0000\u0000\u0854"+ + "\u0855\u0007\u0007\u0000\u0000\u0855\u0856\u0007\u0001\u0000\u0000\u0856"+ + "\u0857\u0007\n\u0000\u0000\u0857\u0858\u0007\u0003\u0000\u0000\u0858\u0859"+ + "\u0007\u0000\u0000\u0000\u0859\u085a\u0007\u001b\u0000\u0000\u085a\u085b"+ + "\u0007\u0004\u0000\u0000\u085b\u0162\u0001\u0000\u0000\u0000\u085c\u085d"+ + "\u0007\u000b\u0000\u0000\u085d\u085e\u0007\r\u0000\u0000\u085e\u085f\u0007"+ + "\u0006\u0000\u0000\u085f\u0164\u0001\u0000\u0000\u0000\u0860\u0861\u0007"+ + "\u000b\u0000\u0000\u0861\u0862\u0007\r\u0000\u0000\u0862\u0863\u0007\u0006"+ + "\u0000\u0000\u0863\u0864\u0007\u001a\u0000\u0000\u0864\u0865\u0007\u0000"+ + "\u0000\u0000\u0865\u0866\u0007\u000b\u0000\u0000\u0866\u0867\u0007\u0018"+ + "\u0000\u0000\u0867\u0166\u0001\u0000\u0000\u0000\u0868\u0869\u0007\u000b"+ + "\u0000\u0000\u0869\u086a\u0007\b\u0000\u0000\u086a\u086b\u0007\u0003\u0000"+ + "\u0000\u086b\u086c\u0007\u0003\u0000\u0000\u086c\u0168\u0001\u0000\u0000"+ + "\u0000\u086d\u086e\u0007\u000b\u0000\u0000\u086e\u086f\u0007\b\u0000\u0000"+ + "\u086f\u0870\u0007\u0003\u0000\u0000\u0870\u0871\u0007\u0003\u0000\u0000"+ + "\u0871\u0872\u0007\u0005\u0000\u0000\u0872\u016a\u0001\u0000\u0000\u0000"+ + "\u0873\u0874\u0007\u000b\u0000\u0000\u0874\u0875\u0007\b\u0000\u0000\u0875"+ + "\u0876\u0007\u0003\u0000\u0000\u0876\u0877\u0007\u0003\u0000\u0000\u0877"+ + "\u0878\u0007\u0000\u0000\u0000\u0878\u0879\u0007\t\u0000\u0000\u0879\u016c"+ + "\u0001\u0000\u0000\u0000\u087a\u087b\u0007\r\u0000\u0000\u087b\u087c\u0007"+ + "\u0015\u0000\u0000\u087c\u087d\u0007\u0006\u0000\u0000\u087d\u087e\u0007"+ + "\u0004\u0000\u0000\u087e\u087f\u0007\u0006\u0000\u0000\u087f\u0880\u0005"+ + "_\u0000\u0000\u0880\u0881\u0007\u0003\u0000\u0000\u0881\u0882\u0007\u0004"+ + "\u0000\u0000\u0882\u0883\u0007\u000b\u0000\u0000\u0883\u0884\u0007\u0018"+ + "\u0000\u0000\u0884\u0885\u0007\u0006\u0000\u0000\u0885\u0886\u0007\u001a"+ + "\u0000\u0000\u0886\u016e\u0001\u0000\u0000\u0000\u0887\u0888\u0007\r\u0000"+ + "\u0000\u0888\u0889\u0007\t\u0000\u0000\u0889\u0170\u0001\u0000\u0000\u0000"+ + "\u088a\u088b\u0007\r\u0000\u0000\u088b\u088c\u0007\t\u0000\u0000\u088c"+ + "\u088d\u0007\t\u0000\u0000\u088d\u088e\u0007\u0005\u0000\u0000\u088e\u088f"+ + "\u0007\u0004\u0000\u0000\u088f\u0890\u0007\u0006\u0000\u0000\u0890\u0172"+ + "\u0001\u0000\u0000\u0000\u0891\u0892\u0007\r\u0000\u0000\u0892\u0893\u0007"+ + "\u0002\u0000\u0000\u0893\u0894\u0007\u0006\u0000\u0000\u0894\u0895\u0007"+ + "\u0000\u0000\u0000\u0895\u0896\u0007\r\u0000\u0000\u0896\u0897\u0007\u000b"+ + "\u0000\u0000\u0897\u0898\u0007\n\u0000\u0000\u0898\u0899\u0007\u0003\u0000"+ + "\u0000\u0899\u0174\u0001\u0000\u0000\u0000\u089a\u089b\u0007\r\u0000\u0000"+ + "\u089b\u089c\u0007\u0007\u0000\u0000\u089c\u0176\u0001\u0000\u0000\u0000"+ + "\u089d\u089e\u0007\r\u0000\u0000\u089e\u089f\u0007\u0007\u0000\u0000\u089f"+ + "\u08a0\u0007\u0016\u0000\u0000\u08a0\u08a1\u0007\u0004\u0000\u0000\u08a1"+ + "\u08a2\u0007\u0007\u0000\u0000\u08a2\u0178\u0001\u0000\u0000\u0000\u08a3"+ + "\u08a4\u0007\r\u0000\u0000\u08a4\u08a5\u0007\u0006\u0000\u0000\u08a5\u08a6"+ + "\u0007\u001a\u0000\u0000\u08a6\u08a7\u0007\u0004\u0000\u0000\u08a7\u08a8"+ + "\u0007\u0007\u0000\u0000\u08a8\u08a9\u0007\u000e\u0000\u0000\u08a9\u08aa"+ + "\u0007\u0000\u0000\u0000\u08aa\u08ab\u0007\u0005\u0000\u0000\u08ab\u08ac"+ + "\u0007\u0004\u0000\u0000\u08ac\u017a\u0001\u0000\u0000\u0000\u08ad\u08ae"+ + "\u0007\u0002\u0000\u0000\u08ae\u08af\u0007\n\u0000\u0000\u08af\u08b0\u0007"+ + "\u0007\u0000\u0000\u08b0\u08b1\u0007\n\u0000\u0000\u08b1\u08b2\u0007\u0001"+ + "\u0000\u0000\u08b2\u08b3\u0007\u0004\u0000\u0000\u08b3\u08b4\u0007\u0006"+ + "\u0000\u0000\u08b4\u08b5\u0007\u0004\u0000\u0000\u08b5\u08b6\u0007\u0007"+ + "\u0000\u0000\u08b6\u017c\u0001\u0000\u0000\u0000\u08b7\u08b8\u0007\u0002"+ + "\u0000\u0000\u08b8\u08b9\u0007\n\u0000\u0000\u08b9\u08ba\u0007\u0007\u0000"+ + "\u0000\u08ba\u08bb\u0007\n\u0000\u0000\u08bb\u08bc\u0007\u0001\u0000\u0000"+ + "\u08bc\u08bd\u0007\u0004\u0000\u0000\u08bd\u08be\u0007\u0006\u0000\u0000"+ + "\u08be\u08bf\u0007\u0004\u0000\u0000\u08bf\u08c0\u0007\u0007\u0000\u0000"+ + "\u08c0\u08c1\u0007\u0005\u0000\u0000\u08c1\u017e\u0001\u0000\u0000\u0000"+ + "\u08c2\u08c3\u0007\u0002\u0000\u0000\u08c3\u08c4\u0007\n\u0000\u0000\u08c4"+ + "\u08c5\u0007\u0006\u0000\u0000\u08c5\u08c6\u0007\u001a\u0000\u0000\u08c6"+ + "\u0180\u0001\u0000\u0000\u0000\u08c7\u08c8\u0007\u0002\u0000\u0000\u08c8"+ + "\u08c9\u0007\n\u0000\u0000\u08c9\u08ca\u0007\u0006\u0000\u0000\u08ca\u08cb"+ + "\u0007\u001a\u0000\u0000\u08cb\u08cc\u0005_\u0000\u0000\u08cc\u08cd\u0007"+ + "\u0003\u0000\u0000\u08cd\u08ce\u0007\u0004\u0000\u0000\u08ce\u08cf\u0007"+ + "\u000b\u0000\u0000\u08cf\u08d0\u0007\u0018\u0000\u0000\u08d0\u08d1\u0007"+ + "\u0006\u0000\u0000\u08d1\u08d2\u0007\u001a\u0000\u0000\u08d2\u0182\u0001"+ + "\u0000\u0000\u0000\u08d3\u08d4\u0007\u0002\u0000\u0000\u08d4\u08d5\u0007"+ + "\n\u0000\u0000\u08d5\u08d6\u0007\u0006\u0000\u0000\u08d6\u08d7\u0007\u001a"+ + "\u0000\u0000\u08d7\u08d8\u0007\u0005\u0000\u0000\u08d8\u0184\u0001\u0000"+ + "\u0000\u0000\u08d9\u08da\u0007\u0002\u0000\u0000\u08da\u08db\u0007\u0004"+ + "\u0000\u0000\u08db\u08dc\u0007\u0007\u0000\u0000\u08dc\u08dd\u0007\u0015"+ + "\u0000\u0000\u08dd\u08de\u0007\u0004\u0000\u0000\u08de\u08df\u0007\u000b"+ + "\u0000\u0000\u08df\u08e0\u0007\u0006\u0000\u0000\u08e0\u08e1\u0007\u0000"+ + "\u0000\u0000\u08e1\u08e2\u0007\u0003\u0000\u0000\u08e2\u08e3\u0007\u0004"+ + "\u0000\u0000\u08e3\u08e4\u0005_\u0000\u0000\u08e4\u08e5\u0007\u0015\u0000"+ + "\u0000\u08e5\u08e6\u0007\r\u0000\u0000\u08e6\u08e7\u0007\u000b\u0000\u0000"+ + "\u08e7\u08e8\u0007\u0006\u0000\u0000\u08e8\u0186\u0001\u0000\u0000\u0000"+ + "\u08e9\u08ea\u0007\u0002\u0000\u0000\u08ea\u08eb\u0007\u0004\u0000\u0000"+ + "\u08eb\u08ec\u0007\u0007\u0000\u0000\u08ec\u08ed\u0007\u0015\u0000\u0000"+ + "\u08ed\u08ee\u0007\u0004\u0000\u0000\u08ee\u08ef\u0007\u000b\u0000\u0000"+ + "\u08ef\u08f0\u0007\u0006\u0000\u0000\u08f0\u08f1\u0007\u0000\u0000\u0000"+ + "\u08f1\u08f2\u0007\u0003\u0000\u0000\u08f2\u08f3\u0007\u0004\u0000\u0000"+ + "\u08f3\u08f4\u0005_\u0000\u0000\u08f4\u08f5\u0007\u0016\u0000\u0000\u08f5"+ + "\u08f6\u0007\u0000\u0000\u0000\u08f6\u08f7\u0007\u0005\u0000\u0000\u08f7"+ + "\u08f8\u0007\u0015\u0000\u0000\u08f8\u0188\u0001\u0000\u0000\u0000\u08f9"+ + "\u08fa\u0007\u0002\u0000\u0000\u08fa\u08fb\u0007\r\u0000\u0000\u08fb\u08fc"+ + "\u0007\u000e\u0000\u0000\u08fc\u08fd\u0007\u0004\u0000\u0000\u08fd\u08fe"+ + "\u0007\u0007\u0000\u0000\u08fe\u018a\u0001\u0000\u0000\u0000\u08ff\u0900"+ + "\u0007\u0002\u0000\u0000\u0900\u0901\u0007\u0007\u0000\u0000\u0901\u0902"+ + "\u0007\u0004\u0000\u0000\u0902\u0903\u0007\u0015\u0000\u0000\u0903\u0904"+ + "\u0007\u0000\u0000\u0000\u0904\u0905\u0007\u0005\u0000\u0000\u0905\u0906"+ + "\u0007\u0000\u0000\u0000\u0906\u0907\u0007\r\u0000\u0000\u0907\u0908\u0007"+ + "\u000b\u0000\u0000\u0908\u018c\u0001\u0000\u0000\u0000\u0909\u090a\u0007"+ + "\u0002\u0000\u0000\u090a\u090b\u0007\u0007\u0000\u0000\u090b\u090c\u0007"+ + "\r\u0000\u0000\u090c\u090d\u0007\u0002\u0000\u0000\u090d\u090e\u0007\u0004"+ + "\u0000\u0000\u090e\u090f\u0007\u0007\u0000\u0000\u090f\u0910\u0007\u0006"+ + "\u0000\u0000\u0910\u0911\u0007\u0017\u0000\u0000\u0911\u0912\u0005_\u0000"+ + "\u0000\u0912\u0913\u0007\u0004\u0000\u0000\u0913\u0914\u0007\u0013\u0000"+ + "\u0000\u0914\u0915\u0007\u0000\u0000\u0000\u0915\u0916\u0007\u0005\u0000"+ + "\u0000\u0916\u0917\u0007\u0006\u0000\u0000\u0917\u0918\u0007\u0005\u0000"+ + "\u0000\u0918\u018e\u0001\u0000\u0000\u0000\u0919\u091a\u0007\u0007\u0000"+ + "\u0000\u091a\u091b\u0007\n\u0000\u0000\u091b\u091c\u0007\u0016\u0000\u0000"+ + "\u091c\u091d\u0007\u0000\u0000\u0000\u091d\u091e\u0007\n\u0000\u0000\u091e"+ + "\u091f\u0007\u000b\u0000\u0000\u091f\u0920\u0007\u0005\u0000\u0000\u0920"+ + "\u0190\u0001\u0000\u0000\u0000\u0921\u0922\u0007\u0007\u0000\u0000\u0922"+ + "\u0923\u0007\u0004\u0000\u0000\u0923\u0924\u0007\n\u0000\u0000\u0924\u0925"+ + "\u0007\u0003\u0000\u0000\u0925\u0192\u0001\u0000\u0000\u0000\u0926\u0927"+ + "\u0007\u0007\u0000\u0000\u0927\u0928\u0007\u0004\u0000\u0000\u0928\u0929"+ + "\u0007\u0015\u0000\u0000\u0929\u092a\u0007\r\u0000\u0000\u092a\u092b\u0007"+ + "\u0007\u0000\u0000\u092b\u092c\u0007\u0016\u0000\u0000\u092c\u0194\u0001"+ + "\u0000\u0000\u0000\u092d\u092e\u0007\u0007\u0000\u0000\u092e\u092f\u0007"+ + "\u0004\u0000\u0000\u092f\u0930\u0007\u0001\u0000\u0000\u0930\u0931\u0007"+ + "\r\u0000\u0000\u0931\u0932\u0007\u0019\u0000\u0000\u0932\u0933\u0007\u0004"+ + "\u0000\u0000\u0933\u0196\u0001\u0000\u0000\u0000\u0934\u0935\u0007\u0007"+ + "\u0000\u0000\u0935\u0936\u0007\u0004\u0000\u0000\u0936\u0937\u0007\u0002"+ + "\u0000\u0000\u0937\u0938\u0007\u0003\u0000\u0000\u0938\u0939\u0007\n\u0000"+ + "\u0000\u0939\u093a\u0007\u0015\u0000\u0000\u093a\u093b\u0007\u0004\u0000"+ + "\u0000\u093b\u0198\u0001\u0000\u0000\u0000\u093c\u093d\u0007\u0007\u0000"+ + "\u0000\u093d\u093e\u0007\u0004\u0000\u0000\u093e\u093f\u0007\u0005\u0000"+ + "\u0000\u093f\u0940\u0007\u0004\u0000\u0000\u0940\u0941\u0007\u0006\u0000"+ + "\u0000\u0941\u019a\u0001\u0000\u0000\u0000\u0942\u0943\u0007\u0007\u0000"+ + "\u0000\u0943\u0944\u0007\u0004\u0000\u0000\u0944\u0945\u0007\u0006\u0000"+ + "\u0000\u0945\u0946\u0007\b\u0000\u0000\u0946\u0947\u0007\u0007\u0000\u0000"+ + "\u0947\u0948\u0007\u000b\u0000\u0000\u0948\u019c\u0001\u0000\u0000\u0000"+ + "\u0949\u094a\u0007\u0007\u0000\u0000\u094a\u094b\u0007\u0000\u0000\u0000"+ + "\u094b\u094c\u0007\u0018\u0000\u0000\u094c\u094d\u0007\u001a\u0000\u0000"+ + "\u094d\u094e\u0007\u0006\u0000\u0000\u094e\u019e\u0001\u0000\u0000\u0000"+ + "\u094f\u0950\u0007\u0007\u0000\u0000\u0950\u0951\u0007\r\u0000\u0000\u0951"+ + "\u0952\u0007\u0003\u0000\u0000\u0952\u0953\u0007\u0003\u0000\u0000\u0953"+ + "\u0954\u0007\u0012\u0000\u0000\u0954\u0955\u0007\n\u0000\u0000\u0955\u0956"+ + "\u0007\u0015\u0000\u0000\u0956\u0957\u0007\f\u0000\u0000\u0957\u01a0\u0001"+ + "\u0000\u0000\u0000\u0958\u0959\u0007\u0007\u0000\u0000\u0959\u095a\u0007"+ + "\u0006\u0000\u0000\u095a\u095b\u0007\u0007\u0000\u0000\u095b\u095c\u0007"+ + "\u0000\u0000\u0000\u095c\u095d\u0007\u0001\u0000\u0000\u095d\u01a2\u0001"+ + "\u0000\u0000\u0000\u095e\u095f\u0007\u0005\u0000\u0000\u095f\u0960\u0007"+ + "\n\u0000\u0000\u0960\u0961\u0007\u0001\u0000\u0000\u0961\u0962\u0007\u0004"+ + "\u0000\u0000\u0962\u01a4\u0001\u0000\u0000\u0000\u0963\u0964\u0007\u0005"+ + "\u0000\u0000\u0964\u0965\u0007\u0015\u0000\u0000\u0965\u0966\u0007\u001a"+ + "\u0000\u0000\u0966\u0967\u0007\u0004\u0000\u0000\u0967\u0968\u0007\u0001"+ + "\u0000\u0000\u0968\u0969\u0007\n\u0000\u0000\u0969\u01a6\u0001\u0000\u0000"+ + "\u0000\u096a\u096b\u0007\u0005\u0000\u0000\u096b\u096c\u0007\u0004\u0000"+ + "\u0000\u096c\u096d\u0007\u0015\u0000\u0000\u096d\u096e\u0007\r\u0000\u0000"+ + "\u096e\u096f\u0007\u000b\u0000\u0000\u096f\u0970\u0007\u0016\u0000\u0000"+ + "\u0970\u01a8\u0001\u0000\u0000\u0000\u0971\u0972\u0007\u0005\u0000\u0000"+ + "\u0972\u0973\u0007\u0004\u0000\u0000\u0973\u0974\u0007\u0003\u0000\u0000"+ + "\u0974\u0975\u0007\u0004\u0000\u0000\u0975\u0976\u0007\u0015\u0000\u0000"+ + "\u0976\u0977\u0007\u0006\u0000\u0000\u0977\u01aa\u0001\u0000\u0000\u0000"+ + "\u0978\u0979\u0007\u0005\u0000\u0000\u0979\u097a\u0007\u0004\u0000\u0000"+ + "\u097a\u097b\u0007\u0005\u0000\u0000\u097b\u097c\u0007\u0005\u0000\u0000"+ + "\u097c\u097d\u0007\u0000\u0000\u0000\u097d\u097e\u0007\r\u0000\u0000\u097e"+ + "\u097f\u0007\u000b\u0000\u0000\u097f\u01ac\u0001\u0000\u0000\u0000\u0980"+ + "\u0981\u0007\u0005\u0000\u0000\u0981\u0982\u0007\u0004\u0000\u0000\u0982"+ + "\u0983\u0007\u0005\u0000\u0000\u0983\u0984\u0007\u0005\u0000\u0000\u0984"+ + "\u0985\u0007\u0000\u0000\u0000\u0985\u0986\u0007\r\u0000\u0000\u0986\u0987"+ + "\u0007\u000b\u0000\u0000\u0987\u0988\u0005_\u0000\u0000\u0988\u0989\u0007"+ + "\b\u0000\u0000\u0989\u098a\u0007\u0005\u0000\u0000\u098a\u098b\u0007\u0004"+ + "\u0000\u0000\u098b\u098c\u0007\u0007\u0000\u0000\u098c\u01ae\u0001\u0000"+ + "\u0000\u0000\u098d\u098e\u0007\u0005\u0000\u0000\u098e\u098f\u0007\u0004"+ + "\u0000\u0000\u098f\u0990\u0007\u0006\u0000\u0000\u0990\u01b0\u0001\u0000"+ + "\u0000\u0000\u0991\u0992\u0007\u0005\u0000\u0000\u0992\u0993\u0007\u0000"+ + "\u0000\u0000\u0993\u0994\u0007\u0018\u0000\u0000\u0994\u0995\u0007\u000b"+ + "\u0000\u0000\u0995\u0996\u0007\u0004\u0000\u0000\u0996\u0997\u0007\u0016"+ + "\u0000\u0000\u0997\u01b2\u0001\u0000\u0000\u0000\u0998\u0999\u0007\u0005"+ + "\u0000\u0000\u0999\u099a\u0007\u0000\u0000\u0000\u099a\u099b\u0007\u000b"+ + "\u0000\u0000\u099b\u01b4\u0001\u0000\u0000\u0000\u099c\u099d\u0007\u0005"+ + "\u0000\u0000\u099d\u099e\u0007\u0000\u0000\u0000\u099e\u099f\u0007\u000b"+ + "\u0000\u0000\u099f\u09a0\u0007\u001a\u0000\u0000\u09a0\u01b6\u0001\u0000"+ + "\u0000\u0000\u09a1\u09a2\u0007\u0005\u0000\u0000\u09a2\u09a3\u0007\u0000"+ + "\u0000\u0000\u09a3\u09a4\u0007\u001b\u0000\u0000\u09a4\u09a5\u0007\u0004"+ + "\u0000\u0000\u09a5\u01b8\u0001\u0000\u0000\u0000\u09a6\u09a7\u0007\u0005"+ + "\u0000\u0000\u09a7\u09a8\u0007\f\u0000\u0000\u09a8\u09a9\u0007\u0000\u0000"+ + "\u0000\u09a9\u09aa\u0007\u0002\u0000\u0000\u09aa\u01ba\u0001\u0000\u0000"+ + "\u0000\u09ab\u09ac\u0007\u0005\u0000\u0000\u09ac\u09ad\u0007\u0001\u0000"+ + "\u0000\u09ad\u09ae\u0007\n\u0000\u0000\u09ae\u09af\u0007\u0003\u0000\u0000"+ + "\u09af\u09b0\u0007\u0003\u0000\u0000\u09b0\u01bc\u0001\u0000\u0000\u0000"+ + "\u09b1\u09b2\u0007\u0005\u0000\u0000\u09b2\u09b3\u0007\u0001\u0000\u0000"+ + "\u09b3\u09b4\u0007\n\u0000\u0000\u09b4\u09b5\u0007\u0003\u0000\u0000\u09b5"+ + "\u09b6\u0007\u0003\u0000\u0000\u09b6\u09b7\u0007\u0000\u0000\u0000\u09b7"+ + "\u09b8\u0007\u000b\u0000\u0000\u09b8\u09b9\u0007\u0006\u0000\u0000\u09b9"+ + "\u01be\u0001\u0000\u0000\u0000\u09ba\u09bb\u0007\u0005\u0000\u0000\u09bb"+ + "\u09bc\u0007\u001c\u0000\u0000\u09bc\u09bd\u0007\u0007\u0000\u0000\u09bd"+ + "\u09be\u0007\u0006\u0000\u0000\u09be\u01c0\u0001\u0000\u0000\u0000\u09bf"+ + "\u09c0\u0007\u0005\u0000\u0000\u09c0\u09c1\u0007\u0006\u0000\u0000\u09c1"+ + "\u09c2\u0007\n\u0000\u0000\u09c2\u09c3\u0007\u0007\u0000\u0000\u09c3\u09c4"+ + "\u0007\u0006\u0000\u0000\u09c4\u01c2\u0001\u0000\u0000\u0000\u09c5\u09c6"+ + "\u0007\u0005\u0000\u0000\u09c6\u09c7\u0007\u0006\u0000\u0000\u09c7\u09c8"+ + "\u0007\u0016\u0000\u0000\u09c8\u09c9\u0007\u0016\u0000\u0000\u09c9\u09ca"+ + "\u0007\u0004\u0000\u0000\u09ca\u09cb\u0007\u0019\u0000\u0000\u09cb\u09cc"+ + "\u0005_\u0000\u0000\u09cc\u09cd\u0007\u0002\u0000\u0000\u09cd\u09ce\u0007"+ + "\r\u0000\u0000\u09ce\u09cf\u0007\u0002\u0000\u0000\u09cf\u01c4\u0001\u0000"+ + "\u0000\u0000\u09d0\u09d1\u0007\u0005\u0000\u0000\u09d1\u09d2\u0007\u0006"+ + "\u0000\u0000\u09d2\u09d3\u0007\u0016\u0000\u0000\u09d3\u09d4\u0007\u0016"+ + "\u0000\u0000\u09d4\u09d5\u0007\u0004\u0000\u0000\u09d5\u09d6\u0007\u0019"+ + "\u0000\u0000\u09d6\u09d7\u0005_\u0000\u0000\u09d7\u09d8\u0007\u0005\u0000"+ + "\u0000\u09d8\u09d9\u0007\n\u0000\u0000\u09d9\u09da\u0007\u0001\u0000\u0000"+ + "\u09da\u09db\u0007\u0002\u0000\u0000\u09db\u01c6\u0001\u0000\u0000\u0000"+ + "\u09dc\u09dd\u0007\u0005\u0000\u0000\u09dd\u09de\u0007\u0006\u0000\u0000"+ + "\u09de\u09df\u0007\u0007\u0000\u0000\u09df\u09e0\u0007\u0000\u0000\u0000"+ + "\u09e0\u09e1\u0007\u000b\u0000\u0000\u09e1\u09e2\u0007\u0018\u0000\u0000"+ + "\u09e2\u01c8\u0001\u0000\u0000\u0000\u09e3\u09e4\u0007\u0005\u0000\u0000"+ + "\u09e4\u09e5\u0007\b\u0000\u0000\u09e5\u09e6\u0007\u0001\u0000\u0000\u09e6"+ + "\u01ca\u0001\u0000\u0000\u0000\u09e7\u09e8\u0007\u0006\u0000\u0000\u09e8"+ + "\u09e9\u0007\n\u0000\u0000\u09e9\u09ea\u0007\u000b\u0000\u0000\u09ea\u01cc"+ + "\u0001\u0000\u0000\u0000\u09eb\u09ec\u0007\u0006\u0000\u0000\u09ec\u09ed"+ + "\u0007\n\u0000\u0000\u09ed\u09ee\u0007\u000b\u0000\u0000\u09ee\u09ef\u0007"+ + "\u001a\u0000\u0000\u09ef\u01ce\u0001\u0000\u0000\u0000\u09f0\u09f1\u0007"+ + "\u0006\u0000\u0000\u09f1\u09f2\u0007\u001a\u0000\u0000\u09f2\u09f3\u0007"+ + "\u0004\u0000\u0000\u09f3\u09f4\u0007\u000b\u0000\u0000\u09f4\u01d0\u0001"+ + "\u0000\u0000\u0000\u09f5\u09f6\u0007\u0006\u0000\u0000\u09f6\u09f7\u0007"+ + "\u0000\u0000\u0000\u09f7\u09f8\u0007\u0001\u0000\u0000\u09f8\u09f9\u0007"+ + "\u0004\u0000\u0000\u09f9\u01d2\u0001\u0000\u0000\u0000\u09fa\u09fb\u0007"+ + "\u0006\u0000\u0000\u09fb\u09fc\u0007\u0000\u0000\u0000\u09fc\u09fd\u0007"+ + "\u0001\u0000\u0000\u09fd\u09fe\u0007\u0004\u0000\u0000\u09fe\u09ff\u0007"+ + "\u0005\u0000\u0000\u09ff\u0a00\u0007\u0006\u0000\u0000\u0a00\u0a01\u0007"+ + "\n\u0000\u0000\u0a01\u0a02\u0007\u0001\u0000\u0000\u0a02\u0a03\u0007\u0002"+ + "\u0000\u0000\u0a03\u01d4\u0001\u0000\u0000\u0000\u0a04\u0a05\u0007\u0006"+ + "\u0000\u0000\u0a05\u0a06\u0007\u0007\u0000\u0000\u0a06\u0a07\u0007\n\u0000"+ + "\u0000\u0a07\u0a08\u0007\u0000\u0000\u0000\u0a08\u0a09\u0007\u0003\u0000"+ + "\u0000\u0a09\u0a0a\u0007\u0000\u0000\u0000\u0a0a\u0a0b\u0007\u000b\u0000"+ + "\u0000\u0a0b\u0a0c\u0007\u0018\u0000\u0000\u0a0c\u01d6\u0001\u0000\u0000"+ + "\u0000\u0a0d\u0a0e\u0007\u0006\u0000\u0000\u0a0e\u0a0f\u0007\u0007\u0000"+ + "\u0000\u0a0f\u0a10\u0007\u0000\u0000\u0000\u0a10\u0a11\u0007\u0001\u0000"+ + "\u0000\u0a11\u01d8\u0001\u0000\u0000\u0000\u0a12\u0a13\u0007\u0006\u0000"+ + "\u0000\u0a13\u0a14\u0007\u0017\u0000\u0000\u0a14\u0a15\u0007\u0002\u0000"+ + "\u0000\u0a15\u0a16\u0007\u0004\u0000\u0000\u0a16\u0a17\u0007\u0016\u0000"+ + "\u0000\u0a17\u01da\u0001\u0000\u0000\u0000\u0a18\u0a19\u0007\b\u0000\u0000"+ + "\u0a19\u0a1a\u0007\u0012\u0000\u0000\u0a1a\u0a1b\u0007\u0000\u0000\u0000"+ + "\u0a1b\u0a1c\u0007\u0018\u0000\u0000\u0a1c\u0a1d\u0007\u0000\u0000\u0000"+ + "\u0a1d\u0a1e\u0007\u000b\u0000\u0000\u0a1e\u0a1f\u0007\u0006\u0000\u0000"+ + "\u0a1f\u01dc\u0001\u0000\u0000\u0000\u0a20\u0a21\u0007\b\u0000\u0000\u0a21"+ + "\u0a22\u0007\u0000\u0000\u0000\u0a22\u0a23\u0007\u000b\u0000\u0000\u0a23"+ + "\u0a24\u0007\u0006\u0000\u0000\u0a24\u01de\u0001\u0000\u0000\u0000\u0a25"+ + "\u0a26\u0007\b\u0000\u0000\u0a26\u0a27\u0007\u0000\u0000\u0000\u0a27\u0a28"+ + "\u0007\u000b\u0000\u0000\u0a28\u0a29\u0007\u0006\u0000\u0000\u0a29\u0a2a"+ + "\u00058\u0000\u0000\u0a2a\u01e0\u0001\u0000\u0000\u0000\u0a2b\u0a2c\u0007"+ + "\b\u0000\u0000\u0a2c\u0a2d\u0007\u0000\u0000\u0000\u0a2d\u0a2e\u0007\u000b"+ + "\u0000\u0000\u0a2e\u0a2f\u0007\u0006\u0000\u0000\u0a2f\u0a30\u00051\u0000"+ + "\u0000\u0a30\u0a31\u00056\u0000\u0000\u0a31\u01e2\u0001\u0000\u0000\u0000"+ + "\u0a32\u0a33\u0007\b\u0000\u0000\u0a33\u0a34\u0007\u0000\u0000\u0000\u0a34"+ + "\u0a35\u0007\u000b\u0000\u0000\u0a35\u0a36\u0007\u0006\u0000\u0000\u0a36"+ + "\u0a37\u00053\u0000\u0000\u0a37\u0a38\u00052\u0000\u0000\u0a38\u01e4\u0001"+ + "\u0000\u0000\u0000\u0a39\u0a3a\u0007\b\u0000\u0000\u0a3a\u0a3b\u0007\u0000"+ + "\u0000\u0000\u0a3b\u0a3c\u0007\u000b\u0000\u0000\u0a3c\u0a3d\u0007\u0006"+ + "\u0000\u0000\u0a3d\u0a3e\u00056\u0000\u0000\u0a3e\u0a3f\u00054\u0000\u0000"+ + "\u0a3f\u01e6\u0001\u0000\u0000\u0000\u0a40\u0a41\u0007\b\u0000\u0000\u0a41"+ + "\u0a42\u0007\u0000\u0000\u0000\u0a42\u0a43\u0007\u000b\u0000\u0000\u0a43"+ + "\u0a44\u0007\u0006\u0000\u0000\u0a44\u0a45\u00051\u0000\u0000\u0a45\u0a46"+ + "\u00052\u0000\u0000\u0a46\u0a47\u00058\u0000\u0000\u0a47\u01e8\u0001\u0000"+ + "\u0000\u0000\u0a48\u0a49\u0007\b\u0000\u0000\u0a49\u0a4a\u0007\u0000\u0000"+ + "\u0000\u0a4a\u0a4b\u0007\u000b\u0000\u0000\u0a4b\u0a4c\u0007\u0006\u0000"+ + "\u0000\u0a4c\u0a4d\u00052\u0000\u0000\u0a4d\u0a4e\u00055\u0000\u0000\u0a4e"+ + "\u0a4f\u00056\u0000\u0000\u0a4f\u01ea\u0001\u0000\u0000\u0000\u0a50\u0a51"+ + "\u0007\b\u0000\u0000\u0a51\u0a52\u0007\u000b\u0000\u0000\u0a52\u0a53\u0007"+ + "\u0000\u0000\u0000\u0a53\u0a54\u0007\r\u0000\u0000\u0a54\u0a55\u0007\u000b"+ + "\u0000\u0000\u0a55\u01ec\u0001\u0000\u0000\u0000\u0a56\u0a57\u0007\b\u0000"+ + "\u0000\u0a57\u0a58\u0007\u000b\u0000\u0000\u0a58\u0a59\u0007\u0005\u0000"+ + "\u0000\u0a59\u0a5a\u0007\u0000\u0000\u0000\u0a5a\u0a5b\u0007\u0018\u0000"+ + "\u0000\u0a5b\u0a5c\u0007\u000b\u0000\u0000\u0a5c\u0a5d\u0007\u0004\u0000"+ + "\u0000\u0a5d\u0a5e\u0007\u0016\u0000\u0000\u0a5e\u01ee\u0001\u0000\u0000"+ + "\u0000\u0a5f\u0a60\u0007\b\u0000\u0000\u0a60\u0a61\u0007\u0002\u0000\u0000"+ + "\u0a61\u0a62\u0007\u0002\u0000\u0000\u0a62\u0a63\u0007\u0004\u0000\u0000"+ + "\u0a63\u0a64\u0007\u0007\u0000\u0000\u0a64\u01f0\u0001\u0000\u0000\u0000"+ + "\u0a65\u0a66\u0007\b\u0000\u0000\u0a66\u0a67\u0007\u0005\u0000\u0000\u0a67"+ + "\u0a68\u0007\u0004\u0000\u0000\u0a68\u01f2\u0001\u0000\u0000\u0000\u0a69"+ + "\u0a6a\u0007\b\u0000\u0000\u0a6a\u0a6b\u0007\u0005\u0000\u0000\u0a6b\u0a6c"+ + "\u0007\u0001\u0000\u0000\u0a6c\u0a6d\u0007\n\u0000\u0000\u0a6d\u0a6e\u0007"+ + "\u0003\u0000\u0000\u0a6e\u0a6f\u0007\u0003\u0000\u0000\u0a6f\u0a70\u0007"+ + "\u0000\u0000\u0000\u0a70\u0a71\u0007\u000b\u0000\u0000\u0a71\u0a72\u0007"+ + "\u0006\u0000\u0000\u0a72\u01f4\u0001\u0000\u0000\u0000\u0a73\u0a74\u0007"+ + "\u0019\u0000\u0000\u0a74\u0a75\u0007\n\u0000\u0000\u0a75\u0a76\u0007\u0003"+ + "\u0000\u0000\u0a76\u0a77\u0007\b\u0000\u0000\u0a77\u0a78\u0007\u0004\u0000"+ + "\u0000\u0a78\u01f6\u0001\u0000\u0000\u0000\u0a79\u0a7a\u0007\u0019\u0000"+ + "\u0000\u0a7a\u0a7b\u0007\n\u0000\u0000\u0a7b\u0a7c\u0007\u0007\u0000\u0000"+ + "\u0a7c\u0a7d\u0007\u0012\u0000\u0000\u0a7d\u0a7e\u0007\u0000\u0000\u0000"+ + "\u0a7e\u0a7f\u0007\u000b\u0000\u0000\u0a7f\u0a80\u0007\n\u0000\u0000\u0a80"+ + "\u0a81\u0007\u0007\u0000\u0000\u0a81\u0a82\u0007\u0017\u0000\u0000\u0a82"+ + "\u01f8\u0001\u0000\u0000\u0000\u0a83\u0a84\u0007\u0019\u0000\u0000\u0a84"+ + "\u0a85\u0007\n\u0000\u0000\u0a85\u0a86\u0007\u0007\u0000\u0000\u0a86\u0a87"+ + "\u0007\u0015\u0000\u0000\u0a87\u0a88\u0007\u001a\u0000\u0000\u0a88\u0a89"+ + "\u0007\n\u0000\u0000\u0a89\u0a8a\u0007\u0007\u0000\u0000\u0a8a\u01fa\u0001"+ + "\u0000\u0000\u0000\u0a8b\u0a8c\u0007\u0019\u0000\u0000\u0a8c\u0a8d\u0007"+ + "\n\u0000\u0000\u0a8d\u0a8e\u0007\u0007\u0000\u0000\u0a8e\u0a8f\u0007\u0000"+ + "\u0000\u0000\u0a8f\u0a90\u0007\n\u0000\u0000\u0a90\u0a91\u0007\u0012\u0000"+ + "\u0000\u0a91\u0a92\u0007\u0003\u0000\u0000\u0a92\u0a93\u0007\u0004\u0000"+ + "\u0000\u0a93\u01fc\u0001\u0000\u0000\u0000\u0a94\u0a95\u0007\u000e\u0000"+ + "\u0000\u0a95\u0a96\u0007\u001a\u0000\u0000\u0a96\u0a97\u0007\u0004\u0000"+ + "\u0000\u0a97\u0a98\u0007\u000b\u0000\u0000\u0a98\u01fe\u0001\u0000\u0000"+ + "\u0000\u0a99\u0a9a\u0007\u000e\u0000\u0000\u0a9a\u0a9b\u0007\u001a\u0000"+ + "\u0000\u0a9b\u0a9c\u0007\u0004\u0000\u0000\u0a9c\u0a9d\u0007\u0007\u0000"+ + "\u0000\u0a9d\u0a9e\u0007\u0004\u0000\u0000\u0a9e\u0200\u0001\u0000\u0000"+ + "\u0000\u0a9f\u0aa0\u0007\u000e\u0000\u0000\u0aa0\u0aa1\u0007\u0000\u0000"+ + "\u0000\u0aa1\u0aa2\u0007\u0006\u0000\u0000\u0aa2\u0aa3\u0007\u001a\u0000"+ + "\u0000\u0aa3\u0202\u0001\u0000\u0000\u0000\u0aa4\u0aa5\u0007\u0013\u0000"+ + "\u0000\u0aa5\u0aa6\u0007\r\u0000\u0000\u0aa6\u0aa7\u0007\u0007\u0000\u0000"+ + "\u0aa7\u0204\u0001\u0000\u0000\u0000\u0aa8\u0aa9\u0007\u0017\u0000\u0000"+ + "\u0aa9\u0aaa\u0007\u0004\u0000\u0000\u0aaa\u0aab\u0007\n\u0000\u0000\u0aab"+ + "\u0aac\u0007\u0007\u0000\u0000\u0aac\u0206\u0001\u0000\u0000\u0000\u0aad"+ + "\u0aae\u0007\u0017\u0000\u0000\u0aae\u0aaf\u0007\u0000\u0000\u0000\u0aaf"+ + "\u0ab0\u0007\u0004\u0000\u0000\u0ab0\u0ab1\u0007\u0003\u0000\u0000\u0ab1"+ + "\u0ab2\u0007\u0016\u0000\u0000\u0ab2\u0208\u0001\u0000\u0000\u0000\u0ab3"+ + "\u0ab4\u0007\u001b\u0000\u0000\u0ab4\u0ab5\u0007\r\u0000\u0000\u0ab5\u0ab6"+ + "\u0007\u000b\u0000\u0000\u0ab6\u0ab7\u0007\u0004\u0000\u0000\u0ab7\u0ab8"+ + "\u0007\u0016\u0000\u0000\u0ab8\u020a\u0001\u0000\u0000\u0000\u0ab9\u0aba"+ + "\u0007\u001b\u0000\u0000\u0aba\u0abb\u0007\r\u0000\u0000\u0abb\u0abc\u0007"+ + "\u000b\u0000\u0000\u0abc\u0abd\u0007\u0004\u0000\u0000\u0abd\u0abe\u0007"+ + "\u0016\u0000\u0000\u0abe\u0abf\u0005_\u0000\u0000\u0abf\u0ac0\u0007\u0016"+ + "\u0000\u0000\u0ac0\u0ac1\u0007\n\u0000\u0000\u0ac1\u0ac2\u0007\u0006\u0000"+ + "\u0000\u0ac2\u0ac3\u0007\u0004\u0000\u0000\u0ac3\u0ac4\u0007\u0006\u0000"+ + "\u0000\u0ac4\u0ac5\u0007\u0000\u0000\u0000\u0ac5\u0ac6\u0007\u0001\u0000"+ + "\u0000\u0ac6\u0ac7\u0007\u0004\u0000\u0000\u0ac7\u020c\u0001\u0000\u0000"+ + "\u0000\u0ac8\u0ac9\u0007\u001b\u0000\u0000\u0ac9\u0aca\u0007\r\u0000\u0000"+ + "\u0aca\u0acb\u0007\u000b\u0000\u0000\u0acb\u0acc\u0007\u0004\u0000\u0000"+ + "\u0acc\u0acd\u0007\u0016\u0000\u0000\u0acd\u0ace\u0005_\u0000\u0000\u0ace"+ + "\u0acf\u0007\u0006\u0000\u0000\u0acf\u0ad0\u0007\u0000\u0000\u0000\u0ad0"+ + "\u0ad1\u0007\u0001\u0000\u0000\u0ad1\u0ad2\u0007\u0004\u0000\u0000\u0ad2"+ + "\u020e\u0001\u0000\u0000\u0000\u0ad3\u0ad4\u0007\n\u0000\u0000\u0ad4\u0ad5"+ + "\u0007\u0012\u0000\u0000\u0ad5\u0ad6\u0007\u0005\u0000\u0000\u0ad6\u0ad7"+ + "\u0007\u0006\u0000\u0000\u0ad7\u0ad8\u0007\u0007\u0000\u0000\u0ad8\u0ad9"+ + "\u0007\n\u0000\u0000\u0ad9\u0ada\u0007\u0015\u0000\u0000\u0ada\u0adb\u0007"+ + "\u0006\u0000\u0000\u0adb\u0210\u0001\u0000\u0000\u0000\u0adc\u0add\u0007"+ + "\n\u0000\u0000\u0add\u0ade\u0007\u0018\u0000\u0000\u0ade\u0adf\u0007\u0018"+ + "\u0000\u0000\u0adf\u0ae0\u0007\u0007\u0000\u0000\u0ae0\u0ae1\u0007\u0004"+ + "\u0000\u0000\u0ae1\u0ae2\u0007\u0018\u0000\u0000\u0ae2\u0ae3\u0007\n\u0000"+ + "\u0000\u0ae3\u0ae4\u0007\u0006\u0000\u0000\u0ae4\u0ae5\u0007\u0004\u0000"+ + "\u0000\u0ae5\u0212\u0001\u0000\u0000\u0000\u0ae6\u0ae7\u0007\n\u0000\u0000"+ + "\u0ae7\u0ae8\u0007\u0018\u0000\u0000\u0ae8\u0ae9\u0007\u0018\u0000\u0000"+ + "\u0ae9\u0aea\u0007\u0007\u0000\u0000\u0aea\u0aeb\u0007\u0004\u0000\u0000"+ + "\u0aeb\u0aec\u0007\u0018\u0000\u0000\u0aec\u0aed\u0007\n\u0000\u0000\u0aed"+ + "\u0aee\u0007\u0006\u0000\u0000\u0aee\u0aef\u0007\u0004\u0000\u0000\u0aef"+ + "\u0af0\u0007\u0005\u0000\u0000\u0af0\u0214\u0001\u0000\u0000\u0000\u0af1"+ + "\u0af2\u0007\n\u0000\u0000\u0af2\u0af3\u0007\u0003\u0000\u0000\u0af3\u0af4"+ + "\u0007\u0006\u0000\u0000\u0af4\u0af5\u0007\u0004\u0000\u0000\u0af5\u0af6"+ + "\u0007\u0007\u0000\u0000\u0af6\u0216\u0001\u0000\u0000\u0000\u0af7\u0af8"+ + "\u0007\u0015\u0000\u0000\u0af8\u0af9\u0007\n\u0000\u0000\u0af9\u0afa\u0007"+ + "\u0006\u0000\u0000\u0afa\u0afb\u0007\n\u0000\u0000\u0afb\u0afc\u0007\u0003"+ + "\u0000\u0000\u0afc\u0afd\u0007\r\u0000\u0000\u0afd\u0afe\u0007\u0018\u0000"+ + "\u0000\u0afe\u0218\u0001\u0000\u0000\u0000\u0aff\u0b00\u0007\u0015\u0000"+ + "\u0000\u0b00\u0b01\u0007\u0003\u0000\u0000\u0b01\u0b02\u0007\u0004\u0000"+ + "\u0000\u0b02\u0b03\u0007\n\u0000\u0000\u0b03\u0b04\u0007\u0007\u0000\u0000"+ + "\u0b04\u021a\u0001\u0000\u0000\u0000\u0b05\u0b06\u0007\u0015\u0000\u0000"+ + "\u0b06\u0b07\u0007\u0003\u0000\u0000\u0b07\u0b08\u0007\r\u0000\u0000\u0b08"+ + "\u0b09\u0007\u000b\u0000\u0000\u0b09\u0b0a\u0007\u0004\u0000\u0000\u0b0a"+ + "\u021c\u0001\u0000\u0000\u0000\u0b0b\u0b0c\u0007\u0015\u0000\u0000\u0b0c"+ + "\u0b0d\u0007\r\u0000\u0000\u0b0d\u0b0e\u0007\u000b\u0000\u0000\u0b0e\u0b0f"+ + "\u0007\u0005\u0000\u0000\u0b0f\u0b10\u0007\u0006\u0000\u0000\u0b10\u0b11"+ + "\u0007\u0007\u0000\u0000\u0b11\u0b12\u0007\n\u0000\u0000\u0b12\u0b13\u0007"+ + "\u0000\u0000\u0000\u0b13\u0b14\u0007\u000b\u0000\u0000\u0b14\u0b15\u0007"+ + "\u0006\u0000\u0000\u0b15\u021e\u0001\u0000\u0000\u0000\u0b16\u0b17\u0007"+ + "\u0015\u0000\u0000\u0b17\u0b18\u0007\b\u0000\u0000\u0b18\u0b19\u0007\u0007"+ + "\u0000\u0000\u0b19\u0b1a\u0007\u0007\u0000\u0000\u0b1a\u0b1b\u0007\u0004"+ + "\u0000\u0000\u0b1b\u0b1c\u0007\u000b\u0000\u0000\u0b1c\u0b1d\u0007\u0006"+ + "\u0000\u0000\u0b1d\u0b1e\u0005_\u0000\u0000\u0b1e\u0b1f\u0007\u0007\u0000"+ + "\u0000\u0b1f\u0b20\u0007\r\u0000\u0000\u0b20\u0b21\u0007\u0003\u0000\u0000"+ + "\u0b21\u0b22\u0007\u0004\u0000\u0000\u0b22\u0220\u0001\u0000\u0000\u0000"+ + "\u0b23\u0b24\u0007\u0015\u0000\u0000\u0b24\u0b25\u0007\b\u0000\u0000\u0b25"+ + "\u0b26\u0007\u0007\u0000\u0000\u0b26\u0b27\u0007\u0007\u0000\u0000\u0b27"+ + "\u0b28\u0007\u0004\u0000\u0000\u0b28\u0b29\u0007\u000b\u0000\u0000\u0b29"+ + "\u0b2a\u0007\u0006\u0000\u0000\u0b2a\u0b2b\u0005_\u0000\u0000\u0b2b\u0b2c"+ + "\u0007\b\u0000\u0000\u0b2c\u0b2d\u0007\u0005\u0000\u0000\u0b2d\u0b2e\u0007"+ + "\u0004\u0000\u0000\u0b2e\u0b2f\u0007\u0007\u0000\u0000\u0b2f\u0222\u0001"+ + "\u0000\u0000\u0000\u0b30\u0b31\u0007\u0016\u0000\u0000\u0b31\u0b32\u0007"+ + "\n\u0000\u0000\u0b32\u0b33\u0007\u0006\u0000\u0000\u0b33\u0b34\u0007\n"+ + "\u0000\u0000\u0b34\u0224\u0001\u0000\u0000\u0000\u0b35\u0b36\u0007\u0016"+ + "\u0000\u0000\u0b36\u0b37\u0007\u0000\u0000\u0000\u0b37\u0b38\u0007\u0007"+ + "\u0000\u0000\u0b38\u0b39\u0007\u0004\u0000\u0000\u0b39\u0b3a\u0007\u0015"+ + "\u0000\u0000\u0b3a\u0b3b\u0007\u0006\u0000\u0000\u0b3b\u0b3c\u0007\r\u0000"+ + "\u0000\u0b3c\u0b3d\u0007\u0007\u0000\u0000\u0b3d\u0b3e\u0007\u0017\u0000"+ + "\u0000\u0b3e\u0226\u0001\u0000\u0000\u0000\u0b3f\u0b40\u0007\u0016\u0000"+ + "\u0000\u0b40\u0b41\u0007\u0007\u0000\u0000\u0b41\u0b42\u0007\u0017\u0000"+ + "\u0000\u0b42\u0b43\u0007\u0007\u0000\u0000\u0b43\u0b44\u0007\b\u0000\u0000"+ + "\u0b44\u0b45\u0007\u000b\u0000\u0000\u0b45\u0228\u0001\u0000\u0000\u0000"+ + "\u0b46\u0b47\u0007\u0004\u0000\u0000\u0b47\u0b48\u0007\u0013\u0000\u0000"+ + "\u0b48\u0b49\u0007\n\u0000\u0000\u0b49\u0b4a\u0007\u0015\u0000\u0000\u0b4a"+ + "\u0b4b\u0007\u0006\u0000\u0000\u0b4b\u022a\u0001\u0000\u0000\u0000\u0b4c"+ + "\u0b4d\u0007\u0004\u0000\u0000\u0b4d\u0b4e\u0007\u0013\u0000\u0000\u0b4e"+ + "\u0b4f\u0007\u0000\u0000\u0000\u0b4f\u0b50\u0007\u0005\u0000\u0000\u0b50"+ + "\u0b51\u0007\u0006\u0000\u0000\u0b51\u0b52\u0007\u0000\u0000\u0000\u0b52"+ + "\u0b53\u0007\u000b\u0000\u0000\u0b53\u0b54\u0007\u0018\u0000\u0000\u0b54"+ + "\u022c\u0001\u0000\u0000\u0000\u0b55\u0b56\u0007\t\u0000\u0000\u0b56\u0b57"+ + "\u0007\b\u0000\u0000\u0b57\u0b58\u0007\u000b\u0000\u0000\u0b58\u0b59\u0007"+ + "\u0015\u0000\u0000\u0b59\u0b5a\u0007\u0006\u0000\u0000\u0b5a\u0b5b\u0007"+ + "\u0000\u0000\u0000\u0b5b\u0b5c\u0007\r\u0000\u0000\u0b5c\u0b5d\u0007\u000b"+ + "\u0000\u0000\u0b5d\u022e\u0001\u0000\u0000\u0000\u0b5e\u0b5f\u0007\u0018"+ + "\u0000\u0000\u0b5f\u0b60\u0007\u001c\u0000\u0000\u0b60\u0b61\u0007\u0003"+ + "\u0000\u0000\u0b61\u0b62\u0007\u0005\u0000\u0000\u0b62\u0b63\u0007\u0006"+ + "\u0000\u0000\u0b63\u0b64\u0007\n\u0000\u0000\u0b64\u0b65\u0007\u0006\u0000"+ + "\u0000\u0b65\u0b66\u0007\b\u0000\u0000\u0b66\u0b67\u0007\u0005\u0000\u0000"+ + "\u0b67\u0230\u0001\u0000\u0000\u0000\u0b68\u0b69\u0007\u0018\u0000\u0000"+ + "\u0b69\u0b6a\u0007\u0007\u0000\u0000\u0b6a\u0b6b\u0007\n\u0000\u0000\u0b6b"+ + "\u0b6c\u0007\u000b\u0000\u0000\u0b6c\u0b6d\u0007\u0006\u0000\u0000\u0b6d"+ + "\u0232\u0001\u0000\u0000\u0000\u0b6e\u0b6f\u0007\u0000\u0000\u0000\u0b6f"+ + "\u0b70\u0007\u000b\u0000\u0000\u0b70\u0b71\u0007\u0005\u0000\u0000\u0b71"+ + "\u0b72\u0007\u0006\u0000\u0000\u0b72\u0b73\u0007\n\u0000\u0000\u0b73\u0b74"+ + "\u0007\u000b\u0000\u0000\u0b74\u0b75\u0007\u0006\u0000\u0000\u0b75\u0234"+ + "\u0001\u0000\u0000\u0000\u0b76\u0b77\u0007\u0000\u0000\u0000\u0b77\u0b78"+ + "\u0007\u000b\u0000\u0000\u0b78\u0b79\u0007\t\u0000\u0000\u0b79\u0b7a\u0007"+ + "\u0000\u0000\u0000\u0b7a\u0b7b\u0007\u000b\u0000\u0000\u0b7b\u0b7c\u0007"+ + "\u0000\u0000\u0000\u0b7c\u0b7d\u0007\u0006\u0000\u0000\u0b7d\u0b7e\u0007"+ + "\u0017\u0000\u0000\u0b7e\u0236\u0001\u0000\u0000\u0000\u0b7f\u0b80\u0007"+ + "\u000b\u0000\u0000\u0b80\u0b81\u0007\b\u0000\u0000\u0b81\u0b82\u0007\u0001"+ + "\u0000\u0000\u0b82\u0b83\u0007\u0012\u0000\u0000\u0b83\u0b84\u0007\u0004"+ + "\u0000\u0000\u0b84\u0b85\u0007\u0007\u0000\u0000\u0b85\u0238\u0001\u0000"+ + "\u0000\u0000\u0b86\u0b87\u0007\u000b\u0000\u0000\u0b87\u0b88\u0007\b\u0000"+ + "\u0000\u0b88\u0b89\u0007\u0001\u0000\u0000\u0b89\u0b8a\u0007\u0004\u0000"+ + "\u0000\u0b8a\u0b8b\u0007\u0007\u0000\u0000\u0b8b\u0b8c\u0007\u0000\u0000"+ + "\u0000\u0b8c\u0b8d\u0007\u0015\u0000\u0000\u0b8d\u023a\u0001\u0000\u0000"+ + "\u0000\u0b8e\u0b8f\u0007\r\u0000\u0000\u0b8f\u0b90\u0007\u000b\u0000\u0000"+ + "\u0b90\u023c\u0001\u0000\u0000\u0000\u0b91\u0b92\u0007\r\u0000\u0000\u0b92"+ + "\u0b93\u0007\u0002\u0000\u0000\u0b93\u0b94\u0007\u0004\u0000\u0000\u0b94"+ + "\u0b95\u0007\u000b\u0000\u0000\u0b95\u023e\u0001\u0000\u0000\u0000\u0b96"+ + "\u0b97\u0007\u0002\u0000\u0000\u0b97\u0b98\u0007\n\u0000\u0000\u0b98\u0b99"+ + "\u0007\u0007\u0000\u0000\u0b99\u0b9a\u0007\u0006\u0000\u0000\u0b9a\u0b9b"+ + "\u0007\u0000\u0000\u0000\u0b9b\u0b9c\u0007\u0006\u0000\u0000\u0b9c\u0b9d"+ + "\u0007\u0000\u0000\u0000\u0b9d\u0b9e\u0007\r\u0000\u0000\u0b9e\u0b9f\u0007"+ + "\u000b\u0000\u0000\u0b9f\u0240\u0001\u0000\u0000\u0000\u0ba0\u0ba1\u0007"+ + "\u0002\u0000\u0000\u0ba1\u0ba2\u0007\u0007\u0000\u0000\u0ba2\u0ba3\u0007"+ + "\r\u0000\u0000\u0ba3\u0ba4\u0007\u0015\u0000\u0000\u0ba4\u0ba5\u0007\u0004"+ + "\u0000\u0000\u0ba5\u0ba6\u0007\u0016\u0000\u0000\u0ba6\u0ba7\u0007\b\u0000"+ + "\u0000\u0ba7\u0ba8\u0007\u0007\u0000\u0000\u0ba8\u0ba9\u0007\u0004\u0000"+ + "\u0000\u0ba9\u0242\u0001\u0000\u0000\u0000\u0baa\u0bab\u0007\u0002\u0000"+ + "\u0000\u0bab\u0bac\u0007\u0007\u0000\u0000\u0bac\u0bad\u0007\r\u0000\u0000"+ + "\u0bad\u0bae\u0007\u0016\u0000\u0000\u0bae\u0baf\u0007\b\u0000\u0000\u0baf"+ + "\u0bb0\u0007\u0015\u0000\u0000\u0bb0\u0bb1\u0007\u0006\u0000\u0000\u0bb1"+ + "\u0244\u0001\u0000\u0000\u0000\u0bb2\u0bb3\u0007\u0002\u0000\u0000\u0bb3"+ + "\u0bb4\u0007\u0007\u0000\u0000\u0bb4\u0bb5\u0007\r\u0000\u0000\u0bb5\u0bb6"+ + "\u0007\u001d\u0000\u0000\u0bb6\u0bb7\u0007\u0004\u0000\u0000\u0bb7\u0bb8"+ + "\u0007\u0015\u0000\u0000\u0bb8\u0bb9\u0007\u0006\u0000\u0000\u0bb9\u0246"+ + "\u0001\u0000\u0000\u0000\u0bba\u0bbb\u0007\u001c\u0000\u0000\u0bbb\u0bbc"+ + "\u0007\b\u0000\u0000\u0bbc\u0bbd\u0007\u0004\u0000\u0000\u0bbd\u0bbe\u0007"+ + "\u0007\u0000\u0000\u0bbe\u0bbf\u0007\u0017\u0000\u0000\u0bbf\u0248\u0001"+ + "\u0000\u0000\u0000\u0bc0\u0bc1\u0007\u0007\u0000\u0000\u0bc1\u0bc2\u0007"+ + "\u0004\u0000\u0000\u0bc2\u0bc3\u0007\u0015\u0000\u0000\u0bc3\u0bc4\u0007"+ + "\r\u0000\u0000\u0bc4\u0bc5\u0007\u0007\u0000\u0000\u0bc5\u0bc6\u0007\u0016"+ + "\u0000\u0000\u0bc6\u0bc7\u0007\u0005\u0000\u0000\u0bc7\u024a\u0001\u0000"+ + "\u0000\u0000\u0bc8\u0bc9\u0007\u0007\u0000\u0000\u0bc9\u0bca\u0007\u0004"+ + "\u0000\u0000\u0bca\u0bcb\u0007\t\u0000\u0000\u0bcb\u0bcc\u0007\u0004\u0000"+ + "\u0000\u0bcc\u0bcd\u0007\u0007\u0000\u0000\u0bcd\u0bce\u0007\u0004\u0000"+ + "\u0000\u0bce\u0bcf\u0007\u000b\u0000\u0000\u0bcf\u0bd0\u0007\u0015\u0000"+ + "\u0000\u0bd0\u0bd1\u0007\u0004\u0000\u0000\u0bd1\u024c\u0001\u0000\u0000"+ + "\u0000\u0bd2\u0bd3\u0007\u0007\u0000\u0000\u0bd3\u0bd4\u0007\u0004\u0000"+ + "\u0000\u0bd4\u0bd5\u0007\u000b\u0000\u0000\u0bd5\u0bd6\u0007\n\u0000\u0000"+ + "\u0bd6\u0bd7\u0007\u0001\u0000\u0000\u0bd7\u0bd8\u0007\u0004\u0000\u0000"+ + "\u0bd8\u024e\u0001\u0000\u0000\u0000\u0bd9\u0bda\u0007\u0007\u0000\u0000"+ + "\u0bda\u0bdb\u0007\u0004\u0000\u0000\u0bdb\u0bdc\u0007\u0019\u0000\u0000"+ + "\u0bdc\u0bdd\u0007\r\u0000\u0000\u0bdd\u0bde\u0007\f\u0000\u0000\u0bde"+ + "\u0bdf\u0007\u0004\u0000\u0000\u0bdf\u0250\u0001\u0000\u0000\u0000\u0be0"+ + "\u0be1\u0007\u0005\u0000\u0000\u0be1\u0be2\u0007\b\u0000\u0000\u0be2\u0be3"+ + "\u0007\u0012\u0000\u0000\u0be3\u0be4\u0007\u0005\u0000\u0000\u0be4\u0be5"+ + "\u0007\u0006\u0000\u0000\u0be5\u0be6\u0007\u0007\u0000\u0000\u0be6\u0be7"+ + "\u0007\u0000\u0000\u0000\u0be7\u0be8\u0007\u000b\u0000\u0000\u0be8\u0be9"+ + "\u0007\u0018\u0000\u0000\u0be9\u0252\u0001\u0000\u0000\u0000\u0bea\u0beb"+ + "\u0007\u0005\u0000\u0000\u0beb\u0bec\u0007\u0017\u0000\u0000\u0bec\u0bed"+ + "\u0007\u0005\u0000\u0000\u0bed\u0bee\u0007\u0006\u0000\u0000\u0bee\u0bef"+ + "\u0007\u0004\u0000\u0000\u0bef\u0bf0\u0007\u0001\u0000\u0000\u0bf0\u0bf1"+ + "\u0005_\u0000\u0000\u0bf1\u0bf2\u0007\b\u0000\u0000\u0bf2\u0bf3\u0007"+ + "\u0005\u0000\u0000\u0bf3\u0bf4\u0007\u0004\u0000\u0000\u0bf4\u0bf5\u0007"+ + "\u0007\u0000\u0000\u0bf5\u0254\u0001\u0000\u0000\u0000\u0bf6\u0bf7\u0007"+ + "\u0006\u0000\u0000\u0bf7\u0bf8\u0007\u0004\u0000\u0000\u0bf8\u0bf9\u0007"+ + "\u0001\u0000\u0000\u0bf9\u0bfa\u0007\u0002\u0000\u0000\u0bfa\u0bfb\u0007"+ + "\r\u0000\u0000\u0bfb\u0bfc\u0007\u0007\u0000\u0000\u0bfc\u0bfd\u0007\n"+ + "\u0000\u0000\u0bfd\u0bfe\u0007\u0003\u0000\u0000\u0bfe\u0256\u0001\u0000"+ + "\u0000\u0000\u0bff\u0c00\u0007\b\u0000\u0000\u0c00\u0c01\u0007\u000b\u0000"+ + "\u0000\u0c01\u0c02\u0007\u0000\u0000\u0000\u0c02\u0c03\u0007\u001c\u0000"+ + "\u0000\u0c03\u0c04\u0007\b\u0000\u0000\u0c04\u0c05\u0007\u0004\u0000\u0000"+ + "\u0c05\u0258\u0001\u0000\u0000\u0000\u0c06\u0c07\u0007\b\u0000\u0000\u0c07"+ + "\u0c08\u0007\u000b\u0000\u0000\u0c08\u0c09\u0007\u0000\u0000\u0000\u0c09"+ + "\u0c0a\u0007\u0006\u0000\u0000\u0c0a\u025a\u0001\u0000\u0000\u0000\u0c0b"+ + "\u0c0c\u0007\u0019\u0000\u0000\u0c0c\u0c0d\u0007\n\u0000\u0000\u0c0d\u0c0e"+ + "\u0007\u0003\u0000\u0000\u0c0e\u0c0f\u0007\b\u0000\u0000\u0c0f\u0c10\u0007"+ + "\u0004\u0000\u0000\u0c10\u0c11\u0007\u0005\u0000\u0000\u0c11\u025c\u0001"+ + "\u0000\u0000\u0000\u0c12\u0c13\u0007\n\u0000\u0000\u0c13\u0c14\u0007\u0015"+ + "\u0000\u0000\u0c14\u0c15\u0007\u0017\u0000\u0000\u0c15\u0c16\u0007\u0015"+ + "\u0000\u0000\u0c16\u0c17\u0007\u0003\u0000\u0000\u0c17\u0c18\u0007\u0000"+ + "\u0000\u0000\u0c18\u0c19\u0007\u0015\u0000\u0000\u0c19\u025e\u0001\u0000"+ + "\u0000\u0000\u0c1a\u0c1b\u0007\u0012\u0000\u0000\u0c1b\u0c1c\u0007\u0000"+ + "\u0000\u0000\u0c1c\u0c1d\u0007\u000b\u0000\u0000\u0c1d\u0c1e\u0007\u0016"+ + "\u0000\u0000\u0c1e\u0c1f\u0007\u0000\u0000\u0000\u0c1f\u0c20\u0007\u000b"+ + "\u0000\u0000\u0c20\u0c21\u0007\u0018\u0000\u0000\u0c21\u0260\u0001\u0000"+ + "\u0000\u0000\u0c22\u0c23\u0007\u0012\u0000\u0000\u0c23\u0c24\u0007\u0000"+ + "\u0000\u0000\u0c24\u0c25\u0007\u000b\u0000\u0000\u0c25\u0c26\u0007\u0016"+ + "\u0000\u0000\u0c26\u0c27\u0007\u0000\u0000\u0000\u0c27\u0c28\u0007\u000b"+ + "\u0000\u0000\u0c28\u0c29\u0007\u0018\u0000\u0000\u0c29\u0c2a\u0007\u0005"+ + "\u0000\u0000\u0c2a\u0262\u0001\u0000\u0000\u0000\u0c2b\u0c2c\u0007\u0015"+ + "\u0000\u0000\u0c2c\u0c2d\u0007\r\u0000\u0000\u0c2d\u0c2e\u0007\u000b\u0000"+ + "\u0000\u0c2e\u0c2f\u0007\u000b\u0000\u0000\u0c2f\u0c30\u0007\u0004\u0000"+ + "\u0000\u0c30\u0c31\u0007\u0015\u0000\u0000\u0c31\u0c32\u0007\u0006\u0000"+ + "\u0000\u0c32\u0c33\u0007\u0000\u0000\u0000\u0c33\u0c34\u0007\u000b\u0000"+ + "\u0000\u0c34\u0c35\u0007\u0018\u0000\u0000\u0c35\u0264\u0001\u0000\u0000"+ + "\u0000\u0c36\u0c37\u0007\u0016\u0000\u0000\u0c37\u0c38\u0007\u0004\u0000"+ + "\u0000\u0c38\u0c39\u0007\u0005\u0000\u0000\u0c39\u0c3a\u0007\u0006\u0000"+ + "\u0000\u0c3a\u0c3b\u0007\u0000\u0000\u0000\u0c3b\u0c3c\u0007\u000b\u0000"+ + "\u0000\u0c3c\u0c3d\u0007\n\u0000\u0000\u0c3d\u0c3e\u0007\u0006\u0000\u0000"+ + "\u0c3e\u0c3f\u0007\u0000\u0000\u0000\u0c3f\u0c40\u0007\r\u0000\u0000\u0c40"+ + "\u0c41\u0007\u000b\u0000\u0000\u0c41\u0266\u0001\u0000\u0000\u0000\u0c42"+ + "\u0c43\u0007\u0016\u0000\u0000\u0c43\u0c44\u0007\u0000\u0000\u0000\u0c44"+ + "\u0c45\u0007\t\u0000\u0000\u0c45\u0c46\u0007\t\u0000\u0000\u0c46\u0c47"+ + "\u0007\u0004\u0000\u0000\u0c47\u0c48\u0007\u0007\u0000\u0000\u0c48\u0c49"+ + "\u0007\u0004\u0000\u0000\u0c49\u0c4a\u0007\u000b\u0000\u0000\u0c4a\u0c4b"+ + "\u0007\u0006\u0000\u0000\u0c4b\u0268\u0001\u0000\u0000\u0000\u0c4c\u0c4d"+ + "\u0007\u0016\u0000\u0000\u0c4d\u0c4e\u0007\u0000\u0000\u0000\u0c4e\u0c4f"+ + "\u0007\u0007\u0000\u0000\u0c4f\u0c50\u0007\u0004\u0000\u0000\u0c50\u0c51"+ + "\u0007\u0015\u0000\u0000\u0c51\u0c52\u0007\u0006\u0000\u0000\u0c52\u0c53"+ + "\u0007\u0004\u0000\u0000\u0c53\u0c54\u0007\u0016\u0000\u0000\u0c54\u026a"+ + "\u0001\u0000\u0000\u0000\u0c55\u0c56\u0007\u0004\u0000\u0000\u0c56\u0c57"+ + "\u0007\u0016\u0000\u0000\u0c57\u0c58\u0007\u0018\u0000\u0000\u0c58\u0c59"+ + "\u0007\u0004\u0000\u0000\u0c59\u026c\u0001\u0000\u0000\u0000\u0c5a\u0c5b"+ + "\u0007\u0004\u0000\u0000\u0c5b\u0c5c\u0007\u0016\u0000\u0000\u0c5c\u0c5d"+ + "\u0007\u0018\u0000\u0000\u0c5d\u0c5e\u0007\u0004\u0000\u0000\u0c5e\u0c5f"+ + "\u0007\u0005\u0000\u0000\u0c5f\u026e\u0001\u0000\u0000\u0000\u0c60\u0c61"+ + "\u0007\u0004\u0000\u0000\u0c61\u0c62\u0007\u0003\u0000\u0000\u0c62\u0c63"+ + "\u0007\u0004\u0000\u0000\u0c63\u0c64\u0007\u0001\u0000\u0000\u0c64\u0c65"+ + "\u0007\u0004\u0000\u0000\u0c65\u0c66\u0007\u000b\u0000\u0000\u0c66\u0c67"+ + "\u0007\u0006\u0000\u0000\u0c67\u0270\u0001\u0000\u0000\u0000\u0c68\u0c69"+ + "\u0007\u0004\u0000\u0000\u0c69\u0c6a\u0007\u0003\u0000\u0000\u0c6a\u0c6b"+ + "\u0007\u0004\u0000\u0000\u0c6b\u0c6c\u0007\u0001\u0000\u0000\u0c6c\u0c6d"+ + "\u0007\u0004\u0000\u0000\u0c6d\u0c6e\u0007\u000b\u0000\u0000\u0c6e\u0c6f"+ + "\u0007\u0006\u0000\u0000\u0c6f\u0c70\u0007\u0005\u0000\u0000\u0c70\u0272"+ + "\u0001\u0000\u0000\u0000\u0c71\u0c72\u0007\t\u0000\u0000\u0c72\u0c73\u0007"+ + "\u0000\u0000\u0000\u0c73\u0c74\u0007\u0007\u0000\u0000\u0c74\u0c75\u0007"+ + "\u0005\u0000\u0000\u0c75\u0c76\u0007\u0006\u0000\u0000\u0c76\u0274\u0001"+ + "\u0000\u0000\u0000\u0c77\u0c78\u0007\u0018\u0000\u0000\u0c78\u0c79\u0007"+ + "\u0007\u0000\u0000\u0c79\u0c7a\u0007\n\u0000\u0000\u0c7a\u0c7b\u0007\u0002"+ + "\u0000\u0000\u0c7b\u0c7c\u0007\u001a\u0000\u0000\u0c7c\u0276\u0001\u0000"+ + "\u0000\u0000\u0c7d\u0c7e\u0007\u0018\u0000\u0000\u0c7e\u0c7f\u0007\u0007"+ + "\u0000\u0000\u0c7f\u0c80\u0007\r\u0000\u0000\u0c80\u0c81\u0007\b\u0000"+ + "\u0000\u0c81\u0c82\u0007\u0002\u0000\u0000\u0c82\u0c83\u0007\u0005\u0000"+ + "\u0000\u0c83\u0278\u0001\u0000\u0000\u0000\u0c84\u0c85\u0007\f\u0000\u0000"+ + "\u0c85\u0c86\u0007\u0004\u0000\u0000\u0c86\u0c87\u0007\u0004\u0000\u0000"+ + "\u0c87\u0c88\u0007\u0002\u0000\u0000\u0c88\u027a\u0001\u0000\u0000\u0000"+ + "\u0c89\u0c8a\u0007\u0003\u0000\u0000\u0c8a\u0c8b\u0007\n\u0000\u0000\u0c8b"+ + "\u0c8c\u0007\u0012\u0000\u0000\u0c8c\u0c8d\u0007\u0004\u0000\u0000\u0c8d"+ + "\u0c8e\u0007\u0003\u0000\u0000\u0c8e\u027c\u0001\u0000\u0000\u0000\u0c8f"+ + "\u0c90\u0007\u0003\u0000\u0000\u0c90\u0c91\u0007\n\u0000\u0000\u0c91\u0c92"+ + "\u0007\u0012\u0000\u0000\u0c92\u0c93\u0007\u0004\u0000\u0000\u0c93\u0c94"+ + "\u0007\u0003\u0000\u0000\u0c94\u0c95\u0007\u0004\u0000\u0000\u0c95\u0c96"+ + "\u0007\u0016\u0000\u0000\u0c96\u027e\u0001\u0000\u0000\u0000\u0c97\u0c98"+ + "\u0007\u0003\u0000\u0000\u0c98\u0c99\u0007\n\u0000\u0000\u0c99\u0c9a\u0007"+ + "\u0012\u0000\u0000\u0c9a\u0c9b\u0007\u0004\u0000\u0000\u0c9b\u0c9c\u0007"+ + "\u0003\u0000\u0000\u0c9c\u0c9d\u0007\u0005\u0000\u0000\u0c9d\u0280\u0001"+ + "\u0000\u0000\u0000\u0c9e\u0c9f\u0007\u0003\u0000\u0000\u0c9f\u0ca0\u0007"+ + "\n\u0000\u0000\u0ca0\u0ca1\u0007\u0005\u0000\u0000\u0ca1\u0ca2\u0007\u0006"+ + "\u0000\u0000\u0ca2\u0282\u0001\u0000\u0000\u0000\u0ca3\u0ca4\u0007\u000b"+ + "\u0000\u0000\u0ca4\u0ca5\u0007\t\u0000\u0000\u0ca5\u0ca6\u0007\u0015\u0000"+ + "\u0000\u0ca6\u0284\u0001\u0000\u0000\u0000\u0ca7\u0ca8\u0007\u000b\u0000"+ + "\u0000\u0ca8\u0ca9\u0007\t\u0000\u0000\u0ca9\u0caa\u0007\u0016\u0000\u0000"+ + "\u0caa\u0286\u0001\u0000\u0000\u0000\u0cab\u0cac\u0007\u000b\u0000\u0000"+ + "\u0cac\u0cad\u0007\t\u0000\u0000\u0cad\u0cae\u0007\f\u0000\u0000\u0cae"+ + "\u0caf\u0007\u0015\u0000\u0000\u0caf\u0288\u0001\u0000\u0000\u0000\u0cb0"+ + "\u0cb1\u0007\u000b\u0000\u0000\u0cb1\u0cb2\u0007\t\u0000\u0000\u0cb2\u0cb3"+ + "\u0007\f\u0000\u0000\u0cb3\u0cb4\u0007\u0016\u0000\u0000\u0cb4\u028a\u0001"+ + "\u0000\u0000\u0000\u0cb5\u0cb6\u0007\u000b\u0000\u0000\u0cb6\u0cb7\u0007"+ + "\r\u0000\u0000\u0cb7\u028c\u0001\u0000\u0000\u0000\u0cb8\u0cb9\u0007\u000b"+ + "\u0000\u0000\u0cb9\u0cba\u0007\r\u0000\u0000\u0cba\u0cbb\u0007\u0016\u0000"+ + "\u0000\u0cbb\u0cbc\u0007\u0004\u0000\u0000\u0cbc\u028e\u0001\u0000\u0000"+ + "\u0000\u0cbd\u0cbe\u0007\u000b\u0000\u0000\u0cbe\u0cbf\u0007\r\u0000\u0000"+ + "\u0cbf\u0cc0\u0007\u0007\u0000\u0000\u0cc0\u0cc1\u0007\u0001\u0000\u0000"+ + "\u0cc1\u0cc2\u0007\n\u0000\u0000\u0cc2\u0cc3\u0007\u0003\u0000\u0000\u0cc3"+ + "\u0cc4\u0007\u0000\u0000\u0000\u0cc4\u0cc5\u0007\u001b\u0000\u0000\u0cc5"+ + "\u0cc6\u0007\u0004\u0000\u0000\u0cc6\u0cc7\u0007\u0016\u0000\u0000\u0cc7"+ + "\u0290\u0001\u0000\u0000\u0000\u0cc8\u0cc9\u0007\r\u0000\u0000\u0cc9\u0cca"+ + "\u0007\u000b\u0000\u0000\u0cca\u0ccb\u0007\u0003\u0000\u0000\u0ccb\u0ccc"+ + "\u0007\u0017\u0000\u0000\u0ccc\u0292\u0001\u0000\u0000\u0000\u0ccd\u0cce"+ + "\u0007\r\u0000\u0000\u0cce\u0ccf\u0007\u0007\u0000\u0000\u0ccf\u0cd0\u0007"+ + "\u0016\u0000\u0000\u0cd0\u0cd1\u0007\u0000\u0000\u0000\u0cd1\u0cd2\u0007"+ + "\u000b\u0000\u0000\u0cd2\u0cd3\u0007\n\u0000\u0000\u0cd3\u0cd4\u0007\u0003"+ + "\u0000\u0000\u0cd4\u0cd5\u0007\u0000\u0000\u0000\u0cd5\u0cd6\u0007\u0006"+ + "\u0000\u0000\u0cd6\u0cd7\u0007\u0017\u0000\u0000\u0cd7\u0294\u0001\u0000"+ + "\u0000\u0000\u0cd8\u0cd9\u0007\u0002\u0000\u0000\u0cd9\u0cda\u0007\u0007"+ + "\u0000\u0000\u0cda\u0cdb\u0007\r\u0000\u0000\u0cdb\u0cdc\u0007\u0002\u0000"+ + "\u0000\u0cdc\u0cdd\u0007\u0004\u0000\u0000\u0cdd\u0cde\u0007\u0007\u0000"+ + "\u0000\u0cde\u0cdf\u0007\u0006\u0000\u0000\u0cdf\u0ce0\u0007\u0017\u0000"+ + "\u0000\u0ce0\u0296\u0001\u0000\u0000\u0000\u0ce1\u0ce2\u0007\u0007\u0000"+ + "\u0000\u0ce2\u0ce3\u0007\u0004\u0000\u0000\u0ce3\u0ce4\u0007\n\u0000\u0000"+ + "\u0ce4\u0ce5\u0007\u0016\u0000\u0000\u0ce5\u0298\u0001\u0000\u0000\u0000"+ + "\u0ce6\u0ce7\u0007\u0007\u0000\u0000\u0ce7\u0ce8\u0007\u0004\u0000\u0000"+ + "\u0ce8\u0ce9\u0007\u0003\u0000\u0000\u0ce9\u0cea\u0007\n\u0000\u0000\u0cea"+ + "\u0ceb\u0007\u0006\u0000\u0000\u0ceb\u0cec\u0007\u0000\u0000\u0000\u0cec"+ + "\u0ced\u0007\r\u0000\u0000\u0ced\u0cee\u0007\u000b\u0000\u0000\u0cee\u0cef"+ + "\u0007\u0005\u0000\u0000\u0cef\u0cf0\u0007\u001a\u0000\u0000\u0cf0\u0cf1"+ + "\u0007\u0000\u0000\u0000\u0cf1\u0cf2\u0007\u0002\u0000\u0000\u0cf2\u029a"+ + "\u0001\u0000\u0000\u0000\u0cf3\u0cf4\u0007\u0007\u0000\u0000\u0cf4\u0cf5"+ + "\u0007\u0004\u0000\u0000\u0cf5\u0cf6\u0007\u0003\u0000\u0000\u0cf6\u0cf7"+ + "\u0007\n\u0000\u0000\u0cf7\u0cf8\u0007\u0006\u0000\u0000\u0cf8\u0cf9\u0007"+ + "\u0000\u0000\u0000\u0cf9\u0cfa\u0007\r\u0000\u0000\u0cfa\u0cfb\u0007\u000b"+ + "\u0000\u0000\u0cfb\u0cfc\u0007\u0005\u0000\u0000\u0cfc\u0cfd\u0007\u001a"+ + "\u0000\u0000\u0cfd\u0cfe\u0007\u0000\u0000\u0000\u0cfe\u0cff\u0007\u0002"+ + "\u0000\u0000\u0cff\u0d00\u0007\u0005\u0000\u0000\u0d00\u029c\u0001\u0000"+ + "\u0000\u0000\u0d01\u0d02\u0007\u0007\u0000\u0000\u0d02\u0d03\u0007\u0004"+ + "\u0000\u0000\u0d03\u0d04\u0007\u0002\u0000\u0000\u0d04\u0d05\u0007\u0004"+ + "\u0000\u0000\u0d05\u0d06\u0007\n\u0000\u0000\u0d06\u0d07\u0007\u0006\u0000"+ + "\u0000\u0d07\u0d08\u0007\n\u0000\u0000\u0d08\u0d09\u0007\u0012\u0000\u0000"+ + "\u0d09\u0d0a\u0007\u0003\u0000\u0000\u0d0a\u0d0b\u0007\u0004\u0000\u0000"+ + "\u0d0b\u029e\u0001\u0000\u0000\u0000\u0d0c\u0d0d\u0007\u0005\u0000\u0000"+ + "\u0d0d\u0d0e\u0007\u001a\u0000\u0000\u0d0e\u0d0f\u0007\r\u0000\u0000\u0d0f"+ + "\u0d10\u0007\u0007\u0000\u0000\u0d10\u0d11\u0007\u0006\u0000\u0000\u0d11"+ + "\u0d12\u0007\u0004\u0000\u0000\u0d12\u0d13\u0007\u0005\u0000\u0000\u0d13"+ + "\u0d14\u0007\u0006\u0000\u0000\u0d14\u02a0\u0001\u0000\u0000\u0000\u0d15"+ + "\u0d16\u0007\u0005\u0000\u0000\u0d16\u0d17\u0007\u0000\u0000\u0000\u0d17"+ + "\u0d18\u0007\u0001\u0000\u0000\u0d18\u0d19\u0007\u0002\u0000\u0000\u0d19"+ + "\u0d1a\u0007\u0003\u0000\u0000\u0d1a\u0d1b\u0007\u0004\u0000\u0000\u0d1b"+ + "\u02a2\u0001\u0000\u0000\u0000\u0d1c\u0d1d\u0007\u0005\u0000\u0000\u0d1d"+ + "\u0d1e\u0007\r\u0000\u0000\u0d1e\u0d1f\u0007\b\u0000\u0000\u0d1f\u0d20"+ + "\u0007\u0007\u0000\u0000\u0d20\u0d21\u0007\u0015\u0000\u0000\u0d21\u0d22"+ + "\u0007\u0004\u0000\u0000\u0d22\u02a4\u0001\u0000\u0000\u0000\u0d23\u0d24"+ + "\u0007\u0006\u0000\u0000\u0d24\u0d25\u0007\n\u0000\u0000\u0d25\u0d26\u0007"+ + "\u0012\u0000\u0000\u0d26\u0d27\u0007\u0003\u0000\u0000\u0d27\u0d28\u0007"+ + "\u0004\u0000\u0000\u0d28\u02a6\u0001\u0000\u0000\u0000\u0d29\u0d2a\u0007"+ + "\u0006\u0000\u0000\u0d2a\u0d2b\u0007\u0004\u0000\u0000\u0d2b\u0d2c\u0007"+ + "\u0001\u0000\u0000\u0d2c\u0d2d\u0007\u0002\u0000\u0000\u0d2d\u02a8\u0001"+ + "\u0000\u0000\u0000\u0d2e\u0d2f\u0007\u0006\u0000\u0000\u0d2f\u0d30\u0007"+ + "\r\u0000\u0000\u0d30\u02aa\u0001\u0000\u0000\u0000\u0d31\u0d32\u0007\u0006"+ + "\u0000\u0000\u0d32\u0d33\u0007\u0007\u0000\u0000\u0d33\u0d34\u0007\n\u0000"+ + "\u0000\u0d34\u0d35\u0007\u0000\u0000\u0000\u0d35\u0d36\u0007\u0003\u0000"+ + "\u0000\u0d36\u02ac\u0001\u0000\u0000\u0000\u0d37\u0d38\u0007\u0006\u0000"+ + "\u0000\u0d38\u0d39\u0007\u0007\u0000\u0000\u0d39\u0d3a\u0007\n\u0000\u0000"+ + "\u0d3a\u0d3b\u0007\u000b\u0000\u0000\u0d3b\u0d3c\u0007\u0005\u0000\u0000"+ + "\u0d3c\u0d3d\u0007\n\u0000\u0000\u0d3d\u0d3e\u0007\u0015\u0000\u0000\u0d3e"+ + "\u0d3f\u0007\u0006\u0000\u0000\u0d3f\u0d40\u0007\u0000\u0000\u0000\u0d40"+ + "\u0d41\u0007\r\u0000\u0000\u0d41\u0d42\u0007\u000b\u0000\u0000\u0d42\u02ae"+ + "\u0001\u0000\u0000\u0000\u0d43\u0d44\u0007\u0006\u0000\u0000\u0d44\u0d45"+ + "\u0007\u0017\u0000\u0000\u0d45\u0d46\u0007\u0002\u0000\u0000\u0d46\u0d47"+ + "\u0007\u0004\u0000\u0000\u0d47\u02b0\u0001\u0000\u0000\u0000\u0d48\u0d49"+ + "\u0007\b\u0000\u0000\u0d49\u0d4a\u0007\u000b\u0000\u0000\u0d4a\u0d4b\u0007"+ + "\u0016\u0000\u0000\u0d4b\u0d4c\u0007\u0000\u0000\u0000\u0d4c\u0d4d\u0007"+ + "\u0007\u0000\u0000\u0d4d\u0d4e\u0007\u0004\u0000\u0000\u0d4e\u0d4f\u0007"+ + "\u0015\u0000\u0000\u0d4f\u0d50\u0007\u0006\u0000\u0000\u0d50\u0d51\u0007"+ + "\u0004\u0000\u0000\u0d51\u0d52\u0007\u0016\u0000\u0000\u0d52\u02b2\u0001"+ + "\u0000\u0000\u0000\u0d53\u0d54\u0007\u0019\u0000\u0000\u0d54\u0d55\u0007"+ + "\u0004\u0000\u0000\u0d55\u0d56\u0007\u0007\u0000\u0000\u0d56\u0d57\u0007"+ + "\u0006\u0000\u0000\u0d57\u0d58\u0007\u0004\u0000\u0000\u0d58\u0d59\u0007"+ + "\u0013\u0000\u0000\u0d59\u02b4\u0001\u0000\u0000\u0000\u0d5a\u0d5b\u0007"+ + "\u000e\u0000\u0000\u0d5b\u0d5c\u0007\n\u0000\u0000\u0d5c\u0d5d\u0007\u0003"+ + "\u0000\u0000\u0d5d\u0d5e\u0007\f\u0000\u0000\u0d5e\u02b6\u0001\u0000\u0000"+ + "\u0000\u0d5f\u0d60\u0007\u000e\u0000\u0000\u0d60\u0d61\u0007\u0000\u0000"+ + "\u0000\u0d61\u0d62\u0007\u0006\u0000\u0000\u0d62\u0d63\u0007\u001a\u0000"+ + "\u0000\u0d63\u0d64\u0007\r\u0000\u0000\u0d64\u0d65\u0007\b\u0000\u0000"+ + "\u0d65\u0d66\u0007\u0006\u0000\u0000\u0d66\u02b8\u0001\u0000\u0000\u0000"+ + "\u0d67\u0d68\u0007\u000e\u0000\u0000\u0d68\u0d69\u0007\u0007\u0000\u0000"+ + "\u0d69\u0d6a\u0007\u0000\u0000\u0000\u0d6a\u0d6b\u0007\u0006\u0000\u0000"+ + "\u0d6b\u0d6c\u0007\u0004\u0000\u0000\u0d6c\u02ba\u0001\u0000\u0000\u0000"+ + "\u0d6d\u0d6e\u0007\u001b\u0000\u0000\u0d6e\u0d6f\u0007\r\u0000\u0000\u0d6f"+ + "\u0d70\u0007\u000b\u0000\u0000\u0d70\u0d71\u0007\u0004\u0000\u0000\u0d71"+ + "\u02bc\u0001\u0000\u0000\u0000\u0d72\u0d75\u0003\u02c3\u0161\u0000\u0d73"+ + "\u0d75\u0003\u02c1\u0160\u0000\u0d74\u0d72\u0001\u0000\u0000\u0000\u0d74"+ + "\u0d73\u0001\u0000\u0000\u0000\u0d75\u02be\u0001\u0000\u0000\u0000\u0d76"+ + "\u0d7a\u0003\u02c9\u0164\u0000\u0d77\u0d79\u0003\u02cb\u0165\u0000\u0d78"+ + "\u0d77\u0001\u0000\u0000\u0000\u0d79\u0d7c\u0001\u0000\u0000\u0000\u0d7a"+ + "\u0d78\u0001\u0000\u0000\u0000\u0d7a\u0d7b\u0001\u0000\u0000\u0000\u0d7b"+ + "\u02c0\u0001\u0000\u0000\u0000\u0d7c\u0d7a\u0001\u0000\u0000\u0000\u0d7d"+ + "\u0d7f\u0003\u02cb\u0165\u0000\u0d7e\u0d7d\u0001\u0000\u0000\u0000\u0d7f"+ + "\u0d80\u0001\u0000\u0000\u0000\u0d80\u0d7e\u0001\u0000\u0000\u0000\u0d80"+ + "\u0d81\u0001\u0000\u0000\u0000\u0d81\u02c2\u0001\u0000\u0000\u0000\u0d82"+ + "\u0d85\u0003\t\u0004\u0000\u0d83\u0d85\u0003\u000b\u0005\u0000\u0d84\u0d82"+ + "\u0001\u0000\u0000\u0000\u0d84\u0d83\u0001\u0000\u0000\u0000\u0d85\u02c4"+ + "\u0001\u0000\u0000\u0000\u0d86\u0d87\u0003\u02db\u016d\u0000\u0d87\u0d88"+ + "\u0003\u0003\u0001\u0000\u0d88\u02c6\u0001\u0000\u0000\u0000\u0d89\u0d8a"+ + "\u0003\u0317\u018b\u0000\u0d8a\u0d8b\u0003\u0003\u0001\u0000\u0d8b\u02c8"+ + "\u0001\u0000\u0000\u0000\u0d8c\u0d8f\u0003\u02cd\u0166\u0000\u0d8d\u0d8f"+ + "\u0003\u0363\u01b1\u0000\u0d8e\u0d8c\u0001\u0000\u0000\u0000\u0d8e\u0d8d"+ + "\u0001\u0000\u0000\u0000\u0d8f\u02ca\u0001\u0000\u0000\u0000\u0d90\u0d91"+ + "\u0003\u02cf\u0167\u0000\u0d91\u02cc\u0001\u0000\u0000\u0000\u0d92\u0d93"+ + "\u0007\u001e\u0000\u0000\u0d93\u02ce\u0001\u0000\u0000\u0000\u0d94\u0d95"+ + "\u0007\u001f\u0000\u0000\u0d95\u02d0\u0001\u0000\u0000\u0000\u0d96\u0d97"+ + "\u0005|\u0000\u0000\u0d97\u0d98\u0005+\u0000\u0000\u0d98\u0d99\u0005|"+ + "\u0000\u0000\u0d99\u02d2\u0001\u0000\u0000\u0000\u0d9a\u0d9b\u0005]\u0000"+ + "\u0000\u0d9b\u0d9c\u0005-\u0000\u0000\u0d9c\u0d9d\u0005>\u0000\u0000\u0d9d"+ + "\u02d4\u0001\u0000\u0000\u0000\u0d9e\u0d9f\u0005]\u0000\u0000\u0d9f\u0da0"+ + "\u0005~\u0000\u0000\u0da0\u0da1\u0005>\u0000\u0000\u0da1\u02d6\u0001\u0000"+ + "\u0000\u0000\u0da2\u0da3\u0005|\u0000\u0000\u0da3\u0da4\u0005|\u0000\u0000"+ + "\u0da4\u02d8\u0001\u0000\u0000\u0000\u0da5\u0da6\u0005:\u0000\u0000\u0da6"+ + "\u0da7\u0005:\u0000\u0000\u0da7\u02da\u0001\u0000\u0000\u0000\u0da8\u0da9"+ + "\u0005$\u0000\u0000\u0da9\u0daa\u0005$\u0000\u0000\u0daa\u02dc\u0001\u0000"+ + "\u0000\u0000\u0dab\u0dac\u0005.\u0000\u0000\u0dac\u0dad\u0005.\u0000\u0000"+ + "\u0dad\u02de\u0001\u0000\u0000\u0000\u0dae\u0daf\u0005>\u0000\u0000\u0daf"+ + "\u0db0\u0005=\u0000\u0000\u0db0\u02e0\u0001\u0000\u0000\u0000\u0db1\u0db2"+ + "\u0005<\u0000\u0000\u0db2\u0db3\u0005-\u0000\u0000\u0db3\u02e2\u0001\u0000"+ + "\u0000\u0000\u0db4\u0db5\u0005<\u0000\u0000\u0db5\u0db6\u0005~\u0000\u0000"+ + "\u0db6\u02e4\u0001\u0000\u0000\u0000\u0db7\u0db8\u0005<\u0000\u0000\u0db8"+ + "\u0db9\u0005-\u0000\u0000\u0db9\u0dba\u0005[\u0000\u0000\u0dba\u02e6\u0001"+ + "\u0000\u0000\u0000\u0dbb\u0dbc\u0005<\u0000\u0000\u0dbc\u0dbd\u0005~\u0000"+ + "\u0000\u0dbd\u0dbe\u0005[\u0000\u0000\u0dbe\u02e8\u0001\u0000\u0000\u0000"+ + "\u0dbf\u0dc0\u0005<\u0000\u0000\u0dc0\u0dc1\u0005-\u0000\u0000\u0dc1\u0dc2"+ + "\u0005>\u0000\u0000\u0dc2\u02ea\u0001\u0000\u0000\u0000\u0dc3\u0dc4\u0005"+ + "<\u0000\u0000\u0dc4\u0dc5\u0005-\u0000\u0000\u0dc5\u0dc6\u0005/\u0000"+ + "\u0000\u0dc6\u02ec\u0001\u0000\u0000\u0000\u0dc7\u0dc8\u0005<\u0000\u0000"+ + "\u0dc8\u0dc9\u0005~\u0000\u0000\u0dc9\u0dca\u0005/\u0000\u0000\u0dca\u02ee"+ + "\u0001\u0000\u0000\u0000\u0dcb\u0dcc\u0005<\u0000\u0000\u0dcc\u0dcd\u0005"+ + "=\u0000\u0000\u0dcd\u02f0\u0001\u0000\u0000\u0000\u0dce\u0dcf\u0005-\u0000"+ + "\u0000\u0dcf\u0dd0\u0005[\u0000\u0000\u0dd0\u02f2\u0001\u0000\u0000\u0000"+ + "\u0dd1\u0dd2\u0005-\u0000\u0000\u0dd2\u0dd3\u0005/\u0000\u0000\u0dd3\u02f4"+ + "\u0001\u0000\u0000\u0000\u0dd4\u0dd5\u0005<\u0000\u0000\u0dd5\u0dd6\u0005"+ + ">\u0000\u0000\u0dd6\u02f6\u0001\u0000\u0000\u0000\u0dd7\u0dd8\u0005-\u0000"+ + "\u0000\u0dd8\u0dd9\u0005>\u0000\u0000\u0dd9\u02f8\u0001\u0000\u0000\u0000"+ + "\u0dda\u0ddb\u0005]\u0000\u0000\u0ddb\u0ddc\u0005-\u0000\u0000\u0ddc\u02fa"+ + "\u0001\u0000\u0000\u0000\u0ddd\u0dde\u0005]\u0000\u0000\u0dde\u0ddf\u0005"+ + "~\u0000\u0000\u0ddf\u02fc\u0001\u0000\u0000\u0000\u0de0\u0de1\u0005=\u0000"+ + "\u0000\u0de1\u0de2\u0005>\u0000\u0000\u0de2\u02fe\u0001\u0000\u0000\u0000"+ + "\u0de3\u0de4\u0005/\u0000\u0000\u0de4\u0de5\u0005-\u0000\u0000\u0de5\u0300"+ + "\u0001\u0000\u0000\u0000\u0de6\u0de7\u0005/\u0000\u0000\u0de7\u0de8\u0005"+ + "-\u0000\u0000\u0de8\u0de9\u0005>\u0000\u0000\u0de9\u0302\u0001\u0000\u0000"+ + "\u0000\u0dea\u0deb\u0005/\u0000\u0000\u0deb\u0dec\u0005~\u0000\u0000\u0dec"+ + "\u0304\u0001\u0000\u0000\u0000\u0ded\u0dee\u0005/\u0000\u0000\u0dee\u0def"+ + "\u0005~\u0000\u0000\u0def\u0df0\u0005>\u0000\u0000\u0df0\u0306\u0001\u0000"+ + "\u0000\u0000\u0df1\u0df2\u0005~\u0000\u0000\u0df2\u0df3\u0005[\u0000\u0000"+ + "\u0df3\u0308\u0001\u0000\u0000\u0000\u0df4\u0df5\u0005~\u0000\u0000\u0df5"+ + "\u0df6\u0005>\u0000\u0000\u0df6\u030a\u0001\u0000\u0000\u0000\u0df7\u0df8"+ + "\u0005~\u0000\u0000\u0df8\u0df9\u0005/\u0000\u0000\u0df9\u030c\u0001\u0000"+ + "\u0000\u0000\u0dfa\u0dfb\u0005&\u0000\u0000\u0dfb\u030e\u0001\u0000\u0000"+ + "\u0000\u0dfc\u0dfd\u0005*\u0000\u0000\u0dfd\u0310\u0001\u0000\u0000\u0000"+ + "\u0dfe\u0dff\u0005:\u0000\u0000\u0dff\u0312\u0001\u0000\u0000\u0000\u0e00"+ + "\u0e01\u0005,\u0000\u0000\u0e01\u0314\u0001\u0000\u0000\u0000\u0e02\u0e03"+ + "\u0005@\u0000\u0000\u0e03\u0316\u0001\u0000\u0000\u0000\u0e04\u0e05\u0005"+ + "$\u0000\u0000\u0e05\u0318\u0001\u0000\u0000\u0000\u0e06\u0e07\u0005\""+ + "\u0000\u0000\u0e07\u031a\u0001\u0000\u0000\u0000\u0e08\u0e09\u0005=\u0000"+ + "\u0000\u0e09\u031c\u0001\u0000\u0000\u0000\u0e0a\u0e0b\u0005!\u0000\u0000"+ + "\u0e0b\u031e\u0001\u0000\u0000\u0000\u0e0c\u0e0d\u0005>\u0000\u0000\u0e0d"+ + "\u0320\u0001\u0000\u0000\u0000\u0e0e\u0e0f\u0005`\u0000\u0000\u0e0f\u0322"+ + "\u0001\u0000\u0000\u0000\u0e10\u0e11\u0005{\u0000\u0000\u0e11\u0324\u0001"+ + "\u0000\u0000\u0000\u0e12\u0e13\u0005[\u0000\u0000\u0e13\u0326\u0001\u0000"+ + "\u0000\u0000\u0e14\u0e15\u0005(\u0000\u0000\u0e15\u0328\u0001\u0000\u0000"+ + "\u0000\u0e16\u0e17\u0005<\u0000\u0000\u0e17\u032a\u0001\u0000\u0000\u0000"+ + "\u0e18\u0e19\u0005-\u0000\u0000\u0e19\u032c\u0001\u0000\u0000\u0000\u0e1a"+ + "\u0e1b\u0005%\u0000\u0000\u0e1b\u032e\u0001\u0000\u0000\u0000\u0e1c\u0e1d"+ + "\u0005.\u0000\u0000\u0e1d\u0330\u0001\u0000\u0000\u0000\u0e1e\u0e1f\u0005"+ + "+\u0000\u0000\u0e1f\u0332\u0001\u0000\u0000\u0000\u0e20\u0e21\u0005?\u0000"+ + "\u0000\u0e21\u0334\u0001\u0000\u0000\u0000\u0e22\u0e23\u0005\'\u0000\u0000"+ + "\u0e23\u0336\u0001\u0000\u0000\u0000\u0e24\u0e25\u0005\\\u0000\u0000\u0e25"+ + "\u0338\u0001\u0000\u0000\u0000\u0e26\u0e27\u0005}\u0000\u0000\u0e27\u033a"+ + "\u0001\u0000\u0000\u0000\u0e28\u0e29\u0005]\u0000\u0000\u0e29\u033c\u0001"+ + "\u0000\u0000\u0000\u0e2a\u0e2b\u0005)\u0000\u0000\u0e2b\u033e\u0001\u0000"+ + "\u0000\u0000\u0e2c\u0e2d\u0005/\u0000\u0000\u0e2d\u0340\u0001\u0000\u0000"+ + "\u0000\u0e2e\u0e2f\u0005~\u0000\u0000\u0e2f\u0342\u0001\u0000\u0000\u0000"+ + "\u0e30\u0e31\u0005_\u0000\u0000\u0e31\u0344\u0001\u0000\u0000\u0000\u0e32"+ + "\u0e33\u0005|\u0000\u0000\u0e33\u0346\u0001\u0000\u0000\u0000\u0e34\u0e35"+ + "\u0007 \u0000\u0000\u0e35\u0348\u0001\u0000\u0000\u0000\u0e36\u0e37\u0007"+ + "!\u0000\u0000\u0e37\u034a\u0001\u0000\u0000\u0000\u0e38\u0e39\u0007\""+ + "\u0000\u0000\u0e39\u034c\u0001\u0000\u0000\u0000\u0e3a\u0e3b\u0007#\u0000"+ + "\u0000\u0e3b\u034e\u0001\u0000\u0000\u0000\u0e3c\u0e3e\u0003\u0351\u01a8"+ + "\u0000\u0e3d\u0e3c\u0001\u0000\u0000\u0000\u0e3e\u0e3f\u0001\u0000\u0000"+ + "\u0000\u0e3f\u0e3d\u0001\u0000\u0000\u0000\u0e3f\u0e40\u0001\u0000\u0000"+ + "\u0000\u0e40\u0e41\u0001\u0000\u0000\u0000\u0e41\u0e42\u0006\u01a7\u0000"+ + "\u0000\u0e42\u0350\u0001\u0000\u0000\u0000\u0e43\u0e4f\u0003\u0361\u01b0"+ + "\u0000\u0e44\u0e4f\u0003\u0365\u01b2\u0000\u0e45\u0e4f\u0003\u0367\u01b3"+ + "\u0000\u0e46\u0e4f\u0003\u0369\u01b4\u0000\u0e47\u0e4f\u0003\u036d\u01b6"+ + "\u0000\u0e48\u0e4f\u0003\u035d\u01ae\u0000\u0e49\u0e4f\u0003\u035b\u01ad"+ + "\u0000\u0e4a\u0e4f\u0003\u0359\u01ac\u0000\u0e4b\u0e4f\u0003\u036f\u01b7"+ + "\u0000\u0e4c\u0e4f\u0003\u036b\u01b5\u0000\u0e4d\u0e4f\u0007$\u0000\u0000"+ + "\u0e4e\u0e43\u0001\u0000\u0000\u0000\u0e4e\u0e44\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e45\u0001\u0000\u0000\u0000\u0e4e\u0e46\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e47\u0001\u0000\u0000\u0000\u0e4e\u0e48\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e49\u0001\u0000\u0000\u0000\u0e4e\u0e4a\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e4b\u0001\u0000\u0000\u0000\u0e4e\u0e4c\u0001\u0000\u0000\u0000"+ + "\u0e4e\u0e4d\u0001\u0000\u0000\u0000\u0e4f\u0352\u0001\u0000\u0000\u0000"+ + "\u0e50\u0e51\u0005/\u0000\u0000\u0e51\u0e52\u0005*\u0000\u0000\u0e52\u0e56"+ + "\u0001\u0000\u0000\u0000\u0e53\u0e55\t\u0000\u0000\u0000\u0e54\u0e53\u0001"+ + "\u0000\u0000\u0000\u0e55\u0e58\u0001\u0000\u0000\u0000\u0e56\u0e57\u0001"+ + "\u0000\u0000\u0000\u0e56\u0e54\u0001\u0000\u0000\u0000\u0e57\u0e59\u0001"+ + "\u0000\u0000\u0000\u0e58\u0e56\u0001\u0000\u0000\u0000\u0e59\u0e5a\u0005"+ + "*\u0000\u0000\u0e5a\u0e5b\u0005/\u0000\u0000\u0e5b\u0e5c\u0001\u0000\u0000"+ + "\u0000\u0e5c\u0e5d\u0006\u01a9\u0000\u0000\u0e5d\u0354\u0001\u0000\u0000"+ + "\u0000\u0e5e\u0e5f\u0005/\u0000\u0000\u0e5f\u0e60\u0005/\u0000\u0000\u0e60"+ + "\u0e64\u0001\u0000\u0000\u0000\u0e61\u0e63\b%\u0000\u0000\u0e62\u0e61"+ + "\u0001\u0000\u0000\u0000\u0e63\u0e66\u0001\u0000\u0000\u0000\u0e64\u0e62"+ + "\u0001\u0000\u0000\u0000\u0e64\u0e65\u0001\u0000\u0000\u0000\u0e65\u0e67"+ + "\u0001\u0000\u0000\u0000\u0e66\u0e64\u0001\u0000\u0000\u0000\u0e67\u0e68"+ + "\u0006\u01aa\u0000\u0000\u0e68\u0356\u0001\u0000\u0000\u0000\u0e69\u0e6a"+ + "\u0005-\u0000\u0000\u0e6a\u0e6b\u0005-\u0000\u0000\u0e6b\u0e6f\u0001\u0000"+ + "\u0000\u0000\u0e6c\u0e6e\b%\u0000\u0000\u0e6d\u0e6c\u0001\u0000\u0000"+ + "\u0000\u0e6e\u0e71\u0001\u0000\u0000\u0000\u0e6f\u0e6d\u0001\u0000\u0000"+ + "\u0000\u0e6f\u0e70\u0001\u0000\u0000\u0000\u0e70\u0e72\u0001\u0000\u0000"+ + "\u0000\u0e71\u0e6f\u0001\u0000\u0000\u0000\u0e72\u0e73\u0006\u01ab\u0000"+ + "\u0000\u0e73\u0358\u0001\u0000\u0000\u0000\u0e74\u0e75\u0007&\u0000\u0000"+ + "\u0e75\u035a\u0001\u0000\u0000\u0000\u0e76\u0e77\u0007\'\u0000\u0000\u0e77"+ + "\u035c\u0001\u0000\u0000\u0000\u0e78\u0e79\u0007(\u0000\u0000\u0e79\u035e"+ + "\u0001\u0000\u0000\u0000\u0e7a\u0e7b\u0007)\u0000\u0000\u0e7b\u0360\u0001"+ + "\u0000\u0000\u0000\u0e7c\u0e7d\u0007*\u0000\u0000\u0e7d\u0362\u0001\u0000"+ + "\u0000\u0000\u0e7e\u0e7f\u0007+\u0000\u0000\u0e7f\u0364\u0001\u0000\u0000"+ + "\u0000\u0e80\u0e81\u0007,\u0000\u0000\u0e81\u0366\u0001\u0000\u0000\u0000"+ + "\u0e82\u0e83\u0007-\u0000\u0000\u0e83\u0368\u0001\u0000\u0000\u0000\u0e84"+ + "\u0e85\u0007.\u0000\u0000\u0e85\u036a\u0001\u0000\u0000\u0000\u0e86\u0e87"+ + "\u0007/\u0000\u0000\u0e87\u036c\u0001\u0000\u0000\u0000\u0e88\u0e89\u0007"+ + "0\u0000\u0000\u0e89\u036e\u0001\u0000\u0000\u0000\u0e8a\u0e8b\u00071\u0000"+ + "\u0000\u0e8b\u0370\u0001\u0000\u0000\u0000*\u0000\u0379\u038d\u0390\u0395"+ + "\u039a\u03a4\u03ad\u03b6\u03bd\u03bf\u03c3\u03c5\u03c9\u03cb\u03d8\u040a"+ + "\u0411\u0418\u041d\u043a\u043f\u044a\u0451\u0456\u045a\u0462\u0467\u046d"+ + "\u0472\u0478\u047d\u0d74\u0d7a\u0d80\u0d84\u0d8e\u0e3f\u0e4e\u0e56\u0e64"+ + "\u0e6f\u0001\u0000\u0001\u0000"; + public static final String _serializedATN = Utils.join( + new String[] { + _serializedATNSegment0, + _serializedATNSegment1 + }, + "" + ); + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_20240424Lexer.tokens b/developer/javac/ANTLR/GQL_20240424Lexer.tokens new file mode 100644 index 0000000..275f4fc --- /dev/null +++ b/developer/javac/ANTLR/GQL_20240424Lexer.tokens @@ -0,0 +1,755 @@ +IMPLIES=1 +BOOLEAN_LITERAL=2 +SINGLE_QUOTED_CHARACTER_SEQUENCE=3 +DOUBLE_QUOTED_CHARACTER_SEQUENCE=4 +ACCENT_QUOTED_CHARACTER_SEQUENCE=5 +NO_ESCAPE=6 +BYTE_STRING_LITERAL=7 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_EXACT_NUMBER_SUFFIX=8 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITHOUT_SUFFIX=9 +UNSIGNED_DECIMAL_IN_SCIENTIFIC_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=10 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_EXACT_NUMBER_SUFFIX=11 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITHOUT_SUFFIX=12 +UNSIGNED_DECIMAL_IN_COMMON_NOTATION_WITH_APPROXIMATE_NUMBER_SUFFIX=13 +UNSIGNED_DECIMAL_INTEGER_WITH_EXACT_NUMBER_SUFFIX=14 +UNSIGNED_DECIMAL_INTEGER_WITH_APPROXIMATE_NUMBER_SUFFIX=15 +UNSIGNED_DECIMAL_INTEGER=16 +UNSIGNED_HEXADECIMAL_INTEGER=17 +UNSIGNED_OCTAL_INTEGER=18 +UNSIGNED_BINARY_INTEGER=19 +ABS=20 +ACOS=21 +ALL=22 +ALL_DIFFERENT=23 +AND=24 +ANY=25 +ARRAY=26 +AS=27 +ASC=28 +ASCENDING=29 +ASIN=30 +AT=31 +ATAN=32 +AVG=33 +BIG=34 +BIGINT=35 +BINARY=36 +BOOL=37 +BOOLEAN=38 +BOTH=39 +BTRIM=40 +BY=41 +BYTE_LENGTH=42 +BYTES=43 +CALL=44 +CARDINALITY=45 +CASE=46 +CAST=47 +CEIL=48 +CEILING=49 +CHAR=50 +CHAR_LENGTH=51 +CHARACTER_LENGTH=52 +CHARACTERISTICS=53 +CLOSE=54 +COALESCE=55 +COLLECT_LIST=56 +COMMIT=57 +COPY=58 +COS=59 +COSH=60 +COT=61 +COUNT=62 +CREATE=63 +CURRENT_DATE=64 +CURRENT_GRAPH=65 +CURRENT_PROPERTY_GRAPH=66 +CURRENT_SCHEMA=67 +CURRENT_TIME=68 +CURRENT_TIMESTAMP=69 +DATE=70 +DATETIME=71 +DAY=72 +DEC=73 +DECIMAL=74 +DEGREES=75 +DELETE=76 +DESC=77 +DESCENDING=78 +DETACH=79 +DISTINCT=80 +DOUBLE=81 +DROP=82 +DURATION=83 +DURATION_BETWEEN=84 +ELEMENT_ID=85 +ELSE=86 +END=87 +EXCEPT=88 +EXISTS=89 +EXP=90 +FILTER=91 +FINISH=92 +FLOAT=93 +FLOAT16=94 +FLOAT32=95 +FLOAT64=96 +FLOAT128=97 +FLOAT256=98 +FLOOR=99 +FOR=100 +FROM=101 +GROUP=102 +HAVING=103 +HOME_GRAPH=104 +HOME_PROPERTY_GRAPH=105 +HOME_SCHEMA=106 +HOUR=107 +IF=108 +IN=109 +INSERT=110 +INT=111 +INTEGER=112 +INT8=113 +INTEGER8=114 +INT16=115 +INTEGER16=116 +INT32=117 +INTEGER32=118 +INT64=119 +INTEGER64=120 +INT128=121 +INTEGER128=122 +INT256=123 +INTEGER256=124 +INTERSECT=125 +INTERVAL=126 +IS=127 +LEADING=128 +LEFT=129 +LET=130 +LIKE=131 +LIMIT=132 +LIST=133 +LN=134 +LOCAL=135 +LOCAL_DATETIME=136 +LOCAL_TIME=137 +LOCAL_TIMESTAMP=138 +LOG=139 +LOG10=140 +LOWER=141 +LTRIM=142 +MATCH=143 +MAX=144 +MIN=145 +MINUTE=146 +MOD=147 +MONTH=148 +NEXT=149 +NODETACH=150 +NORMALIZE=151 +NOT=152 +NOTHING=153 +NULL=154 +NULLS=155 +NULLIF=156 +OCTET_LENGTH=157 +OF=158 +OFFSET=159 +OPTIONAL=160 +OR=161 +ORDER=162 +OTHERWISE=163 +PARAMETER=164 +PARAMETERS=165 +PATH=166 +PATH_LENGTH=167 +PATHS=168 +PERCENTILE_CONT=169 +PERCENTILE_DISC=170 +POWER=171 +PRECISION=172 +PROPERTY_EXISTS=173 +RADIANS=174 +REAL=175 +RECORD=176 +REMOVE=177 +REPLACE=178 +RESET=179 +RETURN=180 +RIGHT=181 +ROLLBACK=182 +RTRIM=183 +SAME=184 +SCHEMA=185 +SECOND=186 +SELECT=187 +SESSION=188 +SESSION_USER=189 +SET=190 +SIGNED=191 +SIN=192 +SINH=193 +SIZE=194 +SKIP_RESERVED_WORD=195 +SMALL=196 +SMALLINT=197 +SQRT=198 +START=199 +STDDEV_POP=200 +STDDEV_SAMP=201 +STRING=202 +SUM=203 +TAN=204 +TANH=205 +THEN=206 +TIME=207 +TIMESTAMP=208 +TRAILING=209 +TRIM=210 +TYPED=211 +UBIGINT=212 +UINT=213 +UINT8=214 +UINT16=215 +UINT32=216 +UINT64=217 +UINT128=218 +UINT256=219 +UNION=220 +UNSIGNED=221 +UPPER=222 +USE=223 +USMALLINT=224 +VALUE=225 +VARBINARY=226 +VARCHAR=227 +VARIABLE=228 +WHEN=229 +WHERE=230 +WITH=231 +XOR=232 +YEAR=233 +YIELD=234 +ZONED=235 +ZONED_DATETIME=236 +ZONED_TIME=237 +ABSTRACT=238 +AGGREGATE=239 +AGGREGATES=240 +ALTER=241 +CATALOG=242 +CLEAR=243 +CLONE=244 +CONSTRAINT=245 +CURRENT_ROLE=246 +CURRENT_USER=247 +DATA=248 +DIRECTORY=249 +DRYRUN=250 +EXACT=251 +EXISTING=252 +FUNCTION=253 +GQLSTATUS=254 +GRANT=255 +INSTANT=256 +INFINITY=257 +NUMBER=258 +NUMERIC=259 +ON=260 +OPEN=261 +PARTITION=262 +PROCEDURE=263 +PRODUCT=264 +PROJECT=265 +QUERY=266 +RECORDS=267 +REFERENCE=268 +RENAME=269 +REVOKE=270 +SUBSTRING=271 +SYSTEM_USER=272 +TEMPORAL=273 +UNIQUE=274 +UNIT=275 +VALUES=276 +ACYCLIC=277 +BINDING=278 +BINDINGS=279 +CONNECTING=280 +DESTINATION=281 +DIFFERENT=282 +DIRECTED=283 +EDGE=284 +EDGES=285 +ELEMENT=286 +ELEMENTS=287 +FIRST=288 +GRAPH=289 +GROUPS=290 +KEEP=291 +LABEL=292 +LABELED=293 +LABELS=294 +LAST=295 +NFC=296 +NFD=297 +NFKC=298 +NFKD=299 +NO=300 +NODE=301 +NORMALIZED=302 +ONLY=303 +ORDINALITY=304 +PROPERTY=305 +READ=306 +RELATIONSHIP=307 +RELATIONSHIPS=308 +REPEATABLE=309 +SHORTEST=310 +SIMPLE=311 +SOURCE=312 +TABLE=313 +TEMP=314 +TO=315 +TRAIL=316 +TRANSACTION=317 +TYPE=318 +UNDIRECTED=319 +VERTEX=320 +WALK=321 +WITHOUT=322 +WRITE=323 +ZONE=324 +REGULAR_IDENTIFIER=325 +SUBSTITUTED_PARAMETER_REFERENCE=326 +GENERAL_PARAMETER_REFERENCE=327 +MULTISET_ALTERNATION_OPERATOR=328 +BRACKET_RIGHT_ARROW=329 +BRACKET_TILDE_RIGHT_ARROW=330 +CONCATENATION_OPERATOR=331 +DOUBLE_COLON=332 +DOUBLE_DOLLAR_SIGN=333 +DOUBLE_PERIOD=334 +GREATER_THAN_OR_EQUALS_OPERATOR=335 +LEFT_ARROW=336 +LEFT_ARROW_TILDE=337 +LEFT_ARROW_BRACKET=338 +LEFT_ARROW_TILDE_BRACKET=339 +LEFT_MINUS_RIGHT=340 +LEFT_MINUS_SLASH=341 +LEFT_TILDE_SLASH=342 +LESS_THAN_OR_EQUALS_OPERATOR=343 +MINUS_LEFT_BRACKET=344 +MINUS_SLASH=345 +NOT_EQUALS_OPERATOR=346 +RIGHT_ARROW=347 +RIGHT_BRACKET_MINUS=348 +RIGHT_BRACKET_TILDE=349 +RIGHT_DOUBLE_ARROW=350 +SLASH_MINUS=351 +SLASH_MINUS_RIGHT=352 +SLASH_TILDE=353 +SLASH_TILDE_RIGHT=354 +TILDE_LEFT_BRACKET=355 +TILDE_RIGHT_ARROW=356 +TILDE_SLASH=357 +AMPERSAND=358 +ASTERISK=359 +COLON=360 +COMMA=361 +COMMERCIAL_AT=362 +DOLLAR_SIGN=363 +DOUBLE_QUOTE=364 +EQUALS_OPERATOR=365 +EXCLAMATION_MARK=366 +RIGHT_ANGLE_BRACKET=367 +GRAVE_ACCENT=368 +LEFT_BRACE=369 +LEFT_BRACKET=370 +LEFT_PAREN=371 +LEFT_ANGLE_BRACKET=372 +MINUS_SIGN=373 +PERCENT=374 +PERIOD=375 +PLUS_SIGN=376 +QUESTION_MARK=377 +QUOTE=378 +REVERSE_SOLIDUS=379 +RIGHT_BRACE=380 +RIGHT_BRACKET=381 +RIGHT_PAREN=382 +SOLIDUS=383 +TILDE=384 +UNDERSCORE=385 +VERTICAL_BAR=386 +SP=387 +WHITESPACE=388 +BRACKETED_COMMENT=389 +SIMPLE_COMMENT_SOLIDUS=390 +SIMPLE_COMMENT_MINUS=391 +'ABS'=20 +'ACOS'=21 +'ALL'=22 +'ALL_DIFFERENT'=23 +'AND'=24 +'ANY'=25 +'ARRAY'=26 +'AS'=27 +'ASC'=28 +'ASCENDING'=29 +'ASIN'=30 +'AT'=31 +'ATAN'=32 +'AVG'=33 +'BIG'=34 +'BIGINT'=35 +'BINARY'=36 +'BOOL'=37 +'BOOLEAN'=38 +'BOTH'=39 +'BTRIM'=40 +'BY'=41 +'BYTE_LENGTH'=42 +'BYTES'=43 +'CALL'=44 +'CARDINALITY'=45 +'CASE'=46 +'CAST'=47 +'CEIL'=48 +'CEILING'=49 +'CHAR'=50 +'CHAR_LENGTH'=51 +'CHARACTER_LENGTH'=52 +'CHARACTERISTICS'=53 +'CLOSE'=54 +'COALESCE'=55 +'COLLECT_LIST'=56 +'COMMIT'=57 +'COPY'=58 +'COS'=59 +'COSH'=60 +'COT'=61 +'COUNT'=62 +'CREATE'=63 +'CURRENT_DATE'=64 +'CURRENT_GRAPH'=65 +'CURRENT_PROPERTY_GRAPH'=66 +'CURRENT_SCHEMA'=67 +'CURRENT_TIME'=68 +'CURRENT_TIMESTAMP'=69 +'DATE'=70 +'DATETIME'=71 +'DAY'=72 +'DEC'=73 +'DECIMAL'=74 +'DEGREES'=75 +'DELETE'=76 +'DESC'=77 +'DESCENDING'=78 +'DETACH'=79 +'DISTINCT'=80 +'DOUBLE'=81 +'DROP'=82 +'DURATION'=83 +'DURATION_BETWEEN'=84 +'ELEMENT_ID'=85 +'ELSE'=86 +'END'=87 +'EXCEPT'=88 +'EXISTS'=89 +'EXP'=90 +'FILTER'=91 +'FINISH'=92 +'FLOAT'=93 +'FLOAT16'=94 +'FLOAT32'=95 +'FLOAT64'=96 +'FLOAT128'=97 +'FLOAT256'=98 +'FLOOR'=99 +'FOR'=100 +'FROM'=101 +'GROUP'=102 +'HAVING'=103 +'HOME_GRAPH'=104 +'HOME_PROPERTY_GRAPH'=105 +'HOME_SCHEMA'=106 +'HOUR'=107 +'IF'=108 +'IN'=109 +'INSERT'=110 +'INT'=111 +'INTEGER'=112 +'INT8'=113 +'INTEGER8'=114 +'INT16'=115 +'INTEGER16'=116 +'INT32'=117 +'INTEGER32'=118 +'INT64'=119 +'INTEGER64'=120 +'INT128'=121 +'INTEGER128'=122 +'INT256'=123 +'INTEGER256'=124 +'INTERSECT'=125 +'INTERVAL'=126 +'IS'=127 +'LEADING'=128 +'LEFT'=129 +'LET'=130 +'LIKE'=131 +'LIMIT'=132 +'LIST'=133 +'LN'=134 +'LOCAL'=135 +'LOCAL_DATETIME'=136 +'LOCAL_TIME'=137 +'LOCAL_TIMESTAMP'=138 +'LOG'=139 +'LOG10'=140 +'LOWER'=141 +'LTRIM'=142 +'MATCH'=143 +'MAX'=144 +'MIN'=145 +'MINUTE'=146 +'MOD'=147 +'MONTH'=148 +'NEXT'=149 +'NODETACH'=150 +'NORMALIZE'=151 +'NOT'=152 +'NOTHING'=153 +'NULL'=154 +'NULLS'=155 +'NULLIF'=156 +'OCTET_LENGTH'=157 +'OF'=158 +'OFFSET'=159 +'OPTIONAL'=160 +'OR'=161 +'ORDER'=162 +'OTHERWISE'=163 +'PARAMETER'=164 +'PARAMETERS'=165 +'PATH'=166 +'PATH_LENGTH'=167 +'PATHS'=168 +'PERCENTILE_CONT'=169 +'PERCENTILE_DISC'=170 +'POWER'=171 +'PRECISION'=172 +'PROPERTY_EXISTS'=173 +'RADIANS'=174 +'REAL'=175 +'RECORD'=176 +'REMOVE'=177 +'REPLACE'=178 +'RESET'=179 +'RETURN'=180 +'RIGHT'=181 +'ROLLBACK'=182 +'RTRIM'=183 +'SAME'=184 +'SCHEMA'=185 +'SECOND'=186 +'SELECT'=187 +'SESSION'=188 +'SESSION_USER'=189 +'SET'=190 +'SIGNED'=191 +'SIN'=192 +'SINH'=193 +'SIZE'=194 +'SKIP'=195 +'SMALL'=196 +'SMALLINT'=197 +'SQRT'=198 +'START'=199 +'STDDEV_POP'=200 +'STDDEV_SAMP'=201 +'STRING'=202 +'SUM'=203 +'TAN'=204 +'TANH'=205 +'THEN'=206 +'TIME'=207 +'TIMESTAMP'=208 +'TRAILING'=209 +'TRIM'=210 +'TYPED'=211 +'UBIGINT'=212 +'UINT'=213 +'UINT8'=214 +'UINT16'=215 +'UINT32'=216 +'UINT64'=217 +'UINT128'=218 +'UINT256'=219 +'UNION'=220 +'UNSIGNED'=221 +'UPPER'=222 +'USE'=223 +'USMALLINT'=224 +'VALUE'=225 +'VARBINARY'=226 +'VARCHAR'=227 +'VARIABLE'=228 +'WHEN'=229 +'WHERE'=230 +'WITH'=231 +'XOR'=232 +'YEAR'=233 +'YIELD'=234 +'ZONED'=235 +'ZONED_DATETIME'=236 +'ZONED_TIME'=237 +'ABSTRACT'=238 +'AGGREGATE'=239 +'AGGREGATES'=240 +'ALTER'=241 +'CATALOG'=242 +'CLEAR'=243 +'CLONE'=244 +'CONSTRAINT'=245 +'CURRENT_ROLE'=246 +'CURRENT_USER'=247 +'DATA'=248 +'DIRECTORY'=249 +'DRYRUN'=250 +'EXACT'=251 +'EXISTING'=252 +'FUNCTION'=253 +'GQLSTATUS'=254 +'GRANT'=255 +'INSTANT'=256 +'INFINITY'=257 +'NUMBER'=258 +'NUMERIC'=259 +'ON'=260 +'OPEN'=261 +'PARTITION'=262 +'PROCEDURE'=263 +'PRODUCT'=264 +'PROJECT'=265 +'QUERY'=266 +'RECORDS'=267 +'REFERENCE'=268 +'RENAME'=269 +'REVOKE'=270 +'SUBSTRING'=271 +'SYSTEM_USER'=272 +'TEMPORAL'=273 +'UNIQUE'=274 +'UNIT'=275 +'VALUES'=276 +'ACYCLIC'=277 +'BINDING'=278 +'BINDINGS'=279 +'CONNECTING'=280 +'DESTINATION'=281 +'DIFFERENT'=282 +'DIRECTED'=283 +'EDGE'=284 +'EDGES'=285 +'ELEMENT'=286 +'ELEMENTS'=287 +'FIRST'=288 +'GRAPH'=289 +'GROUPS'=290 +'KEEP'=291 +'LABEL'=292 +'LABELED'=293 +'LABELS'=294 +'LAST'=295 +'NFC'=296 +'NFD'=297 +'NFKC'=298 +'NFKD'=299 +'NO'=300 +'NODE'=301 +'NORMALIZED'=302 +'ONLY'=303 +'ORDINALITY'=304 +'PROPERTY'=305 +'READ'=306 +'RELATIONSHIP'=307 +'RELATIONSHIPS'=308 +'REPEATABLE'=309 +'SHORTEST'=310 +'SIMPLE'=311 +'SOURCE'=312 +'TABLE'=313 +'TEMP'=314 +'TO'=315 +'TRAIL'=316 +'TRANSACTION'=317 +'TYPE'=318 +'UNDIRECTED'=319 +'VERTEX'=320 +'WALK'=321 +'WITHOUT'=322 +'WRITE'=323 +'ZONE'=324 +'|+|'=328 +']->'=329 +']~>'=330 +'||'=331 +'::'=332 +'$$'=333 +'..'=334 +'>='=335 +'<-'=336 +'<~'=337 +'<-['=338 +'<~['=339 +'<->'=340 +'<-/'=341 +'<~/'=342 +'<='=343 +'-['=344 +'-/'=345 +'<>'=346 +'->'=347 +']-'=348 +']~'=349 +'=>'=350 +'/-'=351 +'/->'=352 +'/~'=353 +'/~>'=354 +'~['=355 +'~>'=356 +'~/'=357 +'&'=358 +'*'=359 +':'=360 +','=361 +'@'=362 +'$'=363 +'"'=364 +'='=365 +'!'=366 +'>'=367 +'`'=368 +'{'=369 +'['=370 +'('=371 +'<'=372 +'-'=373 +'%'=374 +'.'=375 +'+'=376 +'?'=377 +'\''=378 +'\\'=379 +'}'=380 +']'=381 +')'=382 +'/'=383 +'~'=384 +'_'=385 +'|'=386 diff --git a/developer/javac/ANTLR/GQL_test.interp b/developer/javac/ANTLR/GQL_test.interp new file mode 100644 index 0000000..c09da64 --- /dev/null +++ b/developer/javac/ANTLR/GQL_test.interp @@ -0,0 +1,32 @@ +token literal names: +null +'{' +'}' +':' +null +null +null +null +null + +token symbolic names: +null +null +null +null +ID +STRING +INT +FLOAT +WS + +rule names: +root +query +field +value +number + + +atn: +[4, 1, 8, 36, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 1, 0, 4, 0, 12, 8, 0, 11, 0, 12, 0, 13, 1, 0, 1, 0, 1, 1, 1, 1, 4, 1, 20, 8, 1, 11, 1, 12, 1, 21, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 3, 3, 32, 8, 3, 1, 4, 1, 4, 1, 4, 0, 0, 5, 0, 2, 4, 6, 8, 0, 1, 1, 0, 6, 7, 33, 0, 11, 1, 0, 0, 0, 2, 17, 1, 0, 0, 0, 4, 25, 1, 0, 0, 0, 6, 31, 1, 0, 0, 0, 8, 33, 1, 0, 0, 0, 10, 12, 3, 2, 1, 0, 11, 10, 1, 0, 0, 0, 12, 13, 1, 0, 0, 0, 13, 11, 1, 0, 0, 0, 13, 14, 1, 0, 0, 0, 14, 15, 1, 0, 0, 0, 15, 16, 5, 0, 0, 1, 16, 1, 1, 0, 0, 0, 17, 19, 5, 1, 0, 0, 18, 20, 3, 4, 2, 0, 19, 18, 1, 0, 0, 0, 20, 21, 1, 0, 0, 0, 21, 19, 1, 0, 0, 0, 21, 22, 1, 0, 0, 0, 22, 23, 1, 0, 0, 0, 23, 24, 5, 2, 0, 0, 24, 3, 1, 0, 0, 0, 25, 26, 5, 4, 0, 0, 26, 27, 5, 3, 0, 0, 27, 28, 3, 6, 3, 0, 28, 5, 1, 0, 0, 0, 29, 32, 5, 5, 0, 0, 30, 32, 3, 8, 4, 0, 31, 29, 1, 0, 0, 0, 31, 30, 1, 0, 0, 0, 32, 7, 1, 0, 0, 0, 33, 34, 7, 0, 0, 0, 34, 9, 1, 0, 0, 0, 3, 13, 21, 31] \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_test.tokens b/developer/javac/ANTLR/GQL_test.tokens new file mode 100644 index 0000000..5a6798c --- /dev/null +++ b/developer/javac/ANTLR/GQL_test.tokens @@ -0,0 +1,11 @@ +T__0=1 +T__1=2 +T__2=3 +ID=4 +STRING=5 +INT=6 +FLOAT=7 +WS=8 +'{'=1 +'}'=2 +':'=3 diff --git a/developer/javac/ANTLR/GQL_testBaseListener.java b/developer/javac/ANTLR/GQL_testBaseListener.java new file mode 100644 index 0000000..96e19da --- /dev/null +++ b/developer/javac/ANTLR/GQL_testBaseListener.java @@ -0,0 +1,99 @@ +// Generated from java-escape by ANTLR 4.11.1 + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link GQL_testListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +@SuppressWarnings("CheckReturnValue") +public class GQL_testBaseListener implements GQL_testListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRoot(GQL_testParser.RootContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRoot(GQL_testParser.RootContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterField(GQL_testParser.FieldContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitField(GQL_testParser.FieldContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValue(GQL_testParser.ValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValue(GQL_testParser.ValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumber(GQL_testParser.NumberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumber(GQL_testParser.NumberContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_testLexer.interp b/developer/javac/ANTLR/GQL_testLexer.interp new file mode 100644 index 0000000..b348adc --- /dev/null +++ b/developer/javac/ANTLR/GQL_testLexer.interp @@ -0,0 +1,41 @@ +token literal names: +null +'{' +'}' +':' +null +null +null +null +null + +token symbolic names: +null +null +null +null +ID +STRING +INT +FLOAT +WS + +rule names: +T__0 +T__1 +T__2 +ID +STRING +INT +FLOAT +WS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 8, 62, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 5, 3, 26, 8, 3, 10, 3, 12, 3, 29, 9, 3, 1, 4, 1, 4, 5, 4, 33, 8, 4, 10, 4, 12, 4, 36, 9, 4, 1, 4, 1, 4, 1, 5, 4, 5, 41, 8, 5, 11, 5, 12, 5, 42, 1, 6, 4, 6, 46, 8, 6, 11, 6, 12, 6, 47, 1, 6, 1, 6, 4, 6, 52, 8, 6, 11, 6, 12, 6, 53, 1, 7, 4, 7, 57, 8, 7, 11, 7, 12, 7, 58, 1, 7, 1, 7, 1, 34, 0, 8, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 1, 0, 4, 3, 0, 65, 90, 95, 95, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 3, 0, 9, 10, 13, 13, 32, 32, 67, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 1, 17, 1, 0, 0, 0, 3, 19, 1, 0, 0, 0, 5, 21, 1, 0, 0, 0, 7, 23, 1, 0, 0, 0, 9, 30, 1, 0, 0, 0, 11, 40, 1, 0, 0, 0, 13, 45, 1, 0, 0, 0, 15, 56, 1, 0, 0, 0, 17, 18, 5, 123, 0, 0, 18, 2, 1, 0, 0, 0, 19, 20, 5, 125, 0, 0, 20, 4, 1, 0, 0, 0, 21, 22, 5, 58, 0, 0, 22, 6, 1, 0, 0, 0, 23, 27, 7, 0, 0, 0, 24, 26, 7, 1, 0, 0, 25, 24, 1, 0, 0, 0, 26, 29, 1, 0, 0, 0, 27, 25, 1, 0, 0, 0, 27, 28, 1, 0, 0, 0, 28, 8, 1, 0, 0, 0, 29, 27, 1, 0, 0, 0, 30, 34, 5, 34, 0, 0, 31, 33, 9, 0, 0, 0, 32, 31, 1, 0, 0, 0, 33, 36, 1, 0, 0, 0, 34, 35, 1, 0, 0, 0, 34, 32, 1, 0, 0, 0, 35, 37, 1, 0, 0, 0, 36, 34, 1, 0, 0, 0, 37, 38, 5, 34, 0, 0, 38, 10, 1, 0, 0, 0, 39, 41, 7, 2, 0, 0, 40, 39, 1, 0, 0, 0, 41, 42, 1, 0, 0, 0, 42, 40, 1, 0, 0, 0, 42, 43, 1, 0, 0, 0, 43, 12, 1, 0, 0, 0, 44, 46, 7, 2, 0, 0, 45, 44, 1, 0, 0, 0, 46, 47, 1, 0, 0, 0, 47, 45, 1, 0, 0, 0, 47, 48, 1, 0, 0, 0, 48, 49, 1, 0, 0, 0, 49, 51, 5, 46, 0, 0, 50, 52, 7, 2, 0, 0, 51, 50, 1, 0, 0, 0, 52, 53, 1, 0, 0, 0, 53, 51, 1, 0, 0, 0, 53, 54, 1, 0, 0, 0, 54, 14, 1, 0, 0, 0, 55, 57, 7, 3, 0, 0, 56, 55, 1, 0, 0, 0, 57, 58, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 58, 59, 1, 0, 0, 0, 59, 60, 1, 0, 0, 0, 60, 61, 6, 7, 0, 0, 61, 16, 1, 0, 0, 0, 7, 0, 27, 34, 42, 47, 53, 58, 1, 6, 0, 0] \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_testLexer.java b/developer/javac/ANTLR/GQL_testLexer.java new file mode 100644 index 0000000..1b40185 --- /dev/null +++ b/developer/javac/ANTLR/GQL_testLexer.java @@ -0,0 +1,155 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class GQL_testLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, ID=4, STRING=5, INT=6, FLOAT=7, WS=8; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "T__0", "T__1", "T__2", "ID", "STRING", "INT", "FLOAT", "WS" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'{'", "'}'", "':'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, "ID", "STRING", "INT", "FLOAT", "WS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public GQL_testLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "GQL_test.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\u0004\u0000\b>\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+ + "\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+ + "\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+ + "\u0007\u0007\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0002"+ + "\u0001\u0002\u0001\u0003\u0001\u0003\u0005\u0003\u001a\b\u0003\n\u0003"+ + "\f\u0003\u001d\t\u0003\u0001\u0004\u0001\u0004\u0005\u0004!\b\u0004\n"+ + "\u0004\f\u0004$\t\u0004\u0001\u0004\u0001\u0004\u0001\u0005\u0004\u0005"+ + ")\b\u0005\u000b\u0005\f\u0005*\u0001\u0006\u0004\u0006.\b\u0006\u000b"+ + "\u0006\f\u0006/\u0001\u0006\u0001\u0006\u0004\u00064\b\u0006\u000b\u0006"+ + "\f\u00065\u0001\u0007\u0004\u00079\b\u0007\u000b\u0007\f\u0007:\u0001"+ + "\u0007\u0001\u0007\u0001\"\u0000\b\u0001\u0001\u0003\u0002\u0005\u0003"+ + "\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0001\u0000\u0004\u0003"+ + "\u0000AZ__az\u0004\u000009AZ__az\u0001\u000009\u0003\u0000\t\n\r\r C"+ + "\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000\u0000"+ + "\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000"+ + "\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000"+ + "\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000\u0000\u0000\u0001\u0011"+ + "\u0001\u0000\u0000\u0000\u0003\u0013\u0001\u0000\u0000\u0000\u0005\u0015"+ + "\u0001\u0000\u0000\u0000\u0007\u0017\u0001\u0000\u0000\u0000\t\u001e\u0001"+ + "\u0000\u0000\u0000\u000b(\u0001\u0000\u0000\u0000\r-\u0001\u0000\u0000"+ + "\u0000\u000f8\u0001\u0000\u0000\u0000\u0011\u0012\u0005{\u0000\u0000\u0012"+ + "\u0002\u0001\u0000\u0000\u0000\u0013\u0014\u0005}\u0000\u0000\u0014\u0004"+ + "\u0001\u0000\u0000\u0000\u0015\u0016\u0005:\u0000\u0000\u0016\u0006\u0001"+ + "\u0000\u0000\u0000\u0017\u001b\u0007\u0000\u0000\u0000\u0018\u001a\u0007"+ + "\u0001\u0000\u0000\u0019\u0018\u0001\u0000\u0000\u0000\u001a\u001d\u0001"+ + "\u0000\u0000\u0000\u001b\u0019\u0001\u0000\u0000\u0000\u001b\u001c\u0001"+ + "\u0000\u0000\u0000\u001c\b\u0001\u0000\u0000\u0000\u001d\u001b\u0001\u0000"+ + "\u0000\u0000\u001e\"\u0005\"\u0000\u0000\u001f!\t\u0000\u0000\u0000 \u001f"+ + "\u0001\u0000\u0000\u0000!$\u0001\u0000\u0000\u0000\"#\u0001\u0000\u0000"+ + "\u0000\" \u0001\u0000\u0000\u0000#%\u0001\u0000\u0000\u0000$\"\u0001\u0000"+ + "\u0000\u0000%&\u0005\"\u0000\u0000&\n\u0001\u0000\u0000\u0000\')\u0007"+ + "\u0002\u0000\u0000(\'\u0001\u0000\u0000\u0000)*\u0001\u0000\u0000\u0000"+ + "*(\u0001\u0000\u0000\u0000*+\u0001\u0000\u0000\u0000+\f\u0001\u0000\u0000"+ + "\u0000,.\u0007\u0002\u0000\u0000-,\u0001\u0000\u0000\u0000./\u0001\u0000"+ + "\u0000\u0000/-\u0001\u0000\u0000\u0000/0\u0001\u0000\u0000\u000001\u0001"+ + "\u0000\u0000\u000013\u0005.\u0000\u000024\u0007\u0002\u0000\u000032\u0001"+ + "\u0000\u0000\u000045\u0001\u0000\u0000\u000053\u0001\u0000\u0000\u0000"+ + "56\u0001\u0000\u0000\u00006\u000e\u0001\u0000\u0000\u000079\u0007\u0003"+ + "\u0000\u000087\u0001\u0000\u0000\u00009:\u0001\u0000\u0000\u0000:8\u0001"+ + "\u0000\u0000\u0000:;\u0001\u0000\u0000\u0000;<\u0001\u0000\u0000\u0000"+ + "<=\u0006\u0007\u0000\u0000=\u0010\u0001\u0000\u0000\u0000\u0007\u0000"+ + "\u001b\"*/5:\u0001\u0006\u0000\u0000"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_testLexer.tokens b/developer/javac/ANTLR/GQL_testLexer.tokens new file mode 100644 index 0000000..5a6798c --- /dev/null +++ b/developer/javac/ANTLR/GQL_testLexer.tokens @@ -0,0 +1,11 @@ +T__0=1 +T__1=2 +T__2=3 +ID=4 +STRING=5 +INT=6 +FLOAT=7 +WS=8 +'{'=1 +'}'=2 +':'=3 diff --git a/developer/javac/ANTLR/GQL_testListener.java b/developer/javac/ANTLR/GQL_testListener.java new file mode 100644 index 0000000..0888e79 --- /dev/null +++ b/developer/javac/ANTLR/GQL_testListener.java @@ -0,0 +1,59 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link GQL_testParser}. + */ +public interface GQL_testListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link GQL_testParser#root}. + * @param ctx the parse tree + */ + void enterRoot(GQL_testParser.RootContext ctx); + /** + * Exit a parse tree produced by {@link GQL_testParser#root}. + * @param ctx the parse tree + */ + void exitRoot(GQL_testParser.RootContext ctx); + /** + * Enter a parse tree produced by {@link GQL_testParser#query}. + * @param ctx the parse tree + */ + void enterQuery(GQL_testParser.QueryContext ctx); + /** + * Exit a parse tree produced by {@link GQL_testParser#query}. + * @param ctx the parse tree + */ + void exitQuery(GQL_testParser.QueryContext ctx); + /** + * Enter a parse tree produced by {@link GQL_testParser#field}. + * @param ctx the parse tree + */ + void enterField(GQL_testParser.FieldContext ctx); + /** + * Exit a parse tree produced by {@link GQL_testParser#field}. + * @param ctx the parse tree + */ + void exitField(GQL_testParser.FieldContext ctx); + /** + * Enter a parse tree produced by {@link GQL_testParser#value}. + * @param ctx the parse tree + */ + void enterValue(GQL_testParser.ValueContext ctx); + /** + * Exit a parse tree produced by {@link GQL_testParser#value}. + * @param ctx the parse tree + */ + void exitValue(GQL_testParser.ValueContext ctx); + /** + * Enter a parse tree produced by {@link GQL_testParser#number}. + * @param ctx the parse tree + */ + void enterNumber(GQL_testParser.NumberContext ctx); + /** + * Exit a parse tree produced by {@link GQL_testParser#number}. + * @param ctx the parse tree + */ + void exitNumber(GQL_testParser.NumberContext ctx); +} \ No newline at end of file diff --git a/developer/javac/ANTLR/GQL_testParser.java b/developer/javac/ANTLR/GQL_testParser.java new file mode 100644 index 0000000..edb7538 --- /dev/null +++ b/developer/javac/ANTLR/GQL_testParser.java @@ -0,0 +1,393 @@ +// Generated from java-escape by ANTLR 4.11.1 +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class GQL_testParser extends Parser { + static { RuntimeMetaData.checkVersion("4.11.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, ID=4, STRING=5, INT=6, FLOAT=7, WS=8; + public static final int + RULE_root = 0, RULE_query = 1, RULE_field = 2, RULE_value = 3, RULE_number = 4; + private static String[] makeRuleNames() { + return new String[] { + "root", "query", "field", "value", "number" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'{'", "'}'", "':'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, "ID", "STRING", "INT", "FLOAT", "WS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "java-escape"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public GQL_testParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @SuppressWarnings("CheckReturnValue") + public static class RootContext extends ParserRuleContext { + public TerminalNode EOF() { return getToken(GQL_testParser.EOF, 0); } + public List query() { + return getRuleContexts(QueryContext.class); + } + public QueryContext query(int i) { + return getRuleContext(QueryContext.class,i); + } + public RootContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_root; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).enterRoot(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).exitRoot(this); + } + } + + public final RootContext root() throws RecognitionException { + RootContext _localctx = new RootContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_root); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(11); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(10); + query(); + } + } + setState(13); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==T__0 ); + setState(15); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class QueryContext extends ParserRuleContext { + public List field() { + return getRuleContexts(FieldContext.class); + } + public FieldContext field(int i) { + return getRuleContext(FieldContext.class,i); + } + public QueryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_query; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).enterQuery(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).exitQuery(this); + } + } + + public final QueryContext query() throws RecognitionException { + QueryContext _localctx = new QueryContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_query); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(17); + match(T__0); + setState(19); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(18); + field(); + } + } + setState(21); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==ID ); + setState(23); + match(T__1); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldContext extends ParserRuleContext { + public TerminalNode ID() { return getToken(GQL_testParser.ID, 0); } + public ValueContext value() { + return getRuleContext(ValueContext.class,0); + } + public FieldContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_field; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).enterField(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).exitField(this); + } + } + + public final FieldContext field() throws RecognitionException { + FieldContext _localctx = new FieldContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_field); + try { + enterOuterAlt(_localctx, 1); + { + setState(25); + match(ID); + setState(26); + match(T__2); + setState(27); + value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ValueContext extends ParserRuleContext { + public TerminalNode STRING() { return getToken(GQL_testParser.STRING, 0); } + public NumberContext number() { + return getRuleContext(NumberContext.class,0); + } + public ValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).enterValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).exitValue(this); + } + } + + public final ValueContext value() throws RecognitionException { + ValueContext _localctx = new ValueContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_value); + try { + setState(31); + _errHandler.sync(this); + switch (_input.LA(1)) { + case STRING: + enterOuterAlt(_localctx, 1); + { + setState(29); + match(STRING); + } + break; + case INT: + case FLOAT: + enterOuterAlt(_localctx, 2); + { + setState(30); + number(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NumberContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(GQL_testParser.INT, 0); } + public TerminalNode FLOAT() { return getToken(GQL_testParser.FLOAT, 0); } + public NumberContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_number; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).enterNumber(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof GQL_testListener ) ((GQL_testListener)listener).exitNumber(this); + } + } + + public final NumberContext number() throws RecognitionException { + NumberContext _localctx = new NumberContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_number); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(33); + _la = _input.LA(1); + if ( !(_la==INT || _la==FLOAT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static final String _serializedATN = + "\u0004\u0001\b$\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002"+ + "\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004\u0001"+ + "\u0000\u0004\u0000\f\b\u0000\u000b\u0000\f\u0000\r\u0001\u0000\u0001\u0000"+ + "\u0001\u0001\u0001\u0001\u0004\u0001\u0014\b\u0001\u000b\u0001\f\u0001"+ + "\u0015\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002\u0001"+ + "\u0002\u0001\u0003\u0001\u0003\u0003\u0003 \b\u0003\u0001\u0004\u0001"+ + "\u0004\u0001\u0004\u0000\u0000\u0005\u0000\u0002\u0004\u0006\b\u0000\u0001"+ + "\u0001\u0000\u0006\u0007!\u0000\u000b\u0001\u0000\u0000\u0000\u0002\u0011"+ + "\u0001\u0000\u0000\u0000\u0004\u0019\u0001\u0000\u0000\u0000\u0006\u001f"+ + "\u0001\u0000\u0000\u0000\b!\u0001\u0000\u0000\u0000\n\f\u0003\u0002\u0001"+ + "\u0000\u000b\n\u0001\u0000\u0000\u0000\f\r\u0001\u0000\u0000\u0000\r\u000b"+ + "\u0001\u0000\u0000\u0000\r\u000e\u0001\u0000\u0000\u0000\u000e\u000f\u0001"+ + "\u0000\u0000\u0000\u000f\u0010\u0005\u0000\u0000\u0001\u0010\u0001\u0001"+ + "\u0000\u0000\u0000\u0011\u0013\u0005\u0001\u0000\u0000\u0012\u0014\u0003"+ + "\u0004\u0002\u0000\u0013\u0012\u0001\u0000\u0000\u0000\u0014\u0015\u0001"+ + "\u0000\u0000\u0000\u0015\u0013\u0001\u0000\u0000\u0000\u0015\u0016\u0001"+ + "\u0000\u0000\u0000\u0016\u0017\u0001\u0000\u0000\u0000\u0017\u0018\u0005"+ + "\u0002\u0000\u0000\u0018\u0003\u0001\u0000\u0000\u0000\u0019\u001a\u0005"+ + "\u0004\u0000\u0000\u001a\u001b\u0005\u0003\u0000\u0000\u001b\u001c\u0003"+ + "\u0006\u0003\u0000\u001c\u0005\u0001\u0000\u0000\u0000\u001d \u0005\u0005"+ + "\u0000\u0000\u001e \u0003\b\u0004\u0000\u001f\u001d\u0001\u0000\u0000"+ + "\u0000\u001f\u001e\u0001\u0000\u0000\u0000 \u0007\u0001\u0000\u0000\u0000"+ + "!\"\u0007\u0000\u0000\u0000\"\t\u0001\u0000\u0000\u0000\u0003\r\u0015"+ + "\u001f"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/developer/makefile b/developer/makefile index aae0601..090dcbe 100644 --- a/developer/makefile +++ b/developer/makefile @@ -1,21 +1,23 @@ # GQL_to_Cypher makefile -# Embedded and trailing spaces are included in the value, there are -# 4 of each used here. Leading spaces are not included. If there is a comment -# starting with a hash, the trailing spaces leading up to are included. -# Use `make variable` to print the value assigned to the variables, including -# ISLAND. +# Use `make variable` to print the value assigned to the variables in this header. + +# Embedded and trailing spaces are included in the value, there are 4 of each +# present in the value for ISLAND. Leading spaces are not included. If there is +# a comment starting with a hash, the trailing spaces leading up to it are +# included. ISLAND = land island # JAVA_HOME, CLASSPATH, and ANTLR_JAR variables come from `env_dev` JAVA_COMP = $(JAVA_HOME)/bin/javac JAVA_INTERP = $(JAVA_HOME)/bin/java JAR = $(JAVA_HOME)/bin/jar -#ANTLR_JAR = $(REPO_HOME)/tool/executor/antlr-4.11.1-complete.jar # FL = File List +# ANTLR automatically creates the directory ANTLR under $(ANTLR_OUT_DIR_DIR) ANTLR_IN_DIR = ANTLR -ANTLR_OUT_DIR = javac/antlr +ANTLR_OUT_DIR_DIR = javac +ANTLR_OUT_DIR = javac/ANTLR ANTLR_IN_FL = $(wildcard $(ANTLR_IN_DIR)/*.g4) ANTLR_OUT_FL = $(patsubst $(ANTLR_IN_DIR)/%.g4,$(ANTLR_OUT_DIR)/%.java,$(ANTLR_IN_FL)) @@ -58,6 +60,7 @@ variable: $(info ANTLR_IN_DIR is '$(ANTLR_IN_DIR)') $(info ANTLR_OUT_DIR is '$(ANTLR_OUT_DIR)') + $(info ANTLR_OUT_DIR_DIR is '$(ANTLR_OUT_DIR_DIR)') $(info ANTLR_IN_FL is '$(ANTLR_IN_FL)') $(info ANTLR_OUT_FL is '$(ANTLR_OUT_FL)') @@ -72,8 +75,6 @@ variable: $(info JAVA_OUT_FL1 is '$(JAVA_OUT_FL1)') $(info JAVA_OUT_FL is '$(JAVA_OUT_FL)') - - .PHONY: version version: @ $(JAVA_COMP) --version @@ -83,18 +84,42 @@ version: .PHONY: setup setup: - mkdir -p $(ANTLR_IN_DIR) $(ANTLR_OUT_DIR) $(JAVA_IN_DIR) $(JVM_IN_DIR) + # ANTLR automatically creates $(ANTLR_OUT_DIR_DIR) + # if it already exists, the auto created one nests below the existing one + mkdir -p $(ANTLR_IN_DIR) $(JAVA_IN_DIR) $(JVM_IN_DIR) mkdir -p deprecated experiment lector temporary test .PHONY: clean clean: - rm -rf $(JVM_IN_DIR)/* - rm -rf $(ANTLR_OUT_DIR)/*.java + @if [ -n "$(JVM_IN_DIR)" ]; then \ + echo "Cleaning $(JVM_IN_DIR)"; \ + rm -rf $(JVM_IN_DIR)/*; \ + else \ + echo "Warning: JVM_IN_DIR is not set"; \ + fi + @if [ -n "$(ANTLR_OUT_DIR)" ]; then \ + echo "Cleaning $(ANTLR_OUT_DIR)"; \ + rm -rf $(ANTLR_OUT_DIR); \ + else \ + echo "Warning: ANTLR_OUT_DIR is not set"; \ + fi + @if [ -d "temporary" ]; then \ + echo "Cleaning temporary directory"; \ + rm -rf temporary/*; \ + else \ + echo "Warning: temporary directory does not exist"; \ + fi + # recipes + +# ANTLR automatically creates a directory called ANTLR under the -o directory, +# and puts the resulting .java files in it. It is a little unusual, as a person +# would expect to pass in a directory directly, rather passing in the directory to put +# the automatically created directory in .. $(ANTLR_OUT_DIR)/%.java: $(ANTLR_IN_DIR)/%.g4 - $(JAVA_INTERP) -jar $(ANTLR_JAR) -Dlanguage=Java -o $(ANTLR_OUT_DIR) $< + $(JAVA_INTERP) -jar $(ANTLR_JAR) -Dlanguage=Java -o $(ANTLR_OUT_DIR_DIR) $< $(JAVA_OUT_FL0): $(JVM_IN_DIR)/%.class: $(JAVA_IN_DIR)/%.java $(JAVA_COMP) -d $(JVM_IN_DIR) -cp $(ANTLR_JAR) $< -- 2.20.1