diff --git a/extension b/extension index 4d8ff92de..db55e0d8f 160000 --- a/extension +++ b/extension @@ -1 +1 @@ -Subproject commit 4d8ff92de27e5d6ddbfaf1f40fcbed0ed39cbdec +Subproject commit db55e0d8f9f50e999af3a0c4864cc7a45bdd4005 diff --git a/scripts/antlr4/Cypher.g4 b/scripts/antlr4/Cypher.g4 index 7c4282ee5..6dfe6a344 100644 --- a/scripts/antlr4/Cypher.g4 +++ b/scripts/antlr4/Cypher.g4 @@ -318,7 +318,13 @@ iC_AttachDatabase : ATTACH SP StringLiteral (SP AS SP oC_SchemaName)? SP '(' SP? DBTYPE SP oC_SymbolicName (SP? ',' SP? iC_Options)? SP? ')' ; iC_Option - : oC_SymbolicName (SP? '=' SP? | SP*) oC_Literal | oC_SymbolicName; + : oC_SymbolicName (SP? '=' SP? | SP*) oC_Literal (SP? iC_OptionQualifier)? | oC_SymbolicName; + +// An optional parenthesized qualifier attached to a valued COPY option. Currently only +// `IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)` is meaningful: it is rewritten at parse time into the +// internal SKIP_DUPLICATE_PK option (duplicate-primary-key-only ignore mode). +iC_OptionQualifier + : '(' SP? oC_SymbolicName SP? ')' ; iC_Options : iC_Option ( SP? ',' SP? iC_Option )* ; diff --git a/scripts/antlr4/hash.md5 b/scripts/antlr4/hash.md5 index 25f1137b6..e63aee66d 100644 --- a/scripts/antlr4/hash.md5 +++ b/scripts/antlr4/hash.md5 @@ -1 +1 @@ -13b11d5b1e7e230715651c647e9877e1 +6298a7b244eb61ba5477ccc6eac619f7 diff --git a/src/antlr4/Cypher.g4 b/src/antlr4/Cypher.g4 index c6e840f73..75e37013a 100644 --- a/src/antlr4/Cypher.g4 +++ b/src/antlr4/Cypher.g4 @@ -63,7 +63,13 @@ iC_AttachDatabase : ATTACH SP StringLiteral (SP AS SP oC_SchemaName)? SP '(' SP? DBTYPE SP oC_SymbolicName (SP? ',' SP? iC_Options)? SP? ')' ; iC_Option - : oC_SymbolicName (SP? '=' SP? | SP*) oC_Literal | oC_SymbolicName; + : oC_SymbolicName (SP? '=' SP? | SP*) oC_Literal (SP? iC_OptionQualifier)? | oC_SymbolicName; + +// An optional parenthesized qualifier attached to a valued COPY option. Currently only +// `IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)` is meaningful: it is rewritten at parse time into the +// internal SKIP_DUPLICATE_PK option (duplicate-primary-key-only ignore mode). +iC_OptionQualifier + : '(' SP? oC_SymbolicName SP? ')' ; iC_Options : iC_Option ( SP? ',' SP? iC_Option )* ; diff --git a/src/binder/bind/copy/bind_copy_from.cpp b/src/binder/bind/copy/bind_copy_from.cpp index aeaf48194..3ef188d1d 100644 --- a/src/binder/bind/copy/bind_copy_from.cpp +++ b/src/binder/bind/copy/bind_copy_from.cpp @@ -141,11 +141,12 @@ BoundCopyFromInfo Binder::bindCopyNodeFromInfo(std::string tableName, const auto ignoreErrors = getBoolCopyOption(parsingOptions, CopyConstants::IGNORE_ERRORS_OPTION_NAME, CopyConstants::DEFAULT_IGNORE_ERRORS); if (skipDuplicatePK && ignoreErrors) { - throw BinderException("SKIP_DUPLICATE_PK cannot be used together with IGNORE_ERRORS."); + throw BinderException("IGNORE_ERRORS=true (DUPLICATE_PK_ONLY) cannot be used together with " + "IGNORE_ERRORS=true."); } if (skipDuplicatePK && source->type != ScanSourceType::FILE) { - throw BinderException( - "SKIP_DUPLICATE_PK is only supported for COPY FROM files into node tables."); + throw BinderException("IGNORE_ERRORS=true (DUPLICATE_PK_ONLY) is only supported for COPY " + "FROM files into node tables."); } auto boundSource = bindScanSource(source, parsingOptions, expectedColumnNames, expectedColumnTypes); @@ -218,8 +219,8 @@ BoundCopyFromInfo Binder::bindCopyRelFromInfo(std::string tableName, const NodeTableCatalogEntry* toTable) { if (getBoolCopyOption(parsingOptions, CopyConstants::SKIP_DUPLICATE_PK_OPTION_NAME, CopyConstants::DEFAULT_SKIP_DUPLICATE_PK)) { - throw BinderException( - "SKIP_DUPLICATE_PK is only supported for COPY FROM files into node tables."); + throw BinderException("IGNORE_ERRORS=true (DUPLICATE_PK_ONLY) is only supported for COPY " + "FROM files into node tables."); } auto boundSource = bindScanSource(source, parsingOptions, expectedColumnNames, expectedColumnTypes); diff --git a/src/include/binder/copy/bound_copy_from.h b/src/include/binder/copy/bound_copy_from.h index 32146e4fa..a09692adf 100644 --- a/src/include/binder/copy/bound_copy_from.h +++ b/src/include/binder/copy/bound_copy_from.h @@ -94,15 +94,15 @@ class BoundCopyFrom final : public BoundStatement { public: explicit BoundCopyFrom(BoundCopyFromInfo info) : BoundStatement{statementType_, - info.getSkipDuplicatePKOption() ? - createSkipDuplicatePKResult() : + info.tableType == common::TableType::NODE ? + createNodeCopyResult() : BoundStatementResult::createSingleStringColumnResult()}, info{std::move(info)} {} const BoundCopyFromInfo* getInfo() const { return &info; } private: - static BoundStatementResult createSkipDuplicatePKResult() { + static BoundStatementResult createNodeCopyResult() { auto result = BoundStatementResult::createSingleStringColumnResult(); auto skippedCount = std::make_shared(common::Value{int64_t(0)}, "skipped_duplicate_pk_count"); diff --git a/src/include/common/constants.h b/src/include/common/constants.h index bddd9bffa..3f0e9430e 100644 --- a/src/include/common/constants.h +++ b/src/include/common/constants.h @@ -105,7 +105,11 @@ struct CopyConstants { static constexpr uint64_t PARALLEL_BLOCK_SIZE = INITIAL_BUFFER_SIZE / 2; static constexpr const char* IGNORE_ERRORS_OPTION_NAME = "IGNORE_ERRORS"; + // Internal name of the duplicate-primary-key skip option. The user-facing COPY syntax is + // `IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)`, which `Transformer::transformOptions` rewrites into + // this option key so the existing duplicate-PK skip path stays intact. static constexpr const char* SKIP_DUPLICATE_PK_OPTION_NAME = "SKIP_DUPLICATE_PK"; + static constexpr const char* DUPLICATE_PK_ONLY_QUALIFIER_NAME = "DUPLICATE_PK_ONLY"; static constexpr const char* FROM_OPTION_NAME = "FROM"; static constexpr const char* TO_OPTION_NAME = "TO"; diff --git a/src/parser/transform/transform_copy.cpp b/src/parser/transform/transform_copy.cpp index 662f53c4a..583afa9e8 100644 --- a/src/parser/transform/transform_copy.cpp +++ b/src/parser/transform/transform_copy.cpp @@ -1,8 +1,12 @@ #include "common/assert.h" +#include "common/constants.h" +#include "common/exception/binder.h" +#include "common/string_utils.h" #include "parser/copy.h" #include "parser/expression/parsed_literal_expression.h" #include "parser/scan_source.h" #include "parser/transformer.h" +#include using namespace lbug::common; @@ -95,7 +99,34 @@ options_t Transformer::transformOptions(CypherParser::IC_OptionsContext& ctx) { // Check if the literal exists, otherwise set the value to true by default if (loadOption->oC_Literal()) { // If there is a literal, transform it and use it as the value - options.emplace(optionName, transformLiteral(*loadOption->oC_Literal())); + std::string valueStr = loadOption->oC_Literal()->getText(); + StringUtils::toUpper(valueStr); + if (loadOption->iC_OptionQualifier()) { + auto qualifier = + transformSymbolicName(*loadOption->iC_OptionQualifier()->oC_SymbolicName()); + auto upperOptionName = optionName; + StringUtils::toUpper(upperOptionName); + StringUtils::toUpper(qualifier); + // Only `IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)` is supported: rewrite it into the + // internal SKIP_DUPLICATE_PK option so the existing duplicate-PK skip path kicks + // in. Any other option/value/qualifier combination is rejected here. + if (upperOptionName != CopyConstants::IGNORE_ERRORS_OPTION_NAME || + qualifier != CopyConstants::DUPLICATE_PK_ONLY_QUALIFIER_NAME) { + throw common::BinderException( + std::format("Option qualifier ({}) is only supported as " + "IGNORE_ERRORS=true (DUPLICATE_PK_ONLY).", + qualifier)); + } + if (valueStr != "TRUE" && valueStr != "1") { + throw common::BinderException( + "IGNORE_ERRORS option qualifier " + "(DUPLICATE_PK_ONLY) is only supported with IGNORE_ERRORS=true."); + } + options.emplace(CopyConstants::SKIP_DUPLICATE_PK_OPTION_NAME, + std::make_unique(Value(true), "true")); + } else { + options.emplace(optionName, transformLiteral(*loadOption->oC_Literal())); + } } else { // If no literal is provided, set the default value to true options.emplace(optionName, diff --git a/src/processor/map/map_copy_from.cpp b/src/processor/map/map_copy_from.cpp index 9d6a5bfd3..d2e971c7b 100644 --- a/src/processor/map/map_copy_from.cpp +++ b/src/processor/map/map_copy_from.cpp @@ -47,10 +47,9 @@ std::unique_ptr PlanMapper::mapCopyNodeFrom( const auto copyFromInfo = copyFrom.getInfo(); const auto outFSchema = copyFrom.getSchema(); auto prevOperator = mapOperator(copyFrom.getChild(0).get()); - auto fTable = - copyFromInfo->getSkipDuplicatePKOption() ? - FactorizedTableUtils::getNodeCopyResultFTable(MemoryManager::Get(*clientContext)) : - FactorizedTableUtils::getSingleStringColumnFTable(MemoryManager::Get(*clientContext)); + // A node COPY always returns the three-column result schema (result, + // skipped_duplicate_pk_count, skipped_duplicate_pks) regardless of the active ignore mode. + auto fTable = FactorizedTableUtils::getNodeCopyResultFTable(MemoryManager::Get(*clientContext)); auto sharedState = std::make_shared(fTable); sharedState->skipDuplicatePK = copyFromInfo->getSkipDuplicatePKOption(); diff --git a/src/processor/operator/persistent/node_batch_insert.cpp b/src/processor/operator/persistent/node_batch_insert.cpp index f4a90ed3f..a1d178496 100644 --- a/src/processor/operator/persistent/node_batch_insert.cpp +++ b/src/processor/operator/persistent/node_batch_insert.cpp @@ -112,8 +112,8 @@ void NodeBatchInsertSharedState::initPKIndex(const ExecutionContext* context) { if (nodeTable->tryGetPrimaryKeyIndex() != nullptr) { if (skipDuplicatePK) { throw RuntimeException( - "SKIP_DUPLICATE_PK is only supported for node tables with a primary-key " - "hash index."); + "IGNORE_ERRORS=true (DUPLICATE_PK_ONLY) is only supported for node tables " + "with a primary-key hash index."); } globalIndexBuilder.reset(); noIndexPKValidator.reset(); @@ -127,8 +127,8 @@ void NodeBatchInsertSharedState::initPKIndex(const ExecutionContext* context) { } if (skipDuplicatePK) { throw RuntimeException( - "SKIP_DUPLICATE_PK is only supported for node tables with a primary-key hash " - "index."); + "IGNORE_ERRORS=true (DUPLICATE_PK_ONLY) is only supported for node tables with " + "a primary-key hash index."); } globalIndexBuilder.reset(); noIndexPKValidator = createNoIndexPKValidator(pkType); @@ -455,6 +455,9 @@ void NodeBatchInsert::finalizeInternal(ExecutionContext* context) { const auto* nodeInfo = info->ptrCast(); const auto* nodeSharedState = dynamic_cast_checked(sharedState.get()); + + int64_t skippedDuplicatePKCount = 0; + std::vector skippedDuplicatePKs; if (nodeInfo->skipDuplicatePK) { std::lock_guard lck{nodeSharedState->duplicatePKSkipResult->mtx}; // Duplicate-PK rows are counted in getNumRows() because they are appended before index @@ -465,36 +468,28 @@ void NodeBatchInsert::finalizeInternal(ExecutionContext* context) { DASSERT( sharedState->getNumRows() >= sharedState->getNumErroredRows() + nodeSharedState->duplicatePKSkipResult->skippedCount); - auto outputMsg = std::format("{} tuples have been copied to the {} table.", - sharedState->getNumRows() - sharedState->getNumErroredRows() - - nodeSharedState->duplicatePKSkipResult->skippedCount, - info->tableName); - FactorizedTableUtils::appendNodeCopyResultToTable(sharedState->fTable.get(), outputMsg, - nodeSharedState->duplicatePKSkipResult->skippedCount, - nodeSharedState->duplicatePKSkipResult->pks, MemoryManager::Get(*clientContext)); - } else { - auto outputMsg = std::format("{} tuples have been copied to the {} table.", - sharedState->getNumRows() - sharedState->getNumErroredRows(), info->tableName); - FactorizedTableUtils::appendStringToTable(sharedState->fTable.get(), outputMsg, - MemoryManager::Get(*clientContext)); + skippedDuplicatePKCount = nodeSharedState->duplicatePKSkipResult->skippedCount; + skippedDuplicatePKs = nodeSharedState->duplicatePKSkipResult->pks; } - + auto copiedCount = + sharedState->getNumRows() - sharedState->getNumErroredRows() - skippedDuplicatePKCount; const auto warningCount = WarningContext::Get(*clientContext)->getWarningCount(context->queryID); + std::string outputMsg = + std::format("{} tuples have been copied to the {} table.", copiedCount, info->tableName); if (warningCount > 0) { - auto warningMsg = - std::format("{} warnings encountered during copy. Use 'CALL " - "show_warnings() RETURN *' to view the actual warnings. Query ID: {}", - warningCount, context->queryID); - if (nodeInfo->skipDuplicatePK) { - FactorizedTableUtils::appendNodeCopyResultToTable(sharedState->fTable.get(), warningMsg, - 0 /* skippedDuplicatePKCount */, {} /* skippedDuplicatePKs */, - MemoryManager::Get(*clientContext)); - } else { - FactorizedTableUtils::appendStringToTable(sharedState->fTable.get(), warningMsg, - MemoryManager::Get(*clientContext)); - } + // Fold the warning summary into the single result row so the user still sees how many + // warnings were collected during the COPY. Individual warnings remain queryable via + // `CALL show_warnings() RETURN *`. + outputMsg = std::format( + "{} tuples have been copied to the {} table. {} warnings encountered during copy. " + "Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: {}", + copiedCount, info->tableName, warningCount, context->queryID); } + // Contract: a node COPY always returns exactly one row with three columns + // (result, skipped_duplicate_pk_count, skipped_duplicate_pks). + FactorizedTableUtils::appendNodeCopyResultToTable(sharedState->fTable.get(), outputMsg, + skippedDuplicatePKCount, skippedDuplicatePKs, MemoryManager::Get(*clientContext)); } } // namespace processor diff --git a/src/processor/operator/persistent/reader/parquet/parquet_reader.cpp b/src/processor/operator/persistent/reader/parquet/parquet_reader.cpp index 7fde9e8e1..32491d683 100644 --- a/src/processor/operator/persistent/reader/parquet/parquet_reader.cpp +++ b/src/processor/operator/persistent/reader/parquet/parquet_reader.cpp @@ -695,14 +695,18 @@ static std::unique_ptr bindFunc(main::ClientContext* context, const TableFuncBindInput* input) { auto scanInput = dynamic_cast_checked(input->extraInput.get()); const auto& options = scanInput->fileScanInfo.options; + // The user-facing COPY options are `IGNORE_ERRORS=true` and `IGNORE_ERRORS=true + // (DUPLICATE_PK_ONLY)`; the parser rewrites the latter into the internal SKIP_DUPLICATE_PK + // option key, so we accept either of those two keys here. if (options.size() > 2 || (options.size() == 1 && !options.contains(CopyConstants::IGNORE_ERRORS_OPTION_NAME) && !options.contains(CopyConstants::SKIP_DUPLICATE_PK_OPTION_NAME)) || (options.size() == 2 && (!options.contains(CopyConstants::IGNORE_ERRORS_OPTION_NAME) || !options.contains(CopyConstants::SKIP_DUPLICATE_PK_OPTION_NAME)))) { - throw BinderException{"Copy from Parquet cannot have options other than IGNORE_ERRORS and " - "SKIP_DUPLICATE_PK."}; + throw BinderException{ + "Copy from Parquet cannot have options other than IGNORE_ERRORS (which " + "may be qualified as IGNORE_ERRORS=true (DUPLICATE_PK_ONLY))."}; } std::vector detectedColumnNames; std::vector detectedColumnTypes; diff --git a/test/api/api_test.cpp b/test/api/api_test.cpp index 035e85910..920381c58 100644 --- a/test/api/api_test.cpp +++ b/test/api/api_test.cpp @@ -203,12 +203,16 @@ TEST_F(ApiTest, SingleQueryHasNextQueryResult) { TEST_F(ApiTest, CopySkipDuplicatePKPreservesResultColumnNames) { ASSERT_TRUE(conn->query("CREATE NODE TABLE copy_user(ID STRING, name STRING, PRIMARY KEY(ID));") ->isSuccess()); - auto result = conn->query(std::format("COPY copy_user FROM \"{}\" (SKIP_DUPLICATE_PK=true);", - TestHelper::appendLbugRootPath("dataset/copy-fault-tests/duplicate-ids/vOrg.csv"))); + auto result = conn->query( + std::format("COPY copy_user FROM \"{}\" (IGNORE_ERRORS=true (DUPLICATE_PK_ONLY));", + TestHelper::appendLbugRootPath("dataset/copy-fault-tests/duplicate-ids/vOrg.csv"))); ASSERT_TRUE(result->isSuccess()); + // Contract: a node COPY always returns exactly one row with three columns + // (result, skipped_duplicate_pk_count, skipped_duplicate_pks), regardless of ignore mode. + ASSERT_EQ(result->getNumColumns(), 3); const auto columnNames = result->getColumnNames(); - ASSERT_EQ(columnNames.size(), 3); + EXPECT_EQ(columnNames.size(), 3); EXPECT_EQ(columnNames[0], "result"); EXPECT_EQ(columnNames[1], "skipped_duplicate_pk_count"); EXPECT_EQ(columnNames[2], "skipped_duplicate_pks"); @@ -217,6 +221,27 @@ TEST_F(ApiTest, CopySkipDuplicatePKPreservesResultColumnNames) { auto tuple = result->getNext(); EXPECT_EQ(tuple->getValue(1)->getValue(), 1); EXPECT_EQ(tuple->getValue(2)->toString(), "[10]"); + // Exactly one row is returned. + EXPECT_FALSE(result->hasNext()); + + // The same 1-row / 3-column contract holds even when a second duplicate-PK csv is copied: + // duplicate PKs accumulate into the skipped lists/errors instead of erroring out. + ASSERT_TRUE(conn->query("CREATE NODE TABLE copy_user2(ID STRING, name STRING, PRIMARY " + "KEY(ID));") + ->isSuccess()); + auto result2 = conn->query( + std::format("COPY copy_user2 FROM \"{}\" (IGNORE_ERRORS=true (DUPLICATE_PK_ONLY));", + TestHelper::appendLbugRootPath("dataset/copy-fault-tests/duplicate-ids/vOrg.csv"))); + ASSERT_TRUE(result2->isSuccess()); + ASSERT_EQ(result2->getNumColumns(), 3); + ASSERT_TRUE(result2->hasNext()); + auto tuple2 = result2->getNext(); + EXPECT_EQ(tuple2->getValue(0)->toString(), + std::format("{} tuples have been copied to the copy_user2 table.", 3)); + EXPECT_EQ(tuple2->getValue(1)->getValue(), 1); + EXPECT_EQ(tuple2->getValue(2)->toString(), "[10]"); + // Exactly one row is returned. + EXPECT_FALSE(result2->hasNext()); } TEST_F(ApiTest, Prepare) { diff --git a/test/test_files/copy/copy_node_parquet.test b/test/test_files/copy/copy_node_parquet.test index 08387a45f..79438a57c 100644 --- a/test/test_files/copy/copy_node_parquet.test +++ b/test/test_files/copy/copy_node_parquet.test @@ -57,7 +57,7 @@ -LOG CopyWithOptionsErrorTest -STATEMENT COPY tableOfTypes FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-test/node/parquet/types_50k*.parquet" (HEADER=true); ---- error -Binder exception: Copy from Parquet cannot have options other than IGNORE_ERRORS and SKIP_DUPLICATE_PK. +Binder exception: Copy from Parquet cannot have options other than IGNORE_ERRORS (which may be qualified as IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)). -CASE IgnoreErrorsTest -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-test/node/parquet/invalid_pk_col.parquet" (IGNORE_ERRORS=true); @@ -75,6 +75,6 @@ Found duplicated primary key value 2, which violates the uniqueness constraint o 5 -CASE SkipDuplicatePKStillErrorsOnNullPKTest --STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-test/node/parquet/invalid_pk_col.parquet" (SKIP_DUPLICATE_PK=true); +-STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-test/node/parquet/invalid_pk_col.parquet" (IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)); ---- error Copy exception: Found NULL, which violates the non-null constraint of the primary key column. diff --git a/test/test_files/copy/copy_with_skip_lines.test b/test/test_files/copy/copy_with_skip_lines.test index 824681dc8..bb3f263e6 100644 --- a/test/test_files/copy/copy_with_skip_lines.test +++ b/test/test_files/copy/copy_with_skip_lines.test @@ -14,7 +14,7 @@ ---- ok -STATEMENT COPY person FROM '${LBUG_ROOT_DIRECTORY}/dataset/tinysnb/vPerson.csv' (skip=3); ---- 1 -2 tuples have been copied to the person table. +2 tuples have been copied to the person table.|0|[] -STATEMENT MATCH (p:person) return p.*; ---- 2 5|Dan|2|False|True|20|4.800000|1950-07-23|2031-11-30 12:25:30|10 years 5 months 13:00:00.000024|[1,9]|[Wolfeschlegelstein,Daniel]|[[7,4],[8,8],[9]]|[76,88,99,89]|1.300000|a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14 diff --git a/test/test_files/ddl/ddl_empty.test b/test/test_files/ddl/ddl_empty.test index 2c6ae36a8..6eab36dbb 100644 --- a/test/test_files/ddl/ddl_empty.test +++ b/test/test_files/ddl/ddl_empty.test @@ -133,7 +133,7 @@ Table art_copy_person has been created. Index art_copy_person_pk has been created. -STATEMENT COPY art_copy_person FROM "${LBUG_ROOT_DIRECTORY}/test/test_files/ddl/art_index_person.csv"; ---- 1 -4 tuples have been copied to the art_copy_person table. +4 tuples have been copied to the art_copy_person table.|0|[] -STATEMENT MATCH (p:art_copy_person) WHERE p.ID = 2 RETURN p.name; ---- 1 Grace diff --git a/test/test_files/exceptions/copy/auto_commit.test b/test/test_files/exceptions/copy/auto_commit.test index d219ee49e..2d51c50ef 100644 --- a/test/test_files/exceptions/copy/auto_commit.test +++ b/test/test_files/exceptions/copy/auto_commit.test @@ -7,10 +7,10 @@ ---- ok -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/tinysnb/vPerson.csv" ---- 1 -5 tuples have been copied to the person table. +5 tuples have been copied to the person table.|0|[] -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/tinysnb/vPerson2.csv" ---- 1 -3 tuples have been copied to the person table. +3 tuples have been copied to the person table.|0|[] -STATEMENT create rel table knows (FROM person TO person, date DATE, meetTime TIMESTAMP, validInterval INTERVAL, comments STRING[], summary STRUCT(locations STRING[], transfer STRUCT(day DATE, amount INT64[])), notes UNION(firstmet DATE, type INT16, comment STRING), someMap MAP(STRING, STRING), MANY_MANY) ---- ok -STATEMENT COPY knows FROM "${LBUG_ROOT_DIRECTORY}/dataset/tinysnb/eKnows.csv" diff --git a/test/test_files/exceptions/copy/duplicated.test b/test/test_files/exceptions/copy/duplicated.test index d7b6918ff..febdf9a8b 100644 --- a/test/test_files/exceptions/copy/duplicated.test +++ b/test/test_files/exceptions/copy/duplicated.test @@ -14,9 +14,8 @@ Copy exception: Found duplicated primary key value 10, which violates the unique -CASE DuplicateIntIDsIgnoreErrors -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv"(IGNORE_ERRORS=true) ----- 2 -3 tuples have been copied to the person table. -1 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 2 +---- 1 +3 tuples have been copied to the person table. 1 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 2|0|[] -STATEMENT MATCH (p:person) RETURN p.* ---- 3 10|Guodong @@ -28,9 +27,8 @@ Found duplicated primary key value 10, which violates the uniqueness constraint -CASE DuplicateIntIDsIgnoreErrorSpansMultipleBlocks -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonLongRow.csv"(IGNORE_ERRORS=true) ----- 2 -4 tuples have been copied to the person table. -2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 2 +---- 1 +4 tuples have been copied to the person table. 2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 2|0|[] -STATEMENT CALL show_warnings() RETURN message, file_path, skipped_line_or_record, line_number ---- 2 Found duplicated primary key value 10, which violates the uniqueness constraint of the primary key column.|${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonLongRow.csv|10,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa|4 @@ -40,9 +38,8 @@ Found duplicated primary key value 25, which violates the uniqueness constraint -STATEMENT CALL warning_limit=10 ---- ok -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonManyDuplicates.csv"(IGNORE_ERRORS=true) ----- 2 -2 tuples have been copied to the person table. -28 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3 +---- 1 +2 tuples have been copied to the person table. 28 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3|0|[] -STATEMENT MATCH (p:person) RETURN p.* ---- 2 10|a @@ -64,9 +61,8 @@ Found duplicated primary key value 10, which violates the uniqueness constraint -STATEMENT CALL warning_limit=2 ---- ok -STATEMENT COPY person FROM ["${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv", "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonManyDuplicates.csv"](IGNORE_ERRORS=true) ----- 2 -4 tuples have been copied to the person table. -30 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3 +---- 1 +4 tuples have been copied to the person table. 30 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3|0|[] -STATEMENT MATCH (p:person) RETURN p.ID ---- 4 10 @@ -84,9 +80,8 @@ Found duplicated primary key value 10, which violates the uniqueness constraint -STATEMENT CALL warning_limit=2 ---- ok -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonManyDuplicates.csv"(IGNORE_ERRORS=true, PARALLEL=false) ----- 2 -2 tuples have been copied to the person table. -28 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3 +---- 1 +2 tuples have been copied to the person table. 28 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3|0|[] -STATEMENT MATCH (p:person) RETURN p.* ---- 2 10|a @@ -98,9 +93,8 @@ Found duplicated primary key value 10, which violates the uniqueness constraint -CASE DuplicateStringIDsIgnoreErrors -STATEMENT COPY org FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vOrg.csv"(IGNORE_ERRORS=true) ----- 2 -3 tuples have been copied to the org table. -1 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 2 +---- 1 +3 tuples have been copied to the org table. 1 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 2|0|[] -STATEMENT MATCH (o:org) RETURN o.* ---- 3 10|Guodong @@ -111,7 +105,7 @@ Found duplicated primary key value 10, which violates the uniqueness constraint Found duplicated primary key value 10, which violates the uniqueness constraint of the primary key column.|${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vOrg.csv|10,Ziyi|4 -CASE DuplicateIntIDsSkipDuplicatePK --STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv"(SKIP_DUPLICATE_PK=true) +-STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv"(IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)) ---- 1 3 tuples have been copied to the person table.|1|[10] -STATEMENT MATCH (p:person) RETURN p.* @@ -124,7 +118,7 @@ Found duplicated primary key value 10, which violates the uniqueness constraint 0 -CASE ManyDuplicateIntIDsSkipDuplicatePK --STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonManyDuplicates.csv"(SKIP_DUPLICATE_PK=true, PARALLEL=false) +-STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonManyDuplicates.csv"(IGNORE_ERRORS=true (DUPLICATE_PK_ONLY), PARALLEL=false) ---- 1 2 tuples have been copied to the person table.|28|[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10] -STATEMENT MATCH (p:person) RETURN p.* @@ -136,7 +130,7 @@ Found duplicated primary key value 10, which violates the uniqueness constraint 0 -CASE DuplicateStringIDsSkipDuplicatePK --STATEMENT COPY org FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vOrg.csv"(SKIP_DUPLICATE_PK=true) +-STATEMENT COPY org FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vOrg.csv"(IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)) ---- 1 3 tuples have been copied to the org table.|1|[10] -STATEMENT MATCH (o:org) RETURN o.* @@ -153,7 +147,7 @@ Found duplicated primary key value 10, which violates the uniqueness constraint ---- ok -STATEMENT CREATE (p:seeded {ID: 10, name: 'seed'}) ---- ok --STATEMENT COPY seeded FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv"(SKIP_DUPLICATE_PK=true) +-STATEMENT COPY seeded FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv"(IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)) ---- 1 2 tuples have been copied to the seeded table.|2|[10,10] -STATEMENT MATCH (p:seeded) RETURN p.ID, p.name ORDER BY p.ID, p.name @@ -166,7 +160,7 @@ Found duplicated primary key value 10, which violates the uniqueness constraint 0 -CASE MultiFileDuplicateIntIDsSkipDuplicatePK --STATEMENT COPY person FROM ["${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv", "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonManyDuplicates.csv"](SKIP_DUPLICATE_PK=true, PARALLEL=false) +-STATEMENT COPY person FROM ["${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv", "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPersonManyDuplicates.csv"](IGNORE_ERRORS=true (DUPLICATE_PK_ONLY), PARALLEL=false) ---- 1 4 tuples have been copied to the person table.|30|[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10] -STATEMENT MATCH (p:person) RETURN p.ID @@ -180,18 +174,18 @@ Found duplicated primary key value 10, which violates the uniqueness constraint 0 -CASE SkipDuplicatePKCannotCombineIgnoreErrors --STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv"(IGNORE_ERRORS=true, SKIP_DUPLICATE_PK=true) +-STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/duplicate-ids/vPerson.csv"(IGNORE_ERRORS=true, IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)) ---- error -Binder exception: SKIP_DUPLICATE_PK cannot be used together with IGNORE_ERRORS. +Binder exception: IGNORE_ERRORS=true (DUPLICATE_PK_ONLY) cannot be used together with IGNORE_ERRORS=true. -CASE SkipDuplicatePKNotSupportedForRelCopy -STATEMENT CREATE REL TABLE likes(FROM person TO person, date DATE, MANY_MANY) ---- ok --STATEMENT COPY likes FROM "${LBUG_ROOT_DIRECTORY}/dataset/tinysnb/eLikes.csv"(SKIP_DUPLICATE_PK=true) +-STATEMENT COPY likes FROM "${LBUG_ROOT_DIRECTORY}/dataset/tinysnb/eLikes.csv"(IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)) ---- error -Binder exception: SKIP_DUPLICATE_PK is only supported for COPY FROM files into node tables. +Binder exception: IGNORE_ERRORS=true (DUPLICATE_PK_ONLY) is only supported for COPY FROM files into node tables. -CASE SkipDuplicatePKNotSupportedForSubqueryCopy --STATEMENT COPY person FROM (UNWIND [10, 10, 24] AS id RETURN id, 'x' AS fName) (SKIP_DUPLICATE_PK=true) +-STATEMENT COPY person FROM (UNWIND [10, 10, 24] AS id RETURN id, 'x' AS fName) (IGNORE_ERRORS=true (DUPLICATE_PK_ONLY)) ---- error -Binder exception: SKIP_DUPLICATE_PK is only supported for COPY FROM files into node tables. +Binder exception: IGNORE_ERRORS=true (DUPLICATE_PK_ONLY) is only supported for COPY FROM files into node tables. diff --git a/test/test_files/exceptions/copy/ignore_invalid_row.test b/test/test_files/exceptions/copy/ignore_invalid_row.test index e2b774703..68bdb9dd2 100644 --- a/test/test_files/exceptions/copy/ignore_invalid_row.test +++ b/test/test_files/exceptions/copy/ignore_invalid_row.test @@ -7,9 +7,8 @@ -STATEMENT create node table animal(id INT64, val DOUBLE, name STRING, nums DOUBLE[3], PRIMARY KEY (id)); ---- ok -STATEMENT COPY animal FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/error-on-block-edge.csv" (ignore_errors=true, header=false); ----- 2 -191 tuples have been copied to the animal table. -59 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7 +---- 1 +191 tuples have been copied to the animal table. 59 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7|0|[] -STATEMENT CALL show_warnings() RETURN COUNT(*) ---- 1 59 @@ -31,9 +30,8 @@ Quoted newlines are not supported in parallel CSV reader. Please specify PARALLE -CASE ParallelSkipInvalidNodeTableRowsCastingErrorCheckNumTuples -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vPerson.csv" (IGNORE_ERRORS=true, AUTO_DETECT=false) ----- 2 -5 tuples have been copied to the person table. -2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 6 +---- 1 +5 tuples have been copied to the person table. 2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 6|0|[] -CASE ParallelSkipInvalidNodeTableRowsCastingError -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vPerson.csv" (IGNORE_ERRORS=true, AUTO_DETECT=false) @@ -82,9 +80,8 @@ Quoted newlines are not supported in parallel CSV reader. Please specify PARALLE -STATEMENT CALL warning_limit=2 ---- ok -STATEMENT COPY movie FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vMovie.csv" (IGNORE_ERRORS=true, HEADER=true, ESCAPE="~", AUTO_DETECT=false) ----- 2 -5 tuples have been copied to the movie table. -5 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7 +---- 1 +5 tuples have been copied to the movie table. 5 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7|0|[] -STATEMENT CALL show_warnings() RETURN message, file_path, line_number, skipped_line_or_record ---- 2 Conversion exception: Cast failed. Could not convert "312abc" to INT32.|${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vMovie.csv|2|0,312abc... @@ -101,13 +98,11 @@ neither QUOTE nor ESCAPE is proceeded by ESCAPE.|${LBUG_ROOT_DIRECTORY}/dataset/ -STATEMENT CALL warning_limit=2 ---- ok -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vPerson.csv" (IGNORE_ERRORS=true, AUTO_DETECT=false) ----- 2 -5 tuples have been copied to the person table. -2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7 +---- 1 +5 tuples have been copied to the person table. 2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7|0|[] -STATEMENT COPY movie FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vMovie.csv" (IGNORE_ERRORS=true, ESCAPE="~", HEADER=true, AUTO_DETECT=false) ----- 2 -5 tuples have been copied to the movie table. -5 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 8 +---- 1 +5 tuples have been copied to the movie table. 5 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 8|0|[] -STATEMENT CALL show_warnings() RETURN message, file_path, line_number, skipped_line_or_record ---- 2 Conversion exception: Cast failed. Could not convert "2147483650" to INT32.|${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vPerson.csv|2|2,2147483650 @@ -272,9 +267,8 @@ Copy exception: Error in file ${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/in -CASE SerialSkipInvalidNodeTableRowsCastingErrorCheckNumTuples -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vPerson.csv" (IGNORE_ERRORS=true, PARALLEL=false, AUTO_DETECT=false) ----- 2 -5 tuples have been copied to the person table. -2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 6 +---- 1 +5 tuples have been copied to the person table. 2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 6|0|[] -CASE ParallelCopyFromMultipleLargeFilesSkipInvalid -STATEMENT CALL threads=2 @@ -359,9 +353,8 @@ unterminated quotes.|${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row -STATEMENT CALL warning_limit=2 ---- ok -STATEMENT COPY movie FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vMovie.csv" (IGNORE_ERRORS=true, HEADER=true, ESCAPE="~", PARALLEL=false, AUTO_DETECT=false) ----- 2 -5 tuples have been copied to the movie table. -5 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7 +---- 1 +5 tuples have been copied to the movie table. 5 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7|0|[] -STATEMENT CALL show_warnings() RETURN message, file_path, line_number, skipped_line_or_record ---- 2 Conversion exception: Cast failed. Could not convert "312abc" to INT32.|${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vMovie.csv|2|0,312abc... @@ -418,9 +411,8 @@ Conversion exception: Cast failed. Could not convert "1111111111111111111111111" -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/vPerson.csv" (ignore_errors=true, AUTO_DETECT=false) ---- ok -STATEMENT COPY person FROM (MATCH (p:person) RETURN CASE WHEN p.id % 2 = 0 THEN p.id ELSE p.id + 10 END, p.gender) (ignore_errors=true) ----- 2 -2 tuples have been copied to the person table. -3 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7 +---- 1 +2 tuples have been copied to the person table. 3 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 7|0|[] -STATEMENT MATCH (p:person) RETURN p.id ---- 7 0 @@ -433,9 +425,8 @@ Conversion exception: Cast failed. Could not convert "1111111111111111111111111" -CASE ParallelCopyFromCSVWithMultipleBlocksIgnoreErrors -STATEMENT COPY Comment FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/Comment.csv" (ignore_errors=true, AUTO_DETECT=false, header=true, delim='|') ----- 2 -996 tuples have been copied to the Comment table. -3 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 6 +---- 1 +996 tuples have been copied to the Comment table. 3 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 6|0|[] -STATEMENT CALL show_warnings() RETURN message, file_path, line_number, skipped_line_or_record ---- 3 Conversion exception: Cast failed. Could not convert "412316860444aa" to INT64.|${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/invalid-row/Comment.csv|26|412316860444aa... diff --git a/test/test_files/exceptions/copy/null_pk.test b/test/test_files/exceptions/copy/null_pk.test index 90d7baeea..41b2a4a72 100644 --- a/test/test_files/exceptions/copy/null_pk.test +++ b/test/test_files/exceptions/copy/null_pk.test @@ -14,9 +14,8 @@ Copy exception: Found NULL, which violates the non-null constraint of the primar -CASE NullPrimaryKeyInNodeFileIgnoreErrors -STATEMENT COPY person FROM "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/null-pk/vPerson.csv"(IGNORE_ERRORS=true) ----- 2 -2 tuples have been copied to the person table. -1 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3 +---- 1 +2 tuples have been copied to the person table. 1 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3|0|[] -STATEMENT MATCH (p:person) RETURN p.fName ---- 2 alice @@ -27,9 +26,8 @@ bob -CASE NullPrimaryKeyInMultiNodeFilesIgnoreErrors -STATEMENT COPY person FROM ["${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/null-pk/vPerson.csv", "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/null-pk/vPerson2.csv"](IGNORE_ERRORS=true) ----- 2 -5 tuples have been copied to the person table. -2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3 +---- 1 +5 tuples have been copied to the person table. 2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 3|0|[] -STATEMENT CALL show_warnings() RETURN query_id, message, file_path, skipped_line_or_record, line_number ---- 2 3|Found NULL, which violates the non-null constraint of the primary key column.|${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/null-pk/vPerson.csv||2 @@ -39,9 +37,8 @@ bob -STATEMENT CALL warning_limit=1; ---- ok -STATEMENT COPY person FROM ["${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/null-pk/vPerson.csv", "${LBUG_ROOT_DIRECTORY}/dataset/copy-fault-tests/null-pk/vPerson2.csv"](IGNORE_ERRORS=true) ----- 2 -5 tuples have been copied to the person table. -2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 4 +---- 1 +5 tuples have been copied to the person table. 2 warnings encountered during copy. Use 'CALL show_warnings() RETURN *' to view the actual warnings. Query ID: 4|0|[] -STATEMENT CALL show_warnings() RETURN query_id, message ---- 1 4|Found NULL, which violates the non-null constraint of the primary key column. diff --git a/third_party/antlr4_cypher/cypher_parser.cpp b/third_party/antlr4_cypher/cypher_parser.cpp index 53b84a994..89eaa1c7c 100644 --- a/third_party/antlr4_cypher/cypher_parser.cpp +++ b/third_party/antlr4_cypher/cypher_parser.cpp @@ -53,42 +53,42 @@ void cypherParserInitialize() { std::vector{ "iC_Statements", "oC_Cypher", "oC_Statement", "iC_CopyFrom", "iC_ColumnNames", "iC_ScanSource", "iC_CopyFromByColumn", "iC_CopyTO", "iC_ExportDatabase", - "iC_ImportDatabase", "iC_AttachDatabase", "iC_Option", "iC_Options", - "iC_DetachDatabase", "iC_UseDatabase", "iC_CreateGraph", "iC_UseGraph", - "iC_Analyze", "iC_StandaloneCall", "iC_CommentOn", "iC_CreateMacro", - "iC_PositionalArgs", "iC_DefaultArg", "iC_FilePaths", "iC_IfNotExists", - "iC_CreateNodeTable", "iC_CreateRelTable", "iC_CreateIndex", "iC_IndexPattern", - "iC_IndexNodePattern", "iC_IndexRelationshipPattern", "iC_IndexPropertyPattern", - "iC_CreateFromToConnections", "iC_CreateFromToConnection", "iC_FromToConnections", - "iC_FromToConnection", "iC_CreateSequence", "iC_CreateType", "iC_SequenceOptions", - "iC_WithPasswd", "iC_CreateUser", "iC_CreateRole", "iC_IncrementBy", - "iC_MinValue", "iC_MaxValue", "iC_StartWith", "iC_Cycle", "iC_IfExists", - "iC_Drop", "iC_AlterTable", "iC_AlterOptions", "iC_AddProperty", "iC_Default", - "iC_DropProperty", "iC_RenameTable", "iC_RenameProperty", "iC_AddFromToConnection", - "iC_DropFromToConnection", "iC_ColumnDefinitions", "iC_ColumnDefinition", - "iC_PropertyDefinitions", "iC_PropertyDefinition", "iC_CreateNodeConstraint", - "iC_UnionType", "iC_StructType", "iC_MapType", "iC_DecimalType", "iC_DataType", - "iC_ListIdentifiers", "iC_ListIdentifier", "oC_AnyCypherOption", "oC_Explain", - "oC_Profile", "iC_Transaction", "iC_Extension", "iC_LoadExtension", - "iC_InstallExtension", "iC_UninstallExtension", "iC_UpdateExtension", - "oC_Query", "oC_RegularQuery", "oC_Union", "oC_SingleQuery", "oC_SinglePartQuery", - "oC_MultiPartQuery", "iC_QueryPart", "oC_UpdatingClause", "oC_ReadingClause", - "iC_LoadFrom", "oC_YieldItem", "oC_YieldItems", "iC_InQueryCall", - "oC_Match", "iC_Hint", "iC_JoinNode", "oC_Unwind", "oC_Create", "oC_Merge", - "oC_MergeAction", "oC_Set", "oC_SetItem", "oC_Delete", "oC_With", - "oC_Return", "oC_ProjectionBody", "oC_ProjectionItems", "oC_ProjectionItem", - "oC_Order", "oC_Skip", "oC_Limit", "oC_SortItem", "oC_Where", "oC_Pattern", - "oC_PatternPart", "oC_AnonymousPatternPart", "oC_PatternElement", - "oC_NodePattern", "oC_PatternElementChain", "oC_RelationshipPattern", - "oC_RelationshipDetail", "iC_Properties", "oC_RelationshipTypes", - "oC_NodeLabels", "iC_RecursiveDetail", "iC_RecursiveType", "oC_RangeLiteral", - "iC_RecursiveComprehension", "iC_RecursiveProjectionItems", "oC_LowerBound", - "oC_UpperBound", "oC_LabelName", "oC_RelTypeName", "oC_Expression", - "oC_OrExpression", "oC_XorExpression", "oC_AndExpression", "oC_NotExpression", - "oC_ComparisonExpression", "iC_ComparisonOperator", "iC_BitwiseOrOperatorExpression", - "iC_BitwiseAndOperatorExpression", "iC_BitShiftOperatorExpression", - "iC_BitShiftOperator", "oC_AddOrSubtractExpression", "iC_AddOrSubtractOperator", - "oC_MultiplyDivideModuloExpression", "iC_MultiplyDivideModuloOperator", + "iC_ImportDatabase", "iC_AttachDatabase", "iC_Option", "iC_OptionQualifier", + "iC_Options", "iC_DetachDatabase", "iC_UseDatabase", "iC_CreateGraph", + "iC_UseGraph", "iC_Analyze", "iC_StandaloneCall", "iC_CommentOn", + "iC_CreateMacro", "iC_PositionalArgs", "iC_DefaultArg", "iC_FilePaths", + "iC_IfNotExists", "iC_CreateNodeTable", "iC_CreateRelTable", "iC_CreateIndex", + "iC_IndexPattern", "iC_IndexNodePattern", "iC_IndexRelationshipPattern", + "iC_IndexPropertyPattern", "iC_CreateFromToConnections", "iC_CreateFromToConnection", + "iC_FromToConnections", "iC_FromToConnection", "iC_CreateSequence", + "iC_CreateType", "iC_SequenceOptions", "iC_WithPasswd", "iC_CreateUser", + "iC_CreateRole", "iC_IncrementBy", "iC_MinValue", "iC_MaxValue", "iC_StartWith", + "iC_Cycle", "iC_IfExists", "iC_Drop", "iC_AlterTable", "iC_AlterOptions", + "iC_AddProperty", "iC_Default", "iC_DropProperty", "iC_RenameTable", + "iC_RenameProperty", "iC_AddFromToConnection", "iC_DropFromToConnection", + "iC_ColumnDefinitions", "iC_ColumnDefinition", "iC_PropertyDefinitions", + "iC_PropertyDefinition", "iC_CreateNodeConstraint", "iC_UnionType", + "iC_StructType", "iC_MapType", "iC_DecimalType", "iC_DataType", "iC_ListIdentifiers", + "iC_ListIdentifier", "oC_AnyCypherOption", "oC_Explain", "oC_Profile", + "iC_Transaction", "iC_Extension", "iC_LoadExtension", "iC_InstallExtension", + "iC_UninstallExtension", "iC_UpdateExtension", "oC_Query", "oC_RegularQuery", + "oC_Union", "oC_SingleQuery", "oC_SinglePartQuery", "oC_MultiPartQuery", + "iC_QueryPart", "oC_UpdatingClause", "oC_ReadingClause", "iC_LoadFrom", + "oC_YieldItem", "oC_YieldItems", "iC_InQueryCall", "oC_Match", "iC_Hint", + "iC_JoinNode", "oC_Unwind", "oC_Create", "oC_Merge", "oC_MergeAction", + "oC_Set", "oC_SetItem", "oC_Delete", "oC_With", "oC_Return", "oC_ProjectionBody", + "oC_ProjectionItems", "oC_ProjectionItem", "oC_Order", "oC_Skip", + "oC_Limit", "oC_SortItem", "oC_Where", "oC_Pattern", "oC_PatternPart", + "oC_AnonymousPatternPart", "oC_PatternElement", "oC_NodePattern", + "oC_PatternElementChain", "oC_RelationshipPattern", "oC_RelationshipDetail", + "iC_Properties", "oC_RelationshipTypes", "oC_NodeLabels", "iC_RecursiveDetail", + "iC_RecursiveType", "oC_RangeLiteral", "iC_RecursiveComprehension", + "iC_RecursiveProjectionItems", "oC_LowerBound", "oC_UpperBound", "oC_LabelName", + "oC_RelTypeName", "oC_Expression", "oC_OrExpression", "oC_XorExpression", + "oC_AndExpression", "oC_NotExpression", "oC_ComparisonExpression", + "iC_ComparisonOperator", "iC_BitwiseOrOperatorExpression", "iC_BitwiseAndOperatorExpression", + "iC_BitShiftOperatorExpression", "iC_BitShiftOperator", "oC_AddOrSubtractExpression", + "iC_AddOrSubtractOperator", "oC_MultiplyDivideModuloExpression", "iC_MultiplyDivideModuloOperator", "oC_PowerOfExpression", "oC_StringListNullOperatorExpression", "oC_ListOperatorExpression", "oC_StringOperatorExpression", "oC_RegularExpression", "oC_NullOperatorExpression", "oC_UnaryAddSubtractOrFactorialExpression", "oC_PropertyOrLabelsExpression", @@ -149,7 +149,7 @@ void cypherParserInitialize() { } ); static const int32_t serializedATNSegment[] = { - 4,1,190,3102,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, + 4,1,190,3119,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, @@ -178,257 +178,259 @@ void cypherParserInitialize() { 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,1,0,1,0,3,0,381,8,0,1,0,1,0,3,0,385,8,0,1,0,5,0,388,8,0,10,0,12, - 0,391,9,0,1,0,3,0,394,8,0,1,0,1,0,1,1,3,1,399,8,1,1,1,3,1,402,8,1,1,1, - 1,1,3,1,406,8,1,1,1,3,1,409,8,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, - 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2, - 437,8,2,1,3,1,3,1,3,1,3,3,3,443,8,3,1,3,1,3,1,3,1,3,1,3,3,3,450,8,3,1, - 3,1,3,3,3,454,8,3,1,3,1,3,3,3,458,8,3,1,3,1,3,3,3,462,8,3,1,4,3,4,465, - 8,4,1,4,1,4,3,4,469,8,4,1,4,1,4,3,4,473,8,4,1,4,1,4,3,4,477,8,4,1,4,5, - 4,480,8,4,10,4,12,4,483,9,4,1,4,3,4,486,8,4,3,4,488,8,4,1,4,1,4,1,5,1, - 5,1,5,3,5,495,8,5,1,5,1,5,3,5,499,8,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5, - 508,8,5,1,5,1,5,1,5,3,5,513,8,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,523, - 8,6,1,6,1,6,3,6,527,8,6,1,6,1,6,3,6,531,8,6,1,6,5,6,534,8,6,10,6,12,6, - 537,9,6,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,3,7,549,8,7,1,7,1,7,3, - 7,553,8,7,1,7,1,7,1,7,1,7,1,7,1,7,3,7,561,8,7,1,7,1,7,3,7,565,8,7,1,7, - 1,7,3,7,569,8,7,1,7,1,7,3,7,573,8,7,1,8,1,8,1,8,1,8,1,8,1,8,3,8,581,8, - 8,1,8,1,8,3,8,585,8,8,1,8,1,8,3,8,589,8,8,1,8,1,8,3,8,593,8,8,1,9,1,9, - 1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,608,8,10,1,10, - 1,10,1,10,3,10,613,8,10,1,10,1,10,1,10,1,10,3,10,619,8,10,1,10,1,10,3, - 10,623,8,10,1,10,3,10,626,8,10,1,10,3,10,629,8,10,1,10,1,10,1,11,1,11, - 3,11,635,8,11,1,11,1,11,3,11,639,8,11,1,11,5,11,642,8,11,10,11,12,11, - 645,9,11,3,11,647,8,11,1,11,1,11,1,11,3,11,652,8,11,1,12,1,12,3,12,656, - 8,12,1,12,1,12,3,12,660,8,12,1,12,5,12,663,8,12,10,12,12,12,666,9,12, - 1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15, - 1,15,3,15,683,8,15,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,3,17, - 694,8,17,1,18,1,18,1,18,1,18,3,18,700,8,18,1,18,1,18,3,18,704,8,18,1, - 18,1,18,1,18,1,18,1,18,3,18,711,8,18,1,19,1,19,1,19,1,19,1,19,1,19,1, - 19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20,3,20,731,8, - 20,1,20,1,20,3,20,735,8,20,1,20,3,20,738,8,20,1,20,3,20,741,8,20,1,20, - 3,20,744,8,20,1,20,3,20,747,8,20,1,20,1,20,3,20,751,8,20,1,20,5,20,754, - 8,20,10,20,12,20,757,9,20,1,20,3,20,760,8,20,1,20,1,20,1,20,1,20,1,20, - 1,20,1,21,1,21,3,21,770,8,21,1,21,1,21,3,21,774,8,21,1,21,5,21,777,8, - 21,10,21,12,21,780,9,21,1,22,1,22,3,22,784,8,22,1,22,1,22,1,22,3,22,789, - 8,22,1,22,1,22,1,23,1,23,3,23,795,8,23,1,23,1,23,3,23,799,8,23,1,23,1, - 23,3,23,803,8,23,1,23,5,23,806,8,23,10,23,12,23,809,9,23,1,23,1,23,1, - 23,1,23,3,23,815,8,23,1,23,1,23,3,23,819,8,23,1,23,1,23,3,23,823,8,23, - 1,23,3,23,826,8,23,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25, - 1,25,1,25,1,25,1,25,1,25,3,25,843,8,25,1,25,1,25,3,25,847,8,25,1,25,1, - 25,3,25,851,8,25,1,25,1,25,3,25,855,8,25,1,25,1,25,3,25,859,8,25,1,25, - 3,25,862,8,25,1,25,3,25,865,8,25,1,25,1,25,1,25,1,25,1,25,1,25,3,25,873, - 8,25,1,25,1,25,1,25,3,25,878,8,25,1,25,1,25,3,25,882,8,25,1,25,1,25,3, - 25,886,8,25,1,25,1,25,3,25,890,8,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26, - 3,26,899,8,26,1,26,1,26,3,26,903,8,26,1,26,1,26,1,26,3,26,908,8,26,1, - 26,1,26,3,26,912,8,26,1,26,1,26,3,26,916,8,26,1,26,1,26,3,26,920,8,26, - 1,26,1,26,3,26,924,8,26,3,26,926,8,26,1,26,1,26,3,26,930,8,26,1,26,1, - 26,3,26,934,8,26,3,26,936,8,26,1,26,1,26,1,26,1,26,1,26,1,26,3,26,944, - 8,26,1,26,1,26,1,26,3,26,949,8,26,1,26,1,26,3,26,953,8,26,1,26,1,26,3, - 26,957,8,26,1,26,1,26,3,26,961,8,26,1,27,1,27,1,27,3,27,966,8,27,1,27, - 1,27,1,27,1,27,3,27,972,8,27,1,27,1,27,3,27,976,8,27,1,27,1,27,1,27,1, - 27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,3,27,989,8,27,1,27,1,27,3,27,993, - 8,27,1,27,3,27,996,8,27,1,27,3,27,999,8,27,1,27,3,27,1002,8,27,1,28,1, - 28,3,28,1006,8,28,1,29,1,29,3,29,1010,8,29,1,29,3,29,1013,8,29,1,29,3, - 29,1016,8,29,1,29,1,29,3,29,1020,8,29,1,29,1,29,3,29,1024,8,29,1,29,1, - 29,1,30,1,30,3,30,1030,8,30,1,30,1,30,3,30,1034,8,30,1,30,1,30,3,30,1038, - 8,30,1,30,1,30,3,30,1042,8,30,1,30,1,30,1,31,1,31,3,31,1048,8,31,1,31, - 1,31,3,31,1052,8,31,1,31,1,31,3,31,1056,8,31,1,31,1,31,3,31,1060,8,31, - 1,31,1,31,1,32,1,32,3,32,1066,8,32,1,32,1,32,3,32,1070,8,32,1,32,5,32, - 1073,8,32,10,32,12,32,1076,9,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1, - 33,1,33,3,33,1087,8,33,1,34,1,34,3,34,1091,8,34,1,34,1,34,3,34,1095,8, - 34,1,34,5,34,1098,8,34,10,34,12,34,1101,9,34,1,35,1,35,1,35,1,35,1,35, - 1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,3,36,1118,8,36,1,36, - 1,36,1,36,5,36,1123,8,36,10,36,12,36,1126,9,36,1,37,1,37,1,37,1,37,1, - 37,1,37,1,37,1,37,1,37,1,37,3,37,1138,8,37,1,38,1,38,1,38,1,38,1,38,3, - 38,1145,8,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1, - 40,1,40,1,40,3,40,1161,8,40,1,40,1,40,3,40,1165,8,40,1,41,1,41,1,41,1, - 41,1,41,1,41,1,41,3,41,1174,8,41,1,41,1,41,1,42,1,42,1,42,1,42,3,42,1182, - 8,42,1,42,3,42,1185,8,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,3,43, - 1195,8,43,1,43,3,43,1198,8,43,1,44,1,44,1,44,1,44,1,44,1,44,3,44,1206, - 8,44,1,44,3,44,1209,8,44,1,45,1,45,1,45,1,45,3,45,1215,8,45,1,45,3,45, - 1218,8,45,1,45,1,45,1,46,1,46,3,46,1224,8,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,3,48,1239,8,48,1,48,1,48,1,49, - 1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,3,50, - 1257,8,50,1,51,1,51,1,51,1,51,1,51,3,51,1264,8,51,1,51,1,51,1,51,1,51, - 1,51,3,51,1271,8,51,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,3,53, - 1282,8,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55, - 1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,3,56,1305,8,56,1,56,1,56, - 1,57,1,57,1,57,1,57,1,57,3,57,1314,8,57,1,57,1,57,1,58,1,58,3,58,1320, - 8,58,1,58,1,58,3,58,1324,8,58,1,58,5,58,1327,8,58,10,58,12,58,1330,9, - 58,1,59,1,59,1,59,1,59,1,60,1,60,3,60,1338,8,60,1,60,1,60,3,60,1342,8, - 60,1,60,5,60,1345,8,60,10,60,12,60,1348,9,60,1,61,1,61,1,61,3,61,1353, - 8,61,1,61,1,61,1,61,1,61,3,61,1359,8,61,1,62,1,62,1,62,1,62,3,62,1365, - 8,62,1,62,1,62,3,62,1369,8,62,1,62,1,62,3,62,1373,8,62,1,62,1,62,1,63, - 1,63,3,63,1379,8,63,1,63,1,63,3,63,1383,8,63,1,63,1,63,3,63,1387,8,63, - 1,63,1,63,1,64,1,64,3,64,1393,8,64,1,64,1,64,3,64,1397,8,64,1,64,1,64, - 3,64,1401,8,64,1,64,1,64,1,65,1,65,3,65,1407,8,65,1,65,1,65,3,65,1411, - 8,65,1,65,1,65,3,65,1415,8,65,1,65,1,65,3,65,1419,8,65,1,65,1,65,3,65, - 1423,8,65,1,65,1,65,1,66,1,66,3,66,1429,8,66,1,66,1,66,3,66,1433,8,66, - 1,66,1,66,3,66,1437,8,66,1,66,1,66,3,66,1441,8,66,1,66,1,66,3,66,1445, - 8,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,3,67,1455,8,67,1,67,1,67, - 5,67,1459,8,67,10,67,12,67,1462,9,67,1,68,1,68,5,68,1466,8,68,10,68,12, - 68,1469,9,68,1,69,1,69,3,69,1473,8,69,1,69,1,69,1,70,1,70,3,70,1479,8, - 70,1,71,1,71,1,71,3,71,1484,8,71,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1, - 73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,1501,8,73,1,74,1,74,1,74,1, - 74,3,74,1507,8,74,1,75,1,75,1,75,1,75,3,75,1513,8,75,1,75,1,75,3,75,1517, - 8,75,1,76,1,76,3,76,1521,8,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,3,76, - 1530,8,76,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,79,1,79,1,80,1,80, - 3,80,1544,8,80,1,80,5,80,1547,8,80,10,80,12,80,1550,9,80,1,80,1,80,3, - 80,1554,8,80,4,80,1556,8,80,11,80,12,80,1557,1,80,1,80,1,80,3,80,1563, - 8,80,1,81,1,81,1,81,1,81,3,81,1569,8,81,1,81,1,81,1,81,3,81,1574,8,81, - 1,81,3,81,1577,8,81,1,82,1,82,3,82,1581,8,82,1,83,1,83,3,83,1585,8,83, - 5,83,1587,8,83,10,83,12,83,1590,9,83,1,83,1,83,1,83,3,83,1595,8,83,5, - 83,1597,8,83,10,83,12,83,1600,9,83,1,83,1,83,3,83,1604,8,83,1,83,5,83, - 1607,8,83,10,83,12,83,1610,9,83,1,83,3,83,1613,8,83,1,83,3,83,1616,8, - 83,3,83,1618,8,83,1,84,1,84,3,84,1622,8,84,4,84,1624,8,84,11,84,12,84, - 1625,1,84,1,84,1,85,1,85,3,85,1632,8,85,5,85,1634,8,85,10,85,12,85,1637, - 9,85,1,85,1,85,3,85,1641,8,85,5,85,1643,8,85,10,85,12,85,1646,9,85,1, - 85,1,85,1,86,1,86,1,86,1,86,3,86,1654,8,86,1,87,1,87,1,87,1,87,3,87,1660, - 8,87,1,88,1,88,1,88,1,88,1,88,1,88,3,88,1668,8,88,1,88,1,88,3,88,1672, - 8,88,1,88,1,88,3,88,1676,8,88,1,88,1,88,3,88,1680,8,88,1,88,1,88,1,88, - 1,88,1,88,3,88,1687,8,88,1,88,1,88,3,88,1691,8,88,1,88,1,88,3,88,1695, - 8,88,1,88,1,88,3,88,1699,8,88,1,88,3,88,1702,8,88,1,88,3,88,1705,8,88, - 1,89,1,89,1,89,1,89,1,89,3,89,1712,8,89,1,89,1,89,1,90,1,90,3,90,1718, - 8,90,1,90,1,90,3,90,1722,8,90,1,90,5,90,1725,8,90,10,90,12,90,1728,9, - 90,1,91,1,91,1,91,1,91,3,91,1734,8,91,1,91,3,91,1737,8,91,1,91,3,91,1740, - 8,91,1,91,1,91,1,91,3,91,1745,8,91,1,92,1,92,3,92,1749,8,92,1,92,1,92, - 3,92,1753,8,92,1,92,1,92,1,92,3,92,1758,8,92,1,92,1,92,3,92,1762,8,92, - 1,93,1,93,1,93,1,93,1,94,1,94,1,94,3,94,1771,8,94,1,94,1,94,3,94,1775, - 8,94,1,94,1,94,1,94,3,94,1780,8,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94, - 1,94,1,94,1,94,4,94,1792,8,94,11,94,12,94,1793,5,94,1796,8,94,10,94,12, - 94,1799,9,94,1,95,1,95,3,95,1803,8,95,1,95,1,95,1,95,1,95,1,95,1,95,1, - 96,1,96,3,96,1813,8,96,1,96,1,96,1,97,1,97,3,97,1819,8,97,1,97,1,97,1, - 97,5,97,1824,8,97,10,97,12,97,1827,9,97,1,98,1,98,1,98,1,98,1,98,1,98, - 1,98,1,98,1,98,1,98,3,98,1839,8,98,1,99,1,99,3,99,1843,8,99,1,99,1,99, - 3,99,1847,8,99,1,99,1,99,3,99,1851,8,99,1,99,5,99,1854,8,99,10,99,12, - 99,1857,9,99,1,99,1,99,3,99,1861,8,99,1,99,1,99,3,99,1865,8,99,1,99,1, - 99,3,99,1869,8,99,1,99,1,99,3,99,1873,8,99,1,100,1,100,3,100,1877,8,100, - 1,100,1,100,3,100,1881,8,100,1,100,1,100,1,101,1,101,3,101,1887,8,101, - 1,101,1,101,3,101,1891,8,101,1,101,1,101,3,101,1895,8,101,1,101,1,101, - 3,101,1899,8,101,1,101,5,101,1902,8,101,10,101,12,101,1905,9,101,1,102, - 1,102,1,102,3,102,1910,8,102,1,102,3,102,1913,8,102,1,103,1,103,1,103, - 1,104,3,104,1919,8,104,1,104,3,104,1922,8,104,1,104,1,104,1,104,1,104, - 3,104,1928,8,104,1,104,1,104,3,104,1932,8,104,1,104,1,104,3,104,1936, - 8,104,1,105,1,105,3,105,1940,8,105,1,105,1,105,3,105,1944,8,105,1,105, - 5,105,1947,8,105,10,105,12,105,1950,9,105,1,105,1,105,3,105,1954,8,105, - 1,105,1,105,3,105,1958,8,105,1,105,5,105,1961,8,105,10,105,12,105,1964, - 9,105,3,105,1966,8,105,1,106,1,106,1,106,1,106,1,106,1,106,1,106,3,106, - 1975,8,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1984,8,107, - 1,107,5,107,1987,8,107,10,107,12,107,1990,9,107,1,108,1,108,1,108,1,108, - 1,109,1,109,1,109,1,109,1,110,1,110,3,110,2002,8,110,1,110,3,110,2005, - 8,110,1,111,1,111,1,111,1,111,1,112,1,112,3,112,2013,8,112,1,112,1,112, - 3,112,2017,8,112,1,112,5,112,2020,8,112,10,112,12,112,2023,9,112,1,113, - 1,113,3,113,2027,8,113,1,113,1,113,3,113,2031,8,113,1,113,1,113,1,113, - 3,113,2036,8,113,1,114,1,114,1,115,1,115,3,115,2042,8,115,1,115,5,115, - 2045,8,115,10,115,12,115,2048,9,115,1,115,1,115,1,115,1,115,3,115,2054, - 8,115,1,116,1,116,3,116,2058,8,116,1,116,1,116,3,116,2062,8,116,3,116, - 2064,8,116,1,116,1,116,3,116,2068,8,116,3,116,2070,8,116,1,116,1,116, - 3,116,2074,8,116,3,116,2076,8,116,1,116,1,116,1,117,1,117,3,117,2082, - 8,117,1,117,1,117,1,118,1,118,3,118,2088,8,118,1,118,1,118,3,118,2092, - 8,118,1,118,3,118,2095,8,118,1,118,3,118,2098,8,118,1,118,1,118,1,118, - 1,118,3,118,2104,8,118,1,118,3,118,2107,8,118,1,118,3,118,2110,8,118, - 1,118,1,118,3,118,2114,8,118,1,118,1,118,1,118,1,118,3,118,2120,8,118, - 1,118,3,118,2123,8,118,1,118,3,118,2126,8,118,1,118,1,118,3,118,2130, - 8,118,1,119,1,119,3,119,2134,8,119,1,119,1,119,3,119,2138,8,119,3,119, - 2140,8,119,1,119,1,119,3,119,2144,8,119,3,119,2146,8,119,1,119,1,119, - 3,119,2150,8,119,3,119,2152,8,119,1,119,1,119,3,119,2156,8,119,3,119, - 2158,8,119,1,119,1,119,1,120,1,120,3,120,2164,8,120,1,120,1,120,3,120, - 2168,8,120,1,120,1,120,3,120,2172,8,120,1,120,1,120,3,120,2176,8,120, - 1,120,1,120,3,120,2180,8,120,1,120,1,120,3,120,2184,8,120,1,120,1,120, - 3,120,2188,8,120,1,120,1,120,3,120,2192,8,120,5,120,2194,8,120,10,120, - 12,120,2197,9,120,3,120,2199,8,120,1,120,1,120,1,121,1,121,3,121,2205, - 8,121,1,121,1,121,3,121,2209,8,121,1,121,1,121,3,121,2213,8,121,1,121, - 3,121,2216,8,121,1,121,5,121,2219,8,121,10,121,12,121,2222,9,121,1,122, - 1,122,3,122,2226,8,122,1,122,1,122,3,122,2230,8,122,1,122,1,122,3,122, - 2234,8,122,1,122,3,122,2237,8,122,1,122,3,122,2240,8,122,1,122,5,122, - 2243,8,122,10,122,12,122,2246,9,122,1,123,1,123,3,123,2250,8,123,1,123, - 3,123,2253,8,123,1,123,3,123,2256,8,123,1,123,3,123,2259,8,123,1,123, - 3,123,2262,8,123,1,123,3,123,2265,8,123,1,124,1,124,3,124,2269,8,124, - 1,124,1,124,3,124,2273,8,124,1,124,1,124,3,124,2277,8,124,1,124,1,124, - 3,124,2281,8,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,3,124, - 2291,8,124,1,125,3,125,2294,8,125,1,125,3,125,2297,8,125,1,125,1,125, - 3,125,2301,8,125,1,125,3,125,2304,8,125,1,125,3,125,2307,8,125,1,126, - 1,126,3,126,2311,8,126,1,126,1,126,3,126,2315,8,126,1,126,1,126,3,126, - 2319,8,126,1,126,1,126,3,126,2323,8,126,1,126,1,126,3,126,2327,8,126, - 1,126,1,126,3,126,2331,8,126,3,126,2333,8,126,1,126,3,126,2336,8,126, - 1,126,1,126,3,126,2340,8,126,1,126,1,126,3,126,2344,8,126,1,126,1,126, - 3,126,2348,8,126,1,126,1,126,3,126,2352,8,126,3,126,2354,8,126,1,126, - 1,126,1,127,1,127,3,127,2360,8,127,1,127,3,127,2363,8,127,1,127,3,127, - 2366,8,127,1,127,1,127,1,128,1,128,1,129,1,129,1,130,1,130,1,130,3,130, - 2377,8,130,1,131,1,131,1,132,1,132,1,133,1,133,1,133,1,133,1,133,5,133, - 2388,8,133,10,133,12,133,2391,9,133,1,134,1,134,1,134,1,134,1,134,5,134, - 2398,8,134,10,134,12,134,2401,9,134,1,135,1,135,1,135,1,135,1,135,5,135, - 2408,8,135,10,135,12,135,2411,9,135,1,136,1,136,3,136,2415,8,136,5,136, - 2417,8,136,10,136,12,136,2420,9,136,1,136,1,136,1,137,1,137,3,137,2426, - 8,137,1,137,1,137,3,137,2430,8,137,1,137,1,137,3,137,2434,8,137,1,137, - 1,137,3,137,2438,8,137,1,137,1,137,3,137,2442,8,137,1,137,1,137,1,137, - 1,137,1,137,1,137,3,137,2450,8,137,1,137,1,137,3,137,2454,8,137,1,137, - 1,137,3,137,2458,8,137,1,137,1,137,3,137,2462,8,137,1,137,1,137,4,137, - 2466,8,137,11,137,12,137,2467,1,137,1,137,3,137,2472,8,137,1,138,1,138, - 1,139,1,139,3,139,2478,8,139,1,139,1,139,3,139,2482,8,139,1,139,5,139, - 2485,8,139,10,139,12,139,2488,9,139,1,140,1,140,3,140,2492,8,140,1,140, - 1,140,3,140,2496,8,140,1,140,5,140,2499,8,140,10,140,12,140,2502,9,140, - 1,141,1,141,3,141,2506,8,141,1,141,1,141,3,141,2510,8,141,1,141,1,141, - 5,141,2514,8,141,10,141,12,141,2517,9,141,1,142,1,142,1,143,1,143,3,143, - 2523,8,143,1,143,1,143,3,143,2527,8,143,1,143,1,143,5,143,2531,8,143, - 10,143,12,143,2534,9,143,1,144,1,144,1,145,1,145,3,145,2540,8,145,1,145, - 1,145,3,145,2544,8,145,1,145,1,145,5,145,2548,8,145,10,145,12,145,2551, - 9,145,1,146,1,146,1,147,1,147,3,147,2557,8,147,1,147,1,147,3,147,2561, - 8,147,1,147,5,147,2564,8,147,10,147,12,147,2567,9,147,1,148,1,148,1,148, - 4,148,2572,8,148,11,148,12,148,2573,1,148,3,148,2577,8,148,1,149,1,149, - 1,149,3,149,2582,8,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,3,149, - 2591,8,149,1,149,1,149,3,149,2595,8,149,1,149,3,149,2598,8,149,1,150, - 1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,3,150,2611, - 8,150,1,150,3,150,2614,8,150,1,150,1,150,1,151,3,151,2619,8,151,1,151, - 1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,3,152, - 2633,8,152,1,153,1,153,3,153,2637,8,153,5,153,2639,8,153,10,153,12,153, - 2642,9,153,1,153,1,153,3,153,2646,8,153,1,153,3,153,2649,8,153,1,154, - 1,154,3,154,2653,8,154,1,154,5,154,2656,8,154,10,154,12,154,2659,9,154, - 1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,3,155,2670,8,155, - 1,156,1,156,3,156,2674,8,156,1,156,1,156,3,156,2678,8,156,1,156,1,156, - 3,156,2682,8,156,1,156,1,156,1,156,1,156,3,156,2688,8,156,1,156,1,156, - 3,156,2692,8,156,1,156,1,156,3,156,2696,8,156,1,156,1,156,1,156,1,156, - 3,156,2702,8,156,1,156,1,156,3,156,2706,8,156,1,156,1,156,3,156,2710, - 8,156,1,156,1,156,1,156,1,156,3,156,2716,8,156,1,156,1,156,3,156,2720, - 8,156,1,156,1,156,3,156,2724,8,156,1,156,1,156,3,156,2728,8,156,1,157, - 1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159, - 1,159,1,159,1,159,3,159,2746,8,159,1,160,1,160,1,161,1,161,3,161,2752, - 8,161,1,161,1,161,3,161,2756,8,161,1,161,1,161,3,161,2760,8,161,5,161, - 2762,8,161,10,161,12,161,2765,9,161,3,161,2767,8,161,1,161,1,161,1,162, - 1,162,3,162,2773,8,162,1,162,3,162,2776,8,162,1,163,1,163,3,163,2780, - 8,163,1,163,1,163,3,163,2784,8,163,1,163,1,163,3,163,2788,8,163,1,163, - 1,163,3,163,2792,8,163,5,163,2794,8,163,10,163,12,163,2797,9,163,1,163, - 1,163,1,164,1,164,3,164,2803,8,164,1,164,3,164,2806,8,164,1,164,1,164, - 3,164,2810,8,164,1,164,1,164,1,165,1,165,3,165,2816,8,165,1,165,1,165, - 3,165,2820,8,165,1,165,1,165,1,166,1,166,3,166,2826,8,166,1,166,1,166, - 3,166,2830,8,166,1,166,1,166,3,166,2834,8,166,1,166,1,166,1,166,3,166, - 2839,8,166,1,166,1,166,3,166,2843,8,166,1,166,1,166,3,166,2847,8,166, - 1,166,1,166,3,166,2851,8,166,1,166,1,166,1,166,3,166,2856,8,166,1,166, - 3,166,2859,8,166,1,166,3,166,2862,8,166,1,166,1,166,1,166,1,166,3,166, - 2868,8,166,1,166,1,166,3,166,2872,8,166,1,166,1,166,3,166,2876,8,166, - 3,166,2878,8,166,1,166,1,166,3,166,2882,8,166,1,166,1,166,3,166,2886, - 8,166,1,166,1,166,3,166,2890,8,166,5,166,2892,8,166,10,166,12,166,2895, - 9,166,3,166,2897,8,166,1,166,1,166,3,166,2901,8,166,1,167,1,167,1,168, - 1,168,3,168,2907,8,168,1,168,1,168,1,168,3,168,2912,8,168,3,168,2914, - 8,168,1,168,1,168,3,168,2918,8,168,1,169,1,169,3,169,2922,8,169,1,169, - 1,169,1,169,3,169,2927,8,169,1,169,1,169,3,169,2931,8,169,1,170,1,170, - 1,170,3,170,2936,8,170,1,170,1,170,3,170,2940,8,170,1,170,1,170,3,170, - 2944,8,170,1,170,1,170,3,170,2948,8,170,5,170,2950,8,170,10,170,12,170, - 2953,9,170,1,170,1,170,3,170,2957,8,170,1,171,1,171,3,171,2961,8,171, - 1,171,4,171,2964,8,171,11,171,12,171,2965,1,172,1,172,3,172,2970,8,172, - 1,172,1,172,3,172,2974,8,172,1,172,1,172,3,172,2978,8,172,1,172,1,172, - 3,172,2982,8,172,1,172,3,172,2985,8,172,1,172,3,172,2988,8,172,1,172, - 3,172,2991,8,172,1,172,3,172,2994,8,172,1,172,1,172,1,173,1,173,3,173, - 3000,8,173,1,173,1,173,3,173,3004,8,173,1,174,1,174,3,174,3008,8,174, - 1,174,4,174,3011,8,174,11,174,12,174,3012,1,174,1,174,3,174,3017,8,174, - 1,174,1,174,3,174,3021,8,174,1,174,4,174,3024,8,174,11,174,12,174,3025, - 3,174,3028,8,174,1,174,3,174,3031,8,174,1,174,1,174,3,174,3035,8,174, - 1,174,3,174,3038,8,174,1,174,3,174,3041,8,174,1,174,1,174,1,175,1,175, - 3,175,3047,8,175,1,175,1,175,3,175,3051,8,175,1,175,1,175,3,175,3055, - 8,175,1,175,1,175,1,176,1,176,1,177,1,177,3,177,3063,8,177,1,178,1,178, - 1,178,3,178,3068,8,178,1,179,1,179,3,179,3072,8,179,1,179,1,179,1,180, - 1,180,1,181,1,181,1,182,1,182,1,183,1,183,1,183,3,183,3085,8,183,1,184, - 1,184,1,184,1,184,1,184,3,184,3092,8,184,1,185,1,185,1,186,1,186,1,187, - 1,187,1,188,1,188,1,188,0,2,134,188,189,0,2,4,6,8,10,12,14,16,18,20,22, + 7,188,2,189,7,189,1,0,1,0,3,0,383,8,0,1,0,1,0,3,0,387,8,0,1,0,5,0,390, + 8,0,10,0,12,0,393,9,0,1,0,3,0,396,8,0,1,0,1,0,1,1,3,1,401,8,1,1,1,3,1, + 404,8,1,1,1,1,1,3,1,408,8,1,1,1,3,1,411,8,1,1,2,1,2,1,2,1,2,1,2,1,2,1, + 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, + 1,2,1,2,3,2,439,8,2,1,3,1,3,1,3,1,3,3,3,445,8,3,1,3,1,3,1,3,1,3,1,3,3, + 3,452,8,3,1,3,1,3,3,3,456,8,3,1,3,1,3,3,3,460,8,3,1,3,1,3,3,3,464,8,3, + 1,4,3,4,467,8,4,1,4,1,4,3,4,471,8,4,1,4,1,4,3,4,475,8,4,1,4,1,4,3,4,479, + 8,4,1,4,5,4,482,8,4,10,4,12,4,485,9,4,1,4,3,4,488,8,4,3,4,490,8,4,1,4, + 1,4,1,5,1,5,1,5,3,5,497,8,5,1,5,1,5,3,5,501,8,5,1,5,1,5,1,5,1,5,1,5,1, + 5,1,5,3,5,510,8,5,1,5,1,5,1,5,3,5,515,8,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6, + 1,6,3,6,525,8,6,1,6,1,6,3,6,529,8,6,1,6,1,6,3,6,533,8,6,1,6,5,6,536,8, + 6,10,6,12,6,539,9,6,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,3,7,551,8, + 7,1,7,1,7,3,7,555,8,7,1,7,1,7,1,7,1,7,1,7,1,7,3,7,563,8,7,1,7,1,7,3,7, + 567,8,7,1,7,1,7,3,7,571,8,7,1,7,1,7,3,7,575,8,7,1,8,1,8,1,8,1,8,1,8,1, + 8,3,8,583,8,8,1,8,1,8,3,8,587,8,8,1,8,1,8,3,8,591,8,8,1,8,1,8,3,8,595, + 8,8,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,610, + 8,10,1,10,1,10,1,10,3,10,615,8,10,1,10,1,10,1,10,1,10,3,10,621,8,10,1, + 10,1,10,3,10,625,8,10,1,10,3,10,628,8,10,1,10,3,10,631,8,10,1,10,1,10, + 1,11,1,11,3,11,637,8,11,1,11,1,11,3,11,641,8,11,1,11,5,11,644,8,11,10, + 11,12,11,647,9,11,3,11,649,8,11,1,11,1,11,3,11,653,8,11,1,11,3,11,656, + 8,11,1,11,3,11,659,8,11,1,12,1,12,3,12,663,8,12,1,12,1,12,3,12,667,8, + 12,1,12,1,12,1,13,1,13,3,13,673,8,13,1,13,1,13,3,13,677,8,13,1,13,5,13, + 680,8,13,10,13,12,13,683,9,13,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15, + 1,16,1,16,1,16,1,16,1,16,1,16,1,16,3,16,700,8,16,1,17,1,17,1,17,1,17, + 1,17,1,17,1,18,1,18,1,18,3,18,711,8,18,1,19,1,19,1,19,1,19,3,19,717,8, + 19,1,19,1,19,3,19,721,8,19,1,19,1,19,1,19,1,19,1,19,3,19,728,8,19,1,20, + 1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21, + 1,21,1,21,1,21,3,21,748,8,21,1,21,1,21,3,21,752,8,21,1,21,3,21,755,8, + 21,1,21,3,21,758,8,21,1,21,3,21,761,8,21,1,21,3,21,764,8,21,1,21,1,21, + 3,21,768,8,21,1,21,5,21,771,8,21,10,21,12,21,774,9,21,1,21,3,21,777,8, + 21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,3,22,787,8,22,1,22,1,22,3, + 22,791,8,22,1,22,5,22,794,8,22,10,22,12,22,797,9,22,1,23,1,23,3,23,801, + 8,23,1,23,1,23,1,23,3,23,806,8,23,1,23,1,23,1,24,1,24,3,24,812,8,24,1, + 24,1,24,3,24,816,8,24,1,24,1,24,3,24,820,8,24,1,24,5,24,823,8,24,10,24, + 12,24,826,9,24,1,24,1,24,1,24,1,24,3,24,832,8,24,1,24,1,24,3,24,836,8, + 24,1,24,1,24,3,24,840,8,24,1,24,3,24,843,8,24,1,25,1,25,1,25,1,25,1,25, + 1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,3,26,860,8,26,1,26, + 1,26,3,26,864,8,26,1,26,1,26,3,26,868,8,26,1,26,1,26,3,26,872,8,26,1, + 26,1,26,3,26,876,8,26,1,26,3,26,879,8,26,1,26,3,26,882,8,26,1,26,1,26, + 1,26,1,26,1,26,1,26,3,26,890,8,26,1,26,1,26,1,26,3,26,895,8,26,1,26,1, + 26,3,26,899,8,26,1,26,1,26,3,26,903,8,26,1,26,1,26,3,26,907,8,26,1,27, + 1,27,1,27,1,27,1,27,1,27,1,27,3,27,916,8,27,1,27,1,27,3,27,920,8,27,1, + 27,1,27,1,27,3,27,925,8,27,1,27,1,27,3,27,929,8,27,1,27,1,27,3,27,933, + 8,27,1,27,1,27,3,27,937,8,27,1,27,1,27,3,27,941,8,27,3,27,943,8,27,1, + 27,1,27,3,27,947,8,27,1,27,1,27,3,27,951,8,27,3,27,953,8,27,1,27,1,27, + 1,27,1,27,1,27,1,27,3,27,961,8,27,1,27,1,27,1,27,3,27,966,8,27,1,27,1, + 27,3,27,970,8,27,1,27,1,27,3,27,974,8,27,1,27,1,27,3,27,978,8,27,1,28, + 1,28,1,28,3,28,983,8,28,1,28,1,28,1,28,1,28,3,28,989,8,28,1,28,1,28,3, + 28,993,8,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,3, + 28,1006,8,28,1,28,1,28,3,28,1010,8,28,1,28,3,28,1013,8,28,1,28,3,28,1016, + 8,28,1,28,3,28,1019,8,28,1,29,1,29,3,29,1023,8,29,1,30,1,30,3,30,1027, + 8,30,1,30,3,30,1030,8,30,1,30,3,30,1033,8,30,1,30,1,30,3,30,1037,8,30, + 1,30,1,30,3,30,1041,8,30,1,30,1,30,1,31,1,31,3,31,1047,8,31,1,31,1,31, + 3,31,1051,8,31,1,31,1,31,3,31,1055,8,31,1,31,1,31,3,31,1059,8,31,1,31, + 1,31,1,32,1,32,3,32,1065,8,32,1,32,1,32,3,32,1069,8,32,1,32,1,32,3,32, + 1073,8,32,1,32,1,32,3,32,1077,8,32,1,32,1,32,1,33,1,33,3,33,1083,8,33, + 1,33,1,33,3,33,1087,8,33,1,33,5,33,1090,8,33,10,33,12,33,1093,9,33,1, + 34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,3,34,1104,8,34,1,35,1,35,3, + 35,1108,8,35,1,35,1,35,3,35,1112,8,35,1,35,5,35,1115,8,35,10,35,12,35, + 1118,9,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37, + 1,37,1,37,1,37,3,37,1135,8,37,1,37,1,37,1,37,5,37,1140,8,37,10,37,12, + 37,1143,9,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,1155, + 8,38,1,39,1,39,1,39,1,39,1,39,3,39,1162,8,39,1,40,1,40,1,40,1,40,1,40, + 1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,3,41,1178,8,41,1,41,1,41, + 3,41,1182,8,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,3,42,1191,8,42,1,42, + 1,42,1,43,1,43,1,43,1,43,3,43,1199,8,43,1,43,3,43,1202,8,43,1,43,1,43, + 1,44,1,44,1,44,1,44,1,44,1,44,3,44,1212,8,44,1,44,3,44,1215,8,44,1,45, + 1,45,1,45,1,45,1,45,1,45,3,45,1223,8,45,1,45,3,45,1226,8,45,1,46,1,46, + 1,46,1,46,3,46,1232,8,46,1,46,3,46,1235,8,46,1,46,1,46,1,47,1,47,3,47, + 1241,8,47,1,47,1,47,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49, + 1,49,3,49,1256,8,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50, + 1,51,1,51,1,51,1,51,1,51,1,51,3,51,1274,8,51,1,52,1,52,1,52,1,52,1,52, + 3,52,1281,8,52,1,52,1,52,1,52,1,52,1,52,3,52,1288,8,52,1,53,1,53,1,53, + 1,53,1,54,1,54,1,54,1,54,1,54,3,54,1299,8,54,1,54,1,54,1,55,1,55,1,55, + 1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57, + 1,57,1,57,3,57,1322,8,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,3,58,1331, + 8,58,1,58,1,58,1,59,1,59,3,59,1337,8,59,1,59,1,59,3,59,1341,8,59,1,59, + 5,59,1344,8,59,10,59,12,59,1347,9,59,1,60,1,60,1,60,1,60,1,61,1,61,3, + 61,1355,8,61,1,61,1,61,3,61,1359,8,61,1,61,5,61,1362,8,61,10,61,12,61, + 1365,9,61,1,62,1,62,1,62,3,62,1370,8,62,1,62,1,62,1,62,1,62,3,62,1376, + 8,62,1,63,1,63,1,63,1,63,3,63,1382,8,63,1,63,1,63,3,63,1386,8,63,1,63, + 1,63,3,63,1390,8,63,1,63,1,63,1,64,1,64,3,64,1396,8,64,1,64,1,64,3,64, + 1400,8,64,1,64,1,64,3,64,1404,8,64,1,64,1,64,1,65,1,65,3,65,1410,8,65, + 1,65,1,65,3,65,1414,8,65,1,65,1,65,3,65,1418,8,65,1,65,1,65,1,66,1,66, + 3,66,1424,8,66,1,66,1,66,3,66,1428,8,66,1,66,1,66,3,66,1432,8,66,1,66, + 1,66,3,66,1436,8,66,1,66,1,66,3,66,1440,8,66,1,66,1,66,1,67,1,67,3,67, + 1446,8,67,1,67,1,67,3,67,1450,8,67,1,67,1,67,3,67,1454,8,67,1,67,1,67, + 3,67,1458,8,67,1,67,1,67,3,67,1462,8,67,1,67,1,67,1,68,1,68,1,68,1,68, + 1,68,1,68,3,68,1472,8,68,1,68,1,68,5,68,1476,8,68,10,68,12,68,1479,9, + 68,1,69,1,69,5,69,1483,8,69,10,69,12,69,1486,9,69,1,70,1,70,3,70,1490, + 8,70,1,70,1,70,1,71,1,71,3,71,1496,8,71,1,72,1,72,1,72,3,72,1501,8,72, + 1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74, + 1,74,3,74,1518,8,74,1,75,1,75,1,75,1,75,3,75,1524,8,75,1,76,1,76,1,76, + 1,76,3,76,1530,8,76,1,76,1,76,3,76,1534,8,76,1,77,1,77,3,77,1538,8,77, + 1,77,1,77,1,77,1,77,1,77,1,77,1,77,3,77,1547,8,77,1,78,1,78,1,78,1,78, + 1,79,1,79,1,79,1,79,1,80,1,80,1,81,1,81,3,81,1561,8,81,1,81,5,81,1564, + 8,81,10,81,12,81,1567,9,81,1,81,1,81,3,81,1571,8,81,4,81,1573,8,81,11, + 81,12,81,1574,1,81,1,81,1,81,3,81,1580,8,81,1,82,1,82,1,82,1,82,3,82, + 1586,8,82,1,82,1,82,1,82,3,82,1591,8,82,1,82,3,82,1594,8,82,1,83,1,83, + 3,83,1598,8,83,1,84,1,84,3,84,1602,8,84,5,84,1604,8,84,10,84,12,84,1607, + 9,84,1,84,1,84,1,84,3,84,1612,8,84,5,84,1614,8,84,10,84,12,84,1617,9, + 84,1,84,1,84,3,84,1621,8,84,1,84,5,84,1624,8,84,10,84,12,84,1627,9,84, + 1,84,3,84,1630,8,84,1,84,3,84,1633,8,84,3,84,1635,8,84,1,85,1,85,3,85, + 1639,8,85,4,85,1641,8,85,11,85,12,85,1642,1,85,1,85,1,86,1,86,3,86,1649, + 8,86,5,86,1651,8,86,10,86,12,86,1654,9,86,1,86,1,86,3,86,1658,8,86,5, + 86,1660,8,86,10,86,12,86,1663,9,86,1,86,1,86,1,87,1,87,1,87,1,87,3,87, + 1671,8,87,1,88,1,88,1,88,1,88,3,88,1677,8,88,1,89,1,89,1,89,1,89,1,89, + 1,89,3,89,1685,8,89,1,89,1,89,3,89,1689,8,89,1,89,1,89,3,89,1693,8,89, + 1,89,1,89,3,89,1697,8,89,1,89,1,89,1,89,1,89,1,89,3,89,1704,8,89,1,89, + 1,89,3,89,1708,8,89,1,89,1,89,3,89,1712,8,89,1,89,1,89,3,89,1716,8,89, + 1,89,3,89,1719,8,89,1,89,3,89,1722,8,89,1,90,1,90,1,90,1,90,1,90,3,90, + 1729,8,90,1,90,1,90,1,91,1,91,3,91,1735,8,91,1,91,1,91,3,91,1739,8,91, + 1,91,5,91,1742,8,91,10,91,12,91,1745,9,91,1,92,1,92,1,92,1,92,3,92,1751, + 8,92,1,92,3,92,1754,8,92,1,92,3,92,1757,8,92,1,92,1,92,1,92,3,92,1762, + 8,92,1,93,1,93,3,93,1766,8,93,1,93,1,93,3,93,1770,8,93,1,93,1,93,1,93, + 3,93,1775,8,93,1,93,1,93,3,93,1779,8,93,1,94,1,94,1,94,1,94,1,95,1,95, + 1,95,3,95,1788,8,95,1,95,1,95,3,95,1792,8,95,1,95,1,95,1,95,3,95,1797, + 8,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,4,95,1809,8,95, + 11,95,12,95,1810,5,95,1813,8,95,10,95,12,95,1816,9,95,1,96,1,96,3,96, + 1820,8,96,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,3,97,1830,8,97,1,97, + 1,97,1,98,1,98,3,98,1836,8,98,1,98,1,98,1,98,5,98,1841,8,98,10,98,12, + 98,1844,9,98,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,3,99,1856, + 8,99,1,100,1,100,3,100,1860,8,100,1,100,1,100,3,100,1864,8,100,1,100, + 1,100,3,100,1868,8,100,1,100,5,100,1871,8,100,10,100,12,100,1874,9,100, + 1,100,1,100,3,100,1878,8,100,1,100,1,100,3,100,1882,8,100,1,100,1,100, + 3,100,1886,8,100,1,100,1,100,3,100,1890,8,100,1,101,1,101,3,101,1894, + 8,101,1,101,1,101,3,101,1898,8,101,1,101,1,101,1,102,1,102,3,102,1904, + 8,102,1,102,1,102,3,102,1908,8,102,1,102,1,102,3,102,1912,8,102,1,102, + 1,102,3,102,1916,8,102,1,102,5,102,1919,8,102,10,102,12,102,1922,9,102, + 1,103,1,103,1,103,3,103,1927,8,103,1,103,3,103,1930,8,103,1,104,1,104, + 1,104,1,105,3,105,1936,8,105,1,105,3,105,1939,8,105,1,105,1,105,1,105, + 1,105,3,105,1945,8,105,1,105,1,105,3,105,1949,8,105,1,105,1,105,3,105, + 1953,8,105,1,106,1,106,3,106,1957,8,106,1,106,1,106,3,106,1961,8,106, + 1,106,5,106,1964,8,106,10,106,12,106,1967,9,106,1,106,1,106,3,106,1971, + 8,106,1,106,1,106,3,106,1975,8,106,1,106,5,106,1978,8,106,10,106,12,106, + 1981,9,106,3,106,1983,8,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107, + 3,107,1992,8,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,3,108,2001, + 8,108,1,108,5,108,2004,8,108,10,108,12,108,2007,9,108,1,109,1,109,1,109, + 1,109,1,110,1,110,1,110,1,110,1,111,1,111,3,111,2019,8,111,1,111,3,111, + 2022,8,111,1,112,1,112,1,112,1,112,1,113,1,113,3,113,2030,8,113,1,113, + 1,113,3,113,2034,8,113,1,113,5,113,2037,8,113,10,113,12,113,2040,9,113, + 1,114,1,114,3,114,2044,8,114,1,114,1,114,3,114,2048,8,114,1,114,1,114, + 1,114,3,114,2053,8,114,1,115,1,115,1,116,1,116,3,116,2059,8,116,1,116, + 5,116,2062,8,116,10,116,12,116,2065,9,116,1,116,1,116,1,116,1,116,3,116, + 2071,8,116,1,117,1,117,3,117,2075,8,117,1,117,1,117,3,117,2079,8,117, + 3,117,2081,8,117,1,117,1,117,3,117,2085,8,117,3,117,2087,8,117,1,117, + 1,117,3,117,2091,8,117,3,117,2093,8,117,1,117,1,117,1,118,1,118,3,118, + 2099,8,118,1,118,1,118,1,119,1,119,3,119,2105,8,119,1,119,1,119,3,119, + 2109,8,119,1,119,3,119,2112,8,119,1,119,3,119,2115,8,119,1,119,1,119, + 1,119,1,119,3,119,2121,8,119,1,119,3,119,2124,8,119,1,119,3,119,2127, + 8,119,1,119,1,119,3,119,2131,8,119,1,119,1,119,1,119,1,119,3,119,2137, + 8,119,1,119,3,119,2140,8,119,1,119,3,119,2143,8,119,1,119,1,119,3,119, + 2147,8,119,1,120,1,120,3,120,2151,8,120,1,120,1,120,3,120,2155,8,120, + 3,120,2157,8,120,1,120,1,120,3,120,2161,8,120,3,120,2163,8,120,1,120, + 1,120,3,120,2167,8,120,3,120,2169,8,120,1,120,1,120,3,120,2173,8,120, + 3,120,2175,8,120,1,120,1,120,1,121,1,121,3,121,2181,8,121,1,121,1,121, + 3,121,2185,8,121,1,121,1,121,3,121,2189,8,121,1,121,1,121,3,121,2193, + 8,121,1,121,1,121,3,121,2197,8,121,1,121,1,121,3,121,2201,8,121,1,121, + 1,121,3,121,2205,8,121,1,121,1,121,3,121,2209,8,121,5,121,2211,8,121, + 10,121,12,121,2214,9,121,3,121,2216,8,121,1,121,1,121,1,122,1,122,3,122, + 2222,8,122,1,122,1,122,3,122,2226,8,122,1,122,1,122,3,122,2230,8,122, + 1,122,3,122,2233,8,122,1,122,5,122,2236,8,122,10,122,12,122,2239,9,122, + 1,123,1,123,3,123,2243,8,123,1,123,1,123,3,123,2247,8,123,1,123,1,123, + 3,123,2251,8,123,1,123,3,123,2254,8,123,1,123,3,123,2257,8,123,1,123, + 5,123,2260,8,123,10,123,12,123,2263,9,123,1,124,1,124,3,124,2267,8,124, + 1,124,3,124,2270,8,124,1,124,3,124,2273,8,124,1,124,3,124,2276,8,124, + 1,124,3,124,2279,8,124,1,124,3,124,2282,8,124,1,125,1,125,3,125,2286, + 8,125,1,125,1,125,3,125,2290,8,125,1,125,1,125,3,125,2294,8,125,1,125, + 1,125,3,125,2298,8,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125, + 3,125,2308,8,125,1,126,3,126,2311,8,126,1,126,3,126,2314,8,126,1,126, + 1,126,3,126,2318,8,126,1,126,3,126,2321,8,126,1,126,3,126,2324,8,126, + 1,127,1,127,3,127,2328,8,127,1,127,1,127,3,127,2332,8,127,1,127,1,127, + 3,127,2336,8,127,1,127,1,127,3,127,2340,8,127,1,127,1,127,3,127,2344, + 8,127,1,127,1,127,3,127,2348,8,127,3,127,2350,8,127,1,127,3,127,2353, + 8,127,1,127,1,127,3,127,2357,8,127,1,127,1,127,3,127,2361,8,127,1,127, + 1,127,3,127,2365,8,127,1,127,1,127,3,127,2369,8,127,3,127,2371,8,127, + 1,127,1,127,1,128,1,128,3,128,2377,8,128,1,128,3,128,2380,8,128,1,128, + 3,128,2383,8,128,1,128,1,128,1,129,1,129,1,130,1,130,1,131,1,131,1,131, + 3,131,2394,8,131,1,132,1,132,1,133,1,133,1,134,1,134,1,134,1,134,1,134, + 5,134,2405,8,134,10,134,12,134,2408,9,134,1,135,1,135,1,135,1,135,1,135, + 5,135,2415,8,135,10,135,12,135,2418,9,135,1,136,1,136,1,136,1,136,1,136, + 5,136,2425,8,136,10,136,12,136,2428,9,136,1,137,1,137,3,137,2432,8,137, + 5,137,2434,8,137,10,137,12,137,2437,9,137,1,137,1,137,1,138,1,138,3,138, + 2443,8,138,1,138,1,138,3,138,2447,8,138,1,138,1,138,3,138,2451,8,138, + 1,138,1,138,3,138,2455,8,138,1,138,1,138,3,138,2459,8,138,1,138,1,138, + 1,138,1,138,1,138,1,138,3,138,2467,8,138,1,138,1,138,3,138,2471,8,138, + 1,138,1,138,3,138,2475,8,138,1,138,1,138,3,138,2479,8,138,1,138,1,138, + 4,138,2483,8,138,11,138,12,138,2484,1,138,1,138,3,138,2489,8,138,1,139, + 1,139,1,140,1,140,3,140,2495,8,140,1,140,1,140,3,140,2499,8,140,1,140, + 5,140,2502,8,140,10,140,12,140,2505,9,140,1,141,1,141,3,141,2509,8,141, + 1,141,1,141,3,141,2513,8,141,1,141,5,141,2516,8,141,10,141,12,141,2519, + 9,141,1,142,1,142,3,142,2523,8,142,1,142,1,142,3,142,2527,8,142,1,142, + 1,142,5,142,2531,8,142,10,142,12,142,2534,9,142,1,143,1,143,1,144,1,144, + 3,144,2540,8,144,1,144,1,144,3,144,2544,8,144,1,144,1,144,5,144,2548, + 8,144,10,144,12,144,2551,9,144,1,145,1,145,1,146,1,146,3,146,2557,8,146, + 1,146,1,146,3,146,2561,8,146,1,146,1,146,5,146,2565,8,146,10,146,12,146, + 2568,9,146,1,147,1,147,1,148,1,148,3,148,2574,8,148,1,148,1,148,3,148, + 2578,8,148,1,148,5,148,2581,8,148,10,148,12,148,2584,9,148,1,149,1,149, + 1,149,4,149,2589,8,149,11,149,12,149,2590,1,149,3,149,2594,8,149,1,150, + 1,150,1,150,3,150,2599,8,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150, + 3,150,2608,8,150,1,150,1,150,3,150,2612,8,150,1,150,3,150,2615,8,150, + 1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,3,151, + 2628,8,151,1,151,3,151,2631,8,151,1,151,1,151,1,152,3,152,2636,8,152, + 1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153, + 3,153,2650,8,153,1,154,1,154,3,154,2654,8,154,5,154,2656,8,154,10,154, + 12,154,2659,9,154,1,154,1,154,3,154,2663,8,154,1,154,3,154,2666,8,154, + 1,155,1,155,3,155,2670,8,155,1,155,5,155,2673,8,155,10,155,12,155,2676, + 9,155,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,3,156,2687, + 8,156,1,157,1,157,3,157,2691,8,157,1,157,1,157,3,157,2695,8,157,1,157, + 1,157,3,157,2699,8,157,1,157,1,157,1,157,1,157,3,157,2705,8,157,1,157, + 1,157,3,157,2709,8,157,1,157,1,157,3,157,2713,8,157,1,157,1,157,1,157, + 1,157,3,157,2719,8,157,1,157,1,157,3,157,2723,8,157,1,157,1,157,3,157, + 2727,8,157,1,157,1,157,1,157,1,157,3,157,2733,8,157,1,157,1,157,3,157, + 2737,8,157,1,157,1,157,3,157,2741,8,157,1,157,1,157,3,157,2745,8,157, + 1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160, + 1,160,1,160,1,160,1,160,3,160,2763,8,160,1,161,1,161,1,162,1,162,3,162, + 2769,8,162,1,162,1,162,3,162,2773,8,162,1,162,1,162,3,162,2777,8,162, + 5,162,2779,8,162,10,162,12,162,2782,9,162,3,162,2784,8,162,1,162,1,162, + 1,163,1,163,3,163,2790,8,163,1,163,3,163,2793,8,163,1,164,1,164,3,164, + 2797,8,164,1,164,1,164,3,164,2801,8,164,1,164,1,164,3,164,2805,8,164, + 1,164,1,164,3,164,2809,8,164,5,164,2811,8,164,10,164,12,164,2814,9,164, + 1,164,1,164,1,165,1,165,3,165,2820,8,165,1,165,3,165,2823,8,165,1,165, + 1,165,3,165,2827,8,165,1,165,1,165,1,166,1,166,3,166,2833,8,166,1,166, + 1,166,3,166,2837,8,166,1,166,1,166,1,167,1,167,3,167,2843,8,167,1,167, + 1,167,3,167,2847,8,167,1,167,1,167,3,167,2851,8,167,1,167,1,167,1,167, + 3,167,2856,8,167,1,167,1,167,3,167,2860,8,167,1,167,1,167,3,167,2864, + 8,167,1,167,1,167,3,167,2868,8,167,1,167,1,167,1,167,3,167,2873,8,167, + 1,167,3,167,2876,8,167,1,167,3,167,2879,8,167,1,167,1,167,1,167,1,167, + 3,167,2885,8,167,1,167,1,167,3,167,2889,8,167,1,167,1,167,3,167,2893, + 8,167,3,167,2895,8,167,1,167,1,167,3,167,2899,8,167,1,167,1,167,3,167, + 2903,8,167,1,167,1,167,3,167,2907,8,167,5,167,2909,8,167,10,167,12,167, + 2912,9,167,3,167,2914,8,167,1,167,1,167,3,167,2918,8,167,1,168,1,168, + 1,169,1,169,3,169,2924,8,169,1,169,1,169,1,169,3,169,2929,8,169,3,169, + 2931,8,169,1,169,1,169,3,169,2935,8,169,1,170,1,170,3,170,2939,8,170, + 1,170,1,170,1,170,3,170,2944,8,170,1,170,1,170,3,170,2948,8,170,1,171, + 1,171,1,171,3,171,2953,8,171,1,171,1,171,3,171,2957,8,171,1,171,1,171, + 3,171,2961,8,171,1,171,1,171,3,171,2965,8,171,5,171,2967,8,171,10,171, + 12,171,2970,9,171,1,171,1,171,3,171,2974,8,171,1,172,1,172,3,172,2978, + 8,172,1,172,4,172,2981,8,172,11,172,12,172,2982,1,173,1,173,3,173,2987, + 8,173,1,173,1,173,3,173,2991,8,173,1,173,1,173,3,173,2995,8,173,1,173, + 1,173,3,173,2999,8,173,1,173,3,173,3002,8,173,1,173,3,173,3005,8,173, + 1,173,3,173,3008,8,173,1,173,3,173,3011,8,173,1,173,1,173,1,174,1,174, + 3,174,3017,8,174,1,174,1,174,3,174,3021,8,174,1,175,1,175,3,175,3025, + 8,175,1,175,4,175,3028,8,175,11,175,12,175,3029,1,175,1,175,3,175,3034, + 8,175,1,175,1,175,3,175,3038,8,175,1,175,4,175,3041,8,175,11,175,12,175, + 3042,3,175,3045,8,175,1,175,3,175,3048,8,175,1,175,1,175,3,175,3052,8, + 175,1,175,3,175,3055,8,175,1,175,3,175,3058,8,175,1,175,1,175,1,176,1, + 176,3,176,3064,8,176,1,176,1,176,3,176,3068,8,176,1,176,1,176,3,176,3072, + 8,176,1,176,1,176,1,177,1,177,1,178,1,178,3,178,3080,8,178,1,179,1,179, + 1,179,3,179,3085,8,179,1,180,1,180,3,180,3089,8,180,1,180,1,180,1,181, + 1,181,1,182,1,182,1,183,1,183,1,184,1,184,1,184,3,184,3102,8,184,1,185, + 1,185,1,185,1,185,1,185,3,185,3109,8,185,1,186,1,186,1,187,1,187,1,188, + 1,188,1,189,1,189,1,189,0,2,136,190,190,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, @@ -438,961 +440,966 @@ void cypherParserInitialize() { 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,0,14,4,0,92,92,108,108,134,134,140,140,2, - 0,53,54,75,76,2,0,6,6,12,16,1,0,18,19,2,0,20,20,170,170,2,0,21,22,165, + 364,366,368,370,372,374,376,378,0,14,4,0,92,92,108,108,134,134,140,140, + 2,0,53,54,75,76,2,0,6,6,12,16,1,0,18,19,2,0,20,20,170,170,2,0,21,22,165, 165,1,0,168,169,2,0,87,87,145,145,2,0,68,68,83,83,1,0,181,182,32,0,47, 47,49,50,52,52,55,58,61,61,63,64,66,68,70,71,74,74,77,77,79,79,84,86, 88,89,92,92,96,96,98,98,100,100,102,102,104,107,109,112,114,115,127,132, 134,135,137,137,139,139,142,142,144,144,146,146,149,151,155,155,159,164, - 166,166,2,0,13,13,26,29,2,0,15,15,30,33,2,0,34,44,170,170,3515,0,378, - 1,0,0,0,2,398,1,0,0,0,4,436,1,0,0,0,6,438,1,0,0,0,8,464,1,0,0,0,10,512, - 1,0,0,0,12,514,1,0,0,0,14,544,1,0,0,0,16,574,1,0,0,0,18,594,1,0,0,0,20, - 600,1,0,0,0,22,651,1,0,0,0,24,653,1,0,0,0,26,667,1,0,0,0,28,671,1,0,0, - 0,30,675,1,0,0,0,32,684,1,0,0,0,34,690,1,0,0,0,36,710,1,0,0,0,38,712, - 1,0,0,0,40,724,1,0,0,0,42,767,1,0,0,0,44,781,1,0,0,0,46,825,1,0,0,0,48, - 827,1,0,0,0,50,833,1,0,0,0,52,891,1,0,0,0,54,962,1,0,0,0,56,1005,1,0, - 0,0,58,1007,1,0,0,0,60,1027,1,0,0,0,62,1045,1,0,0,0,64,1063,1,0,0,0,66, - 1077,1,0,0,0,68,1088,1,0,0,0,70,1102,1,0,0,0,72,1110,1,0,0,0,74,1127, - 1,0,0,0,76,1144,1,0,0,0,78,1146,1,0,0,0,80,1153,1,0,0,0,82,1166,1,0,0, - 0,84,1177,1,0,0,0,86,1197,1,0,0,0,88,1208,1,0,0,0,90,1210,1,0,0,0,92, - 1223,1,0,0,0,94,1227,1,0,0,0,96,1231,1,0,0,0,98,1242,1,0,0,0,100,1256, - 1,0,0,0,102,1258,1,0,0,0,104,1272,1,0,0,0,106,1276,1,0,0,0,108,1285,1, - 0,0,0,110,1291,1,0,0,0,112,1299,1,0,0,0,114,1308,1,0,0,0,116,1317,1,0, - 0,0,118,1331,1,0,0,0,120,1335,1,0,0,0,122,1349,1,0,0,0,124,1360,1,0,0, - 0,126,1376,1,0,0,0,128,1390,1,0,0,0,130,1404,1,0,0,0,132,1426,1,0,0,0, - 134,1454,1,0,0,0,136,1463,1,0,0,0,138,1470,1,0,0,0,140,1478,1,0,0,0,142, - 1480,1,0,0,0,144,1485,1,0,0,0,146,1500,1,0,0,0,148,1506,1,0,0,0,150,1508, - 1,0,0,0,152,1520,1,0,0,0,154,1531,1,0,0,0,156,1535,1,0,0,0,158,1539,1, - 0,0,0,160,1562,1,0,0,0,162,1576,1,0,0,0,164,1580,1,0,0,0,166,1617,1,0, - 0,0,168,1623,1,0,0,0,170,1635,1,0,0,0,172,1653,1,0,0,0,174,1659,1,0,0, - 0,176,1661,1,0,0,0,178,1711,1,0,0,0,180,1715,1,0,0,0,182,1729,1,0,0,0, - 184,1748,1,0,0,0,186,1763,1,0,0,0,188,1779,1,0,0,0,190,1800,1,0,0,0,192, - 1810,1,0,0,0,194,1816,1,0,0,0,196,1838,1,0,0,0,198,1872,1,0,0,0,200,1874, - 1,0,0,0,202,1886,1,0,0,0,204,1906,1,0,0,0,206,1914,1,0,0,0,208,1921,1, - 0,0,0,210,1965,1,0,0,0,212,1974,1,0,0,0,214,1976,1,0,0,0,216,1991,1,0, - 0,0,218,1995,1,0,0,0,220,1999,1,0,0,0,222,2006,1,0,0,0,224,2010,1,0,0, - 0,226,2035,1,0,0,0,228,2037,1,0,0,0,230,2053,1,0,0,0,232,2055,1,0,0,0, - 234,2079,1,0,0,0,236,2129,1,0,0,0,238,2131,1,0,0,0,240,2161,1,0,0,0,242, - 2202,1,0,0,0,244,2223,1,0,0,0,246,2247,1,0,0,0,248,2290,1,0,0,0,250,2306, - 1,0,0,0,252,2308,1,0,0,0,254,2357,1,0,0,0,256,2369,1,0,0,0,258,2371,1, - 0,0,0,260,2373,1,0,0,0,262,2378,1,0,0,0,264,2380,1,0,0,0,266,2382,1,0, - 0,0,268,2392,1,0,0,0,270,2402,1,0,0,0,272,2418,1,0,0,0,274,2471,1,0,0, - 0,276,2473,1,0,0,0,278,2475,1,0,0,0,280,2489,1,0,0,0,282,2503,1,0,0,0, - 284,2518,1,0,0,0,286,2520,1,0,0,0,288,2535,1,0,0,0,290,2537,1,0,0,0,292, - 2552,1,0,0,0,294,2554,1,0,0,0,296,2568,1,0,0,0,298,2597,1,0,0,0,300,2610, - 1,0,0,0,302,2618,1,0,0,0,304,2632,1,0,0,0,306,2640,1,0,0,0,308,2650,1, - 0,0,0,310,2669,1,0,0,0,312,2727,1,0,0,0,314,2729,1,0,0,0,316,2733,1,0, - 0,0,318,2745,1,0,0,0,320,2747,1,0,0,0,322,2749,1,0,0,0,324,2770,1,0,0, - 0,326,2777,1,0,0,0,328,2802,1,0,0,0,330,2813,1,0,0,0,332,2900,1,0,0,0, - 334,2902,1,0,0,0,336,2917,1,0,0,0,338,2919,1,0,0,0,340,2956,1,0,0,0,342, - 2958,1,0,0,0,344,2967,1,0,0,0,346,2997,1,0,0,0,348,3027,1,0,0,0,350,3044, - 1,0,0,0,352,3058,1,0,0,0,354,3062,1,0,0,0,356,3064,1,0,0,0,358,3069,1, - 0,0,0,360,3075,1,0,0,0,362,3077,1,0,0,0,364,3079,1,0,0,0,366,3081,1,0, - 0,0,368,3091,1,0,0,0,370,3093,1,0,0,0,372,3095,1,0,0,0,374,3097,1,0,0, - 0,376,3099,1,0,0,0,378,389,3,2,1,0,379,381,5,187,0,0,380,379,1,0,0,0, - 380,381,1,0,0,0,381,382,1,0,0,0,382,384,5,1,0,0,383,385,5,187,0,0,384, - 383,1,0,0,0,384,385,1,0,0,0,385,386,1,0,0,0,386,388,3,2,1,0,387,380,1, - 0,0,0,388,391,1,0,0,0,389,387,1,0,0,0,389,390,1,0,0,0,390,393,1,0,0,0, - 391,389,1,0,0,0,392,394,5,187,0,0,393,392,1,0,0,0,393,394,1,0,0,0,394, - 395,1,0,0,0,395,396,5,0,0,1,396,1,1,0,0,0,397,399,3,140,70,0,398,397, - 1,0,0,0,398,399,1,0,0,0,399,401,1,0,0,0,400,402,5,187,0,0,401,400,1,0, - 0,0,401,402,1,0,0,0,402,403,1,0,0,0,403,408,3,4,2,0,404,406,5,187,0,0, - 405,404,1,0,0,0,405,406,1,0,0,0,406,407,1,0,0,0,407,409,5,1,0,0,408,405, - 1,0,0,0,408,409,1,0,0,0,409,3,1,0,0,0,410,437,3,158,79,0,411,437,3,34, - 17,0,412,437,3,80,40,0,413,437,3,82,41,0,414,437,3,50,25,0,415,437,3, - 52,26,0,416,437,3,54,27,0,417,437,3,72,36,0,418,437,3,74,37,0,419,437, - 3,96,48,0,420,437,3,98,49,0,421,437,3,6,3,0,422,437,3,12,6,0,423,437, - 3,14,7,0,424,437,3,36,18,0,425,437,3,40,20,0,426,437,3,38,19,0,427,437, - 3,146,73,0,428,437,3,148,74,0,429,437,3,16,8,0,430,437,3,18,9,0,431,437, - 3,20,10,0,432,437,3,26,13,0,433,437,3,28,14,0,434,437,3,30,15,0,435,437, - 3,32,16,0,436,410,1,0,0,0,436,411,1,0,0,0,436,412,1,0,0,0,436,413,1,0, - 0,0,436,414,1,0,0,0,436,415,1,0,0,0,436,416,1,0,0,0,436,417,1,0,0,0,436, - 418,1,0,0,0,436,419,1,0,0,0,436,420,1,0,0,0,436,421,1,0,0,0,436,422,1, - 0,0,0,436,423,1,0,0,0,436,424,1,0,0,0,436,425,1,0,0,0,436,426,1,0,0,0, - 436,427,1,0,0,0,436,428,1,0,0,0,436,429,1,0,0,0,436,430,1,0,0,0,436,431, - 1,0,0,0,436,432,1,0,0,0,436,433,1,0,0,0,436,434,1,0,0,0,436,435,1,0,0, - 0,437,5,1,0,0,0,438,439,5,67,0,0,439,440,5,187,0,0,440,442,3,366,183, - 0,441,443,3,8,4,0,442,441,1,0,0,0,442,443,1,0,0,0,443,444,1,0,0,0,444, - 445,5,187,0,0,445,446,5,88,0,0,446,447,5,187,0,0,447,461,3,10,5,0,448, - 450,5,187,0,0,449,448,1,0,0,0,449,450,1,0,0,0,450,451,1,0,0,0,451,453, - 5,2,0,0,452,454,5,187,0,0,453,452,1,0,0,0,453,454,1,0,0,0,454,455,1,0, - 0,0,455,457,3,24,12,0,456,458,5,187,0,0,457,456,1,0,0,0,457,458,1,0,0, - 0,458,459,1,0,0,0,459,460,5,3,0,0,460,462,1,0,0,0,461,449,1,0,0,0,461, - 462,1,0,0,0,462,7,1,0,0,0,463,465,5,187,0,0,464,463,1,0,0,0,464,465,1, - 0,0,0,465,466,1,0,0,0,466,468,5,2,0,0,467,469,5,187,0,0,468,467,1,0,0, - 0,468,469,1,0,0,0,469,487,1,0,0,0,470,481,3,366,183,0,471,473,5,187,0, - 0,472,471,1,0,0,0,472,473,1,0,0,0,473,474,1,0,0,0,474,476,5,4,0,0,475, - 477,5,187,0,0,476,475,1,0,0,0,476,477,1,0,0,0,477,478,1,0,0,0,478,480, - 3,366,183,0,479,472,1,0,0,0,480,483,1,0,0,0,481,479,1,0,0,0,481,482,1, - 0,0,0,482,485,1,0,0,0,483,481,1,0,0,0,484,486,5,187,0,0,485,484,1,0,0, - 0,485,486,1,0,0,0,486,488,1,0,0,0,487,470,1,0,0,0,487,488,1,0,0,0,488, - 489,1,0,0,0,489,490,5,3,0,0,490,9,1,0,0,0,491,513,3,46,23,0,492,494,5, - 2,0,0,493,495,5,187,0,0,494,493,1,0,0,0,494,495,1,0,0,0,495,496,1,0,0, - 0,496,498,3,158,79,0,497,499,5,187,0,0,498,497,1,0,0,0,498,499,1,0,0, - 0,499,500,1,0,0,0,500,501,5,3,0,0,501,513,1,0,0,0,502,513,3,356,178,0, - 503,513,3,352,176,0,504,505,3,352,176,0,505,507,5,5,0,0,506,508,5,187, - 0,0,507,506,1,0,0,0,507,508,1,0,0,0,508,509,1,0,0,0,509,510,3,366,183, - 0,510,513,1,0,0,0,511,513,3,332,166,0,512,491,1,0,0,0,512,492,1,0,0,0, - 512,502,1,0,0,0,512,503,1,0,0,0,512,504,1,0,0,0,512,511,1,0,0,0,513,11, - 1,0,0,0,514,515,5,67,0,0,515,516,5,187,0,0,516,517,3,366,183,0,517,518, - 5,187,0,0,518,519,5,88,0,0,519,520,5,187,0,0,520,522,5,2,0,0,521,523, - 5,187,0,0,522,521,1,0,0,0,522,523,1,0,0,0,523,524,1,0,0,0,524,535,5,172, - 0,0,525,527,5,187,0,0,526,525,1,0,0,0,526,527,1,0,0,0,527,528,1,0,0,0, - 528,530,5,4,0,0,529,531,5,187,0,0,530,529,1,0,0,0,530,531,1,0,0,0,531, - 532,1,0,0,0,532,534,5,172,0,0,533,526,1,0,0,0,534,537,1,0,0,0,535,533, - 1,0,0,0,535,536,1,0,0,0,536,538,1,0,0,0,537,535,1,0,0,0,538,539,5,3,0, - 0,539,540,5,187,0,0,540,541,5,57,0,0,541,542,5,187,0,0,542,543,5,62,0, - 0,543,13,1,0,0,0,544,545,5,67,0,0,545,546,5,187,0,0,546,548,5,2,0,0,547, - 549,5,187,0,0,548,547,1,0,0,0,548,549,1,0,0,0,549,550,1,0,0,0,550,552, - 3,158,79,0,551,553,5,187,0,0,552,551,1,0,0,0,552,553,1,0,0,0,553,554, - 1,0,0,0,554,555,5,3,0,0,555,556,5,187,0,0,556,557,5,142,0,0,557,558,5, - 187,0,0,558,572,5,172,0,0,559,561,5,187,0,0,560,559,1,0,0,0,560,561,1, - 0,0,0,561,562,1,0,0,0,562,564,5,2,0,0,563,565,5,187,0,0,564,563,1,0,0, - 0,564,565,1,0,0,0,565,566,1,0,0,0,566,568,3,24,12,0,567,569,5,187,0,0, - 568,567,1,0,0,0,568,569,1,0,0,0,569,570,1,0,0,0,570,571,5,3,0,0,571,573, - 1,0,0,0,572,560,1,0,0,0,572,573,1,0,0,0,573,15,1,0,0,0,574,575,5,85,0, - 0,575,576,5,187,0,0,576,577,5,71,0,0,577,578,5,187,0,0,578,592,5,172, - 0,0,579,581,5,187,0,0,580,579,1,0,0,0,580,581,1,0,0,0,581,582,1,0,0,0, - 582,584,5,2,0,0,583,585,5,187,0,0,584,583,1,0,0,0,584,585,1,0,0,0,585, - 586,1,0,0,0,586,588,3,24,12,0,587,589,5,187,0,0,588,587,1,0,0,0,588,589, - 1,0,0,0,589,590,1,0,0,0,590,591,5,3,0,0,591,593,1,0,0,0,592,580,1,0,0, - 0,592,593,1,0,0,0,593,17,1,0,0,0,594,595,5,96,0,0,595,596,5,187,0,0,596, - 597,5,71,0,0,597,598,5,187,0,0,598,599,5,172,0,0,599,19,1,0,0,0,600,601, - 5,55,0,0,601,602,5,187,0,0,602,607,5,172,0,0,603,604,5,187,0,0,604,605, - 5,52,0,0,605,606,5,187,0,0,606,608,3,366,183,0,607,603,1,0,0,0,607,608, - 1,0,0,0,608,609,1,0,0,0,609,610,5,187,0,0,610,612,5,2,0,0,611,613,5,187, - 0,0,612,611,1,0,0,0,612,613,1,0,0,0,613,614,1,0,0,0,614,615,5,72,0,0, - 615,616,5,187,0,0,616,625,3,368,184,0,617,619,5,187,0,0,618,617,1,0,0, - 0,618,619,1,0,0,0,619,620,1,0,0,0,620,622,5,4,0,0,621,623,5,187,0,0,622, - 621,1,0,0,0,622,623,1,0,0,0,623,624,1,0,0,0,624,626,3,24,12,0,625,618, - 1,0,0,0,625,626,1,0,0,0,626,628,1,0,0,0,627,629,5,187,0,0,628,627,1,0, - 0,0,628,629,1,0,0,0,629,630,1,0,0,0,630,631,5,3,0,0,631,21,1,0,0,0,632, - 646,3,368,184,0,633,635,5,187,0,0,634,633,1,0,0,0,634,635,1,0,0,0,635, - 636,1,0,0,0,636,638,5,6,0,0,637,639,5,187,0,0,638,637,1,0,0,0,638,639, - 1,0,0,0,639,647,1,0,0,0,640,642,5,187,0,0,641,640,1,0,0,0,642,645,1,0, - 0,0,643,641,1,0,0,0,643,644,1,0,0,0,644,647,1,0,0,0,645,643,1,0,0,0,646, - 634,1,0,0,0,646,643,1,0,0,0,647,648,1,0,0,0,648,649,3,318,159,0,649,652, - 1,0,0,0,650,652,3,368,184,0,651,632,1,0,0,0,651,650,1,0,0,0,652,23,1, - 0,0,0,653,664,3,22,11,0,654,656,5,187,0,0,655,654,1,0,0,0,655,656,1,0, - 0,0,656,657,1,0,0,0,657,659,5,4,0,0,658,660,5,187,0,0,659,658,1,0,0,0, - 659,660,1,0,0,0,660,661,1,0,0,0,661,663,3,22,11,0,662,655,1,0,0,0,663, - 666,1,0,0,0,664,662,1,0,0,0,664,665,1,0,0,0,665,25,1,0,0,0,666,664,1, - 0,0,0,667,668,5,77,0,0,668,669,5,187,0,0,669,670,3,366,183,0,670,27,1, - 0,0,0,671,672,5,151,0,0,672,673,5,187,0,0,673,674,3,366,183,0,674,29, - 1,0,0,0,675,676,5,69,0,0,676,677,5,187,0,0,677,678,5,92,0,0,678,679,5, - 187,0,0,679,682,3,366,183,0,680,681,5,187,0,0,681,683,5,46,0,0,682,680, - 1,0,0,0,682,683,1,0,0,0,683,31,1,0,0,0,684,685,5,151,0,0,685,686,5,187, - 0,0,686,687,5,92,0,0,687,688,5,187,0,0,688,689,3,366,183,0,689,33,1,0, - 0,0,690,693,5,50,0,0,691,692,5,187,0,0,692,694,3,366,183,0,693,691,1, - 0,0,0,693,694,1,0,0,0,694,35,1,0,0,0,695,696,5,58,0,0,696,697,5,187,0, - 0,697,699,3,368,184,0,698,700,5,187,0,0,699,698,1,0,0,0,699,700,1,0,0, - 0,700,701,1,0,0,0,701,703,5,6,0,0,702,704,5,187,0,0,703,702,1,0,0,0,703, - 704,1,0,0,0,704,705,1,0,0,0,705,706,3,264,132,0,706,711,1,0,0,0,707,708, - 5,58,0,0,708,709,5,187,0,0,709,711,3,332,166,0,710,695,1,0,0,0,710,707, - 1,0,0,0,711,37,1,0,0,0,712,713,5,63,0,0,713,714,5,187,0,0,714,715,5,119, - 0,0,715,716,5,187,0,0,716,717,5,140,0,0,717,718,5,187,0,0,718,719,3,366, - 183,0,719,720,5,187,0,0,720,721,5,102,0,0,721,722,5,187,0,0,722,723,5, - 172,0,0,723,39,1,0,0,0,724,725,5,69,0,0,725,726,5,187,0,0,726,727,5,108, - 0,0,727,728,5,187,0,0,728,730,3,334,167,0,729,731,5,187,0,0,730,729,1, - 0,0,0,730,731,1,0,0,0,731,732,1,0,0,0,732,734,5,2,0,0,733,735,5,187,0, - 0,734,733,1,0,0,0,734,735,1,0,0,0,735,737,1,0,0,0,736,738,3,42,21,0,737, - 736,1,0,0,0,737,738,1,0,0,0,738,740,1,0,0,0,739,741,5,187,0,0,740,739, - 1,0,0,0,740,741,1,0,0,0,741,743,1,0,0,0,742,744,3,44,22,0,743,742,1,0, - 0,0,743,744,1,0,0,0,744,755,1,0,0,0,745,747,5,187,0,0,746,745,1,0,0,0, - 746,747,1,0,0,0,747,748,1,0,0,0,748,750,5,4,0,0,749,751,5,187,0,0,750, - 749,1,0,0,0,750,751,1,0,0,0,751,752,1,0,0,0,752,754,3,44,22,0,753,746, - 1,0,0,0,754,757,1,0,0,0,755,753,1,0,0,0,755,756,1,0,0,0,756,759,1,0,0, - 0,757,755,1,0,0,0,758,760,5,187,0,0,759,758,1,0,0,0,759,760,1,0,0,0,760, - 761,1,0,0,0,761,762,5,3,0,0,762,763,5,187,0,0,763,764,5,52,0,0,764,765, - 5,187,0,0,765,766,3,264,132,0,766,41,1,0,0,0,767,778,3,368,184,0,768, - 770,5,187,0,0,769,768,1,0,0,0,769,770,1,0,0,0,770,771,1,0,0,0,771,773, - 5,4,0,0,772,774,5,187,0,0,773,772,1,0,0,0,773,774,1,0,0,0,774,775,1,0, - 0,0,775,777,3,368,184,0,776,769,1,0,0,0,777,780,1,0,0,0,778,776,1,0,0, - 0,778,779,1,0,0,0,779,43,1,0,0,0,780,778,1,0,0,0,781,783,3,368,184,0, - 782,784,5,187,0,0,783,782,1,0,0,0,783,784,1,0,0,0,784,785,1,0,0,0,785, - 786,5,168,0,0,786,788,5,6,0,0,787,789,5,187,0,0,788,787,1,0,0,0,788,789, - 1,0,0,0,789,790,1,0,0,0,790,791,3,318,159,0,791,45,1,0,0,0,792,794,5, - 7,0,0,793,795,5,187,0,0,794,793,1,0,0,0,794,795,1,0,0,0,795,796,1,0,0, - 0,796,807,5,172,0,0,797,799,5,187,0,0,798,797,1,0,0,0,798,799,1,0,0,0, - 799,800,1,0,0,0,800,802,5,4,0,0,801,803,5,187,0,0,802,801,1,0,0,0,802, - 803,1,0,0,0,803,804,1,0,0,0,804,806,5,172,0,0,805,798,1,0,0,0,806,809, - 1,0,0,0,807,805,1,0,0,0,807,808,1,0,0,0,808,810,1,0,0,0,809,807,1,0,0, - 0,810,826,5,8,0,0,811,826,5,172,0,0,812,814,5,91,0,0,813,815,5,187,0, - 0,814,813,1,0,0,0,814,815,1,0,0,0,815,816,1,0,0,0,816,818,5,2,0,0,817, - 819,5,187,0,0,818,817,1,0,0,0,818,819,1,0,0,0,819,820,1,0,0,0,820,822, - 5,172,0,0,821,823,5,187,0,0,822,821,1,0,0,0,822,823,1,0,0,0,823,824,1, - 0,0,0,824,826,5,3,0,0,825,792,1,0,0,0,825,811,1,0,0,0,825,812,1,0,0,0, - 826,47,1,0,0,0,827,828,5,98,0,0,828,829,5,187,0,0,829,830,5,116,0,0,830, - 831,5,187,0,0,831,832,5,83,0,0,832,49,1,0,0,0,833,834,5,69,0,0,834,835, - 5,187,0,0,835,836,5,115,0,0,836,837,5,187,0,0,837,838,5,140,0,0,838,842, - 5,187,0,0,839,840,3,48,24,0,840,841,5,187,0,0,841,843,1,0,0,0,842,839, - 1,0,0,0,842,843,1,0,0,0,843,844,1,0,0,0,844,872,3,366,183,0,845,847,5, - 187,0,0,846,845,1,0,0,0,846,847,1,0,0,0,847,848,1,0,0,0,848,850,5,2,0, - 0,849,851,5,187,0,0,850,849,1,0,0,0,850,851,1,0,0,0,851,852,1,0,0,0,852, - 854,3,120,60,0,853,855,5,187,0,0,854,853,1,0,0,0,854,855,1,0,0,0,855, - 861,1,0,0,0,856,858,5,4,0,0,857,859,5,187,0,0,858,857,1,0,0,0,858,859, - 1,0,0,0,859,860,1,0,0,0,860,862,3,124,62,0,861,856,1,0,0,0,861,862,1, - 0,0,0,862,864,1,0,0,0,863,865,5,187,0,0,864,863,1,0,0,0,864,865,1,0,0, - 0,865,866,1,0,0,0,866,867,5,3,0,0,867,873,1,0,0,0,868,869,5,187,0,0,869, - 870,5,52,0,0,870,871,5,187,0,0,871,873,3,158,79,0,872,846,1,0,0,0,872, - 868,1,0,0,0,873,889,1,0,0,0,874,875,5,187,0,0,875,877,5,154,0,0,876,878, - 5,187,0,0,877,876,1,0,0,0,877,878,1,0,0,0,878,879,1,0,0,0,879,881,5,2, - 0,0,880,882,5,187,0,0,881,880,1,0,0,0,881,882,1,0,0,0,882,883,1,0,0,0, - 883,885,3,24,12,0,884,886,5,187,0,0,885,884,1,0,0,0,885,886,1,0,0,0,886, - 887,1,0,0,0,887,888,5,3,0,0,888,890,1,0,0,0,889,874,1,0,0,0,889,890,1, - 0,0,0,890,51,1,0,0,0,891,892,5,69,0,0,892,893,5,187,0,0,893,894,5,129, - 0,0,894,895,5,187,0,0,895,898,5,140,0,0,896,897,5,187,0,0,897,899,5,93, - 0,0,898,896,1,0,0,0,898,899,1,0,0,0,899,902,1,0,0,0,900,901,5,187,0,0, - 901,903,3,48,24,0,902,900,1,0,0,0,902,903,1,0,0,0,903,904,1,0,0,0,904, - 905,5,187,0,0,905,907,3,366,183,0,906,908,5,187,0,0,907,906,1,0,0,0,907, - 908,1,0,0,0,908,909,1,0,0,0,909,911,5,2,0,0,910,912,5,187,0,0,911,910, - 1,0,0,0,911,912,1,0,0,0,912,913,1,0,0,0,913,915,3,64,32,0,914,916,5,187, - 0,0,915,914,1,0,0,0,915,916,1,0,0,0,916,943,1,0,0,0,917,919,5,4,0,0,918, - 920,5,187,0,0,919,918,1,0,0,0,919,920,1,0,0,0,920,921,1,0,0,0,921,923, - 3,120,60,0,922,924,5,187,0,0,923,922,1,0,0,0,923,924,1,0,0,0,924,926, - 1,0,0,0,925,917,1,0,0,0,925,926,1,0,0,0,926,935,1,0,0,0,927,929,5,4,0, - 0,928,930,5,187,0,0,929,928,1,0,0,0,929,930,1,0,0,0,930,931,1,0,0,0,931, - 933,3,368,184,0,932,934,5,187,0,0,933,932,1,0,0,0,933,934,1,0,0,0,934, - 936,1,0,0,0,935,927,1,0,0,0,935,936,1,0,0,0,936,937,1,0,0,0,937,944,5, - 3,0,0,938,939,5,3,0,0,939,940,5,187,0,0,940,941,5,52,0,0,941,942,5,187, - 0,0,942,944,3,158,79,0,943,925,1,0,0,0,943,938,1,0,0,0,944,960,1,0,0, - 0,945,946,5,187,0,0,946,948,5,154,0,0,947,949,5,187,0,0,948,947,1,0,0, - 0,948,949,1,0,0,0,949,950,1,0,0,0,950,952,5,2,0,0,951,953,5,187,0,0,952, - 951,1,0,0,0,952,953,1,0,0,0,953,954,1,0,0,0,954,956,3,24,12,0,955,957, - 5,187,0,0,956,955,1,0,0,0,956,957,1,0,0,0,957,958,1,0,0,0,958,959,5,3, - 0,0,959,961,1,0,0,0,960,945,1,0,0,0,960,961,1,0,0,0,961,53,1,0,0,0,962, - 965,5,69,0,0,963,964,5,187,0,0,964,966,3,368,184,0,965,963,1,0,0,0,965, - 966,1,0,0,0,966,967,1,0,0,0,967,968,5,187,0,0,968,971,5,97,0,0,969,970, - 5,187,0,0,970,972,3,366,183,0,971,969,1,0,0,0,971,972,1,0,0,0,972,975, - 1,0,0,0,973,974,5,187,0,0,974,976,3,48,24,0,975,973,1,0,0,0,975,976,1, - 0,0,0,976,977,1,0,0,0,977,978,5,187,0,0,978,979,5,90,0,0,979,980,5,187, - 0,0,980,981,3,56,28,0,981,982,5,187,0,0,982,983,5,119,0,0,983,984,5,187, - 0,0,984,1001,3,62,31,0,985,986,5,187,0,0,986,988,5,121,0,0,987,989,5, - 187,0,0,988,987,1,0,0,0,988,989,1,0,0,0,989,990,1,0,0,0,990,992,5,9,0, - 0,991,993,5,187,0,0,992,991,1,0,0,0,992,993,1,0,0,0,993,995,1,0,0,0,994, - 996,3,24,12,0,995,994,1,0,0,0,995,996,1,0,0,0,996,998,1,0,0,0,997,999, - 5,187,0,0,998,997,1,0,0,0,998,999,1,0,0,0,999,1000,1,0,0,0,1000,1002, - 5,10,0,0,1001,985,1,0,0,0,1001,1002,1,0,0,0,1002,55,1,0,0,0,1003,1006, - 3,58,29,0,1004,1006,3,60,30,0,1005,1003,1,0,0,0,1005,1004,1,0,0,0,1006, - 57,1,0,0,0,1007,1009,5,2,0,0,1008,1010,5,187,0,0,1009,1008,1,0,0,0,1009, - 1010,1,0,0,0,1010,1012,1,0,0,0,1011,1013,3,352,176,0,1012,1011,1,0,0, - 0,1012,1013,1,0,0,0,1013,1015,1,0,0,0,1014,1016,5,187,0,0,1015,1014,1, - 0,0,0,1015,1016,1,0,0,0,1016,1017,1,0,0,0,1017,1019,5,168,0,0,1018,1020, - 5,187,0,0,1019,1018,1,0,0,0,1019,1020,1,0,0,0,1020,1021,1,0,0,0,1021, - 1023,3,260,130,0,1022,1024,5,187,0,0,1023,1022,1,0,0,0,1023,1024,1,0, - 0,0,1024,1025,1,0,0,0,1025,1026,5,3,0,0,1026,59,1,0,0,0,1027,1029,5,2, - 0,0,1028,1030,5,187,0,0,1029,1028,1,0,0,0,1029,1030,1,0,0,0,1030,1031, - 1,0,0,0,1031,1033,5,3,0,0,1032,1034,5,187,0,0,1033,1032,1,0,0,0,1033, - 1034,1,0,0,0,1034,1035,1,0,0,0,1035,1037,3,236,118,0,1036,1038,5,187, - 0,0,1037,1036,1,0,0,0,1037,1038,1,0,0,0,1038,1039,1,0,0,0,1039,1041,5, - 2,0,0,1040,1042,5,187,0,0,1041,1040,1,0,0,0,1041,1042,1,0,0,0,1042,1043, - 1,0,0,0,1043,1044,5,3,0,0,1044,61,1,0,0,0,1045,1047,5,2,0,0,1046,1048, - 5,187,0,0,1047,1046,1,0,0,0,1047,1048,1,0,0,0,1048,1049,1,0,0,0,1049, - 1051,3,352,176,0,1050,1052,5,187,0,0,1051,1050,1,0,0,0,1051,1052,1,0, - 0,0,1052,1053,1,0,0,0,1053,1055,5,5,0,0,1054,1056,5,187,0,0,1055,1054, - 1,0,0,0,1055,1056,1,0,0,0,1056,1057,1,0,0,0,1057,1059,3,360,180,0,1058, - 1060,5,187,0,0,1059,1058,1,0,0,0,1059,1060,1,0,0,0,1060,1061,1,0,0,0, - 1061,1062,5,3,0,0,1062,63,1,0,0,0,1063,1074,3,66,33,0,1064,1066,5,187, - 0,0,1065,1064,1,0,0,0,1065,1066,1,0,0,0,1066,1067,1,0,0,0,1067,1069,5, - 4,0,0,1068,1070,5,187,0,0,1069,1068,1,0,0,0,1069,1070,1,0,0,0,1070,1071, - 1,0,0,0,1071,1073,3,66,33,0,1072,1065,1,0,0,0,1073,1076,1,0,0,0,1074, - 1072,1,0,0,0,1074,1075,1,0,0,0,1075,65,1,0,0,0,1076,1074,1,0,0,0,1077, - 1078,5,88,0,0,1078,1079,5,187,0,0,1079,1080,3,366,183,0,1080,1081,5,187, - 0,0,1081,1082,5,142,0,0,1082,1083,5,187,0,0,1083,1086,3,366,183,0,1084, - 1085,5,187,0,0,1085,1087,3,368,184,0,1086,1084,1,0,0,0,1086,1087,1,0, - 0,0,1087,67,1,0,0,0,1088,1099,3,70,35,0,1089,1091,5,187,0,0,1090,1089, - 1,0,0,0,1090,1091,1,0,0,0,1091,1092,1,0,0,0,1092,1094,5,4,0,0,1093,1095, - 5,187,0,0,1094,1093,1,0,0,0,1094,1095,1,0,0,0,1095,1096,1,0,0,0,1096, - 1098,3,70,35,0,1097,1090,1,0,0,0,1098,1101,1,0,0,0,1099,1097,1,0,0,0, - 1099,1100,1,0,0,0,1100,69,1,0,0,0,1101,1099,1,0,0,0,1102,1103,5,88,0, - 0,1103,1104,5,187,0,0,1104,1105,3,366,183,0,1105,1106,5,187,0,0,1106, - 1107,5,142,0,0,1107,1108,5,187,0,0,1108,1109,3,366,183,0,1109,71,1,0, - 0,0,1110,1111,5,69,0,0,1111,1112,5,187,0,0,1112,1113,5,134,0,0,1113,1117, - 5,187,0,0,1114,1115,3,48,24,0,1115,1116,5,187,0,0,1116,1118,1,0,0,0,1117, - 1114,1,0,0,0,1117,1118,1,0,0,0,1118,1119,1,0,0,0,1119,1124,3,366,183, - 0,1120,1121,5,187,0,0,1121,1123,3,76,38,0,1122,1120,1,0,0,0,1123,1126, - 1,0,0,0,1124,1122,1,0,0,0,1124,1125,1,0,0,0,1125,73,1,0,0,0,1126,1124, - 1,0,0,0,1127,1128,5,69,0,0,1128,1129,5,187,0,0,1129,1130,5,146,0,0,1130, - 1131,5,187,0,0,1131,1132,3,366,183,0,1132,1133,5,187,0,0,1133,1134,5, - 52,0,0,1134,1135,5,187,0,0,1135,1137,3,134,67,0,1136,1138,5,187,0,0,1137, - 1136,1,0,0,0,1137,1138,1,0,0,0,1138,75,1,0,0,0,1139,1145,3,84,42,0,1140, - 1145,3,86,43,0,1141,1145,3,88,44,0,1142,1145,3,90,45,0,1143,1145,3,92, - 46,0,1144,1139,1,0,0,0,1144,1140,1,0,0,0,1144,1141,1,0,0,0,1144,1142, - 1,0,0,0,1144,1143,1,0,0,0,1145,77,1,0,0,0,1146,1147,5,187,0,0,1147,1148, - 5,154,0,0,1148,1149,5,187,0,0,1149,1150,5,161,0,0,1150,1151,5,187,0,0, - 1151,1152,5,172,0,0,1152,79,1,0,0,0,1153,1154,5,69,0,0,1154,1155,5,187, - 0,0,1155,1156,5,160,0,0,1156,1160,5,187,0,0,1157,1158,3,48,24,0,1158, - 1159,5,187,0,0,1159,1161,1,0,0,0,1160,1157,1,0,0,0,1160,1161,1,0,0,0, - 1161,1162,1,0,0,0,1162,1164,3,352,176,0,1163,1165,3,78,39,0,1164,1163, - 1,0,0,0,1164,1165,1,0,0,0,1165,81,1,0,0,0,1166,1167,5,69,0,0,1167,1168, - 5,187,0,0,1168,1169,5,162,0,0,1169,1173,5,187,0,0,1170,1171,3,48,24,0, - 1171,1172,5,187,0,0,1172,1174,1,0,0,0,1173,1170,1,0,0,0,1173,1174,1,0, - 0,0,1174,1175,1,0,0,0,1175,1176,3,352,176,0,1176,83,1,0,0,0,1177,1178, - 5,100,0,0,1178,1181,5,187,0,0,1179,1180,5,57,0,0,1180,1182,5,187,0,0, - 1181,1179,1,0,0,0,1181,1182,1,0,0,0,1182,1184,1,0,0,0,1183,1185,5,170, - 0,0,1184,1183,1,0,0,0,1184,1185,1,0,0,0,1185,1186,1,0,0,0,1186,1187,3, - 362,181,0,1187,85,1,0,0,0,1188,1189,5,114,0,0,1189,1190,5,187,0,0,1190, - 1198,5,112,0,0,1191,1192,5,112,0,0,1192,1194,5,187,0,0,1193,1195,5,170, - 0,0,1194,1193,1,0,0,0,1194,1195,1,0,0,0,1195,1196,1,0,0,0,1196,1198,3, - 362,181,0,1197,1188,1,0,0,0,1197,1191,1,0,0,0,1198,87,1,0,0,0,1199,1200, - 5,114,0,0,1200,1201,5,187,0,0,1201,1209,5,110,0,0,1202,1203,5,110,0,0, - 1203,1205,5,187,0,0,1204,1206,5,170,0,0,1205,1204,1,0,0,0,1205,1206,1, - 0,0,0,1206,1207,1,0,0,0,1207,1209,3,362,181,0,1208,1199,1,0,0,0,1208, - 1202,1,0,0,0,1209,89,1,0,0,0,1210,1211,5,137,0,0,1211,1214,5,187,0,0, - 1212,1213,5,154,0,0,1213,1215,5,187,0,0,1214,1212,1,0,0,0,1214,1215,1, - 0,0,0,1215,1217,1,0,0,0,1216,1218,5,170,0,0,1217,1216,1,0,0,0,1217,1218, - 1,0,0,0,1218,1219,1,0,0,0,1219,1220,3,362,181,0,1220,91,1,0,0,0,1221, - 1222,5,114,0,0,1222,1224,5,187,0,0,1223,1221,1,0,0,0,1223,1224,1,0,0, - 0,1224,1225,1,0,0,0,1225,1226,5,70,0,0,1226,93,1,0,0,0,1227,1228,5,98, - 0,0,1228,1229,5,187,0,0,1229,1230,5,83,0,0,1230,95,1,0,0,0,1231,1232, - 5,79,0,0,1232,1233,5,187,0,0,1233,1234,7,0,0,0,1234,1238,5,187,0,0,1235, - 1236,3,94,47,0,1236,1237,5,187,0,0,1237,1239,1,0,0,0,1238,1235,1,0,0, - 0,1238,1239,1,0,0,0,1239,1240,1,0,0,0,1240,1241,3,366,183,0,1241,97,1, - 0,0,0,1242,1243,5,49,0,0,1243,1244,5,187,0,0,1244,1245,5,140,0,0,1245, - 1246,5,187,0,0,1246,1247,3,366,183,0,1247,1248,5,187,0,0,1248,1249,3, - 100,50,0,1249,99,1,0,0,0,1250,1257,3,102,51,0,1251,1257,3,106,53,0,1252, - 1257,3,108,54,0,1253,1257,3,110,55,0,1254,1257,3,112,56,0,1255,1257,3, - 114,57,0,1256,1250,1,0,0,0,1256,1251,1,0,0,0,1256,1252,1,0,0,0,1256,1253, - 1,0,0,0,1256,1254,1,0,0,0,1256,1255,1,0,0,0,1257,101,1,0,0,0,1258,1259, - 5,47,0,0,1259,1263,5,187,0,0,1260,1261,3,48,24,0,1261,1262,5,187,0,0, - 1262,1264,1,0,0,0,1263,1260,1,0,0,0,1263,1264,1,0,0,0,1264,1265,1,0,0, - 0,1265,1266,3,360,180,0,1266,1267,5,187,0,0,1267,1270,3,134,67,0,1268, - 1269,5,187,0,0,1269,1271,3,104,52,0,1270,1268,1,0,0,0,1270,1271,1,0,0, - 0,1271,103,1,0,0,0,1272,1273,5,73,0,0,1273,1274,5,187,0,0,1274,1275,3, - 264,132,0,1275,105,1,0,0,0,1276,1277,5,79,0,0,1277,1281,5,187,0,0,1278, - 1279,3,94,47,0,1279,1280,5,187,0,0,1280,1282,1,0,0,0,1281,1278,1,0,0, - 0,1281,1282,1,0,0,0,1282,1283,1,0,0,0,1283,1284,3,360,180,0,1284,107, - 1,0,0,0,1285,1286,5,130,0,0,1286,1287,5,187,0,0,1287,1288,5,142,0,0,1288, - 1289,5,187,0,0,1289,1290,3,366,183,0,1290,109,1,0,0,0,1291,1292,5,130, - 0,0,1292,1293,5,187,0,0,1293,1294,3,360,180,0,1294,1295,5,187,0,0,1295, - 1296,5,142,0,0,1296,1297,5,187,0,0,1297,1298,3,360,180,0,1298,111,1,0, - 0,0,1299,1300,5,47,0,0,1300,1304,5,187,0,0,1301,1302,3,48,24,0,1302,1303, - 5,187,0,0,1303,1305,1,0,0,0,1304,1301,1,0,0,0,1304,1305,1,0,0,0,1305, - 1306,1,0,0,0,1306,1307,3,70,35,0,1307,113,1,0,0,0,1308,1309,5,79,0,0, - 1309,1313,5,187,0,0,1310,1311,3,94,47,0,1311,1312,5,187,0,0,1312,1314, - 1,0,0,0,1313,1310,1,0,0,0,1313,1314,1,0,0,0,1314,1315,1,0,0,0,1315,1316, - 3,70,35,0,1316,115,1,0,0,0,1317,1328,3,118,59,0,1318,1320,5,187,0,0,1319, - 1318,1,0,0,0,1319,1320,1,0,0,0,1320,1321,1,0,0,0,1321,1323,5,4,0,0,1322, - 1324,5,187,0,0,1323,1322,1,0,0,0,1323,1324,1,0,0,0,1324,1325,1,0,0,0, - 1325,1327,3,118,59,0,1326,1319,1,0,0,0,1327,1330,1,0,0,0,1328,1326,1, - 0,0,0,1328,1329,1,0,0,0,1329,117,1,0,0,0,1330,1328,1,0,0,0,1331,1332, - 3,360,180,0,1332,1333,5,187,0,0,1333,1334,3,134,67,0,1334,119,1,0,0,0, - 1335,1346,3,122,61,0,1336,1338,5,187,0,0,1337,1336,1,0,0,0,1337,1338, - 1,0,0,0,1338,1339,1,0,0,0,1339,1341,5,4,0,0,1340,1342,5,187,0,0,1341, - 1340,1,0,0,0,1341,1342,1,0,0,0,1342,1343,1,0,0,0,1343,1345,3,122,61,0, - 1344,1337,1,0,0,0,1345,1348,1,0,0,0,1346,1344,1,0,0,0,1346,1347,1,0,0, - 0,1347,121,1,0,0,0,1348,1346,1,0,0,0,1349,1352,3,118,59,0,1350,1351,5, - 187,0,0,1351,1353,3,104,52,0,1352,1350,1,0,0,0,1352,1353,1,0,0,0,1353, - 1358,1,0,0,0,1354,1355,5,187,0,0,1355,1356,5,125,0,0,1356,1357,5,187, - 0,0,1357,1359,5,104,0,0,1358,1354,1,0,0,0,1358,1359,1,0,0,0,1359,123, - 1,0,0,0,1360,1361,5,125,0,0,1361,1362,5,187,0,0,1362,1364,5,104,0,0,1363, - 1365,5,187,0,0,1364,1363,1,0,0,0,1364,1365,1,0,0,0,1365,1366,1,0,0,0, - 1366,1368,5,2,0,0,1367,1369,5,187,0,0,1368,1367,1,0,0,0,1368,1369,1,0, - 0,0,1369,1370,1,0,0,0,1370,1372,3,360,180,0,1371,1373,5,187,0,0,1372, - 1371,1,0,0,0,1372,1373,1,0,0,0,1373,1374,1,0,0,0,1374,1375,5,3,0,0,1375, - 125,1,0,0,0,1376,1378,5,147,0,0,1377,1379,5,187,0,0,1378,1377,1,0,0,0, - 1378,1379,1,0,0,0,1379,1380,1,0,0,0,1380,1382,5,2,0,0,1381,1383,5,187, - 0,0,1382,1381,1,0,0,0,1382,1383,1,0,0,0,1383,1384,1,0,0,0,1384,1386,3, - 116,58,0,1385,1387,5,187,0,0,1386,1385,1,0,0,0,1386,1387,1,0,0,0,1387, - 1388,1,0,0,0,1388,1389,5,3,0,0,1389,127,1,0,0,0,1390,1392,5,139,0,0,1391, - 1393,5,187,0,0,1392,1391,1,0,0,0,1392,1393,1,0,0,0,1393,1394,1,0,0,0, - 1394,1396,5,2,0,0,1395,1397,5,187,0,0,1396,1395,1,0,0,0,1396,1397,1,0, - 0,0,1397,1398,1,0,0,0,1398,1400,3,116,58,0,1399,1401,5,187,0,0,1400,1399, - 1,0,0,0,1400,1401,1,0,0,0,1401,1402,1,0,0,0,1402,1403,5,3,0,0,1403,129, - 1,0,0,0,1404,1406,5,163,0,0,1405,1407,5,187,0,0,1406,1405,1,0,0,0,1406, - 1407,1,0,0,0,1407,1408,1,0,0,0,1408,1410,5,2,0,0,1409,1411,5,187,0,0, - 1410,1409,1,0,0,0,1410,1411,1,0,0,0,1411,1412,1,0,0,0,1412,1414,3,134, - 67,0,1413,1415,5,187,0,0,1414,1413,1,0,0,0,1414,1415,1,0,0,0,1415,1416, - 1,0,0,0,1416,1418,5,4,0,0,1417,1419,5,187,0,0,1418,1417,1,0,0,0,1418, - 1419,1,0,0,0,1419,1420,1,0,0,0,1420,1422,3,134,67,0,1421,1423,5,187,0, - 0,1422,1421,1,0,0,0,1422,1423,1,0,0,0,1423,1424,1,0,0,0,1424,1425,5,3, - 0,0,1425,131,1,0,0,0,1426,1428,5,164,0,0,1427,1429,5,187,0,0,1428,1427, - 1,0,0,0,1428,1429,1,0,0,0,1429,1430,1,0,0,0,1430,1432,5,2,0,0,1431,1433, - 5,187,0,0,1432,1431,1,0,0,0,1432,1433,1,0,0,0,1433,1434,1,0,0,0,1434, - 1436,3,362,181,0,1435,1437,5,187,0,0,1436,1435,1,0,0,0,1436,1437,1,0, - 0,0,1437,1438,1,0,0,0,1438,1440,5,4,0,0,1439,1441,5,187,0,0,1440,1439, - 1,0,0,0,1440,1441,1,0,0,0,1441,1442,1,0,0,0,1442,1444,3,362,181,0,1443, - 1445,5,187,0,0,1444,1443,1,0,0,0,1444,1445,1,0,0,0,1445,1446,1,0,0,0, - 1446,1447,5,3,0,0,1447,133,1,0,0,0,1448,1449,6,67,-1,0,1449,1455,3,368, - 184,0,1450,1455,3,126,63,0,1451,1455,3,128,64,0,1452,1455,3,130,65,0, - 1453,1455,3,132,66,0,1454,1448,1,0,0,0,1454,1450,1,0,0,0,1454,1451,1, - 0,0,0,1454,1452,1,0,0,0,1454,1453,1,0,0,0,1455,1460,1,0,0,0,1456,1457, - 10,5,0,0,1457,1459,3,136,68,0,1458,1456,1,0,0,0,1459,1462,1,0,0,0,1460, - 1458,1,0,0,0,1460,1461,1,0,0,0,1461,135,1,0,0,0,1462,1460,1,0,0,0,1463, - 1467,3,138,69,0,1464,1466,3,138,69,0,1465,1464,1,0,0,0,1466,1469,1,0, - 0,0,1467,1465,1,0,0,0,1467,1468,1,0,0,0,1468,137,1,0,0,0,1469,1467,1, - 0,0,0,1470,1472,5,7,0,0,1471,1473,3,362,181,0,1472,1471,1,0,0,0,1472, - 1473,1,0,0,0,1473,1474,1,0,0,0,1474,1475,5,8,0,0,1475,139,1,0,0,0,1476, - 1479,3,142,71,0,1477,1479,3,144,72,0,1478,1476,1,0,0,0,1478,1477,1,0, - 0,0,1479,141,1,0,0,0,1480,1483,5,84,0,0,1481,1482,5,187,0,0,1482,1484, - 5,107,0,0,1483,1481,1,0,0,0,1483,1484,1,0,0,0,1484,143,1,0,0,0,1485,1486, - 5,126,0,0,1486,145,1,0,0,0,1487,1488,5,56,0,0,1488,1489,5,187,0,0,1489, - 1501,5,144,0,0,1490,1491,5,56,0,0,1491,1492,5,187,0,0,1492,1493,5,144, - 0,0,1493,1494,5,187,0,0,1494,1495,5,128,0,0,1495,1496,5,187,0,0,1496, - 1501,5,120,0,0,1497,1501,5,64,0,0,1498,1501,5,132,0,0,1499,1501,5,61, - 0,0,1500,1487,1,0,0,0,1500,1490,1,0,0,0,1500,1497,1,0,0,0,1500,1498,1, - 0,0,0,1500,1499,1,0,0,0,1501,147,1,0,0,0,1502,1507,3,150,75,0,1503,1507, - 3,152,76,0,1504,1507,3,154,77,0,1505,1507,3,156,78,0,1506,1502,1,0,0, - 0,1506,1503,1,0,0,0,1506,1504,1,0,0,0,1506,1505,1,0,0,0,1507,149,1,0, - 0,0,1508,1509,5,106,0,0,1509,1512,5,187,0,0,1510,1511,5,86,0,0,1511,1513, - 5,187,0,0,1512,1510,1,0,0,0,1512,1513,1,0,0,0,1513,1516,1,0,0,0,1514, - 1517,5,172,0,0,1515,1517,3,352,176,0,1516,1514,1,0,0,0,1516,1515,1,0, - 0,0,1517,151,1,0,0,0,1518,1519,5,89,0,0,1519,1521,5,187,0,0,1520,1518, - 1,0,0,0,1520,1521,1,0,0,0,1521,1522,1,0,0,0,1522,1523,5,101,0,0,1523, - 1524,5,187,0,0,1524,1529,3,352,176,0,1525,1526,5,187,0,0,1526,1527,5, - 88,0,0,1527,1528,5,187,0,0,1528,1530,5,172,0,0,1529,1525,1,0,0,0,1529, - 1530,1,0,0,0,1530,153,1,0,0,0,1531,1532,5,149,0,0,1532,1533,5,187,0,0, - 1533,1534,3,352,176,0,1534,155,1,0,0,0,1535,1536,5,150,0,0,1536,1537, - 5,187,0,0,1537,1538,3,352,176,0,1538,157,1,0,0,0,1539,1540,3,160,80,0, - 1540,159,1,0,0,0,1541,1548,3,164,82,0,1542,1544,5,187,0,0,1543,1542,1, - 0,0,0,1543,1544,1,0,0,0,1544,1545,1,0,0,0,1545,1547,3,162,81,0,1546,1543, - 1,0,0,0,1547,1550,1,0,0,0,1548,1546,1,0,0,0,1548,1549,1,0,0,0,1549,1563, - 1,0,0,0,1550,1548,1,0,0,0,1551,1553,3,206,103,0,1552,1554,5,187,0,0,1553, - 1552,1,0,0,0,1553,1554,1,0,0,0,1554,1556,1,0,0,0,1555,1551,1,0,0,0,1556, - 1557,1,0,0,0,1557,1555,1,0,0,0,1557,1558,1,0,0,0,1558,1559,1,0,0,0,1559, - 1560,3,164,82,0,1560,1561,6,80,-1,0,1561,1563,1,0,0,0,1562,1541,1,0,0, - 0,1562,1555,1,0,0,0,1563,161,1,0,0,0,1564,1565,5,147,0,0,1565,1566,5, - 187,0,0,1566,1568,5,48,0,0,1567,1569,5,187,0,0,1568,1567,1,0,0,0,1568, - 1569,1,0,0,0,1569,1570,1,0,0,0,1570,1577,3,164,82,0,1571,1573,5,147,0, - 0,1572,1574,5,187,0,0,1573,1572,1,0,0,0,1573,1574,1,0,0,0,1574,1575,1, - 0,0,0,1575,1577,3,164,82,0,1576,1564,1,0,0,0,1576,1571,1,0,0,0,1577,163, - 1,0,0,0,1578,1581,3,166,83,0,1579,1581,3,168,84,0,1580,1578,1,0,0,0,1580, - 1579,1,0,0,0,1581,165,1,0,0,0,1582,1584,3,174,87,0,1583,1585,5,187,0, - 0,1584,1583,1,0,0,0,1584,1585,1,0,0,0,1585,1587,1,0,0,0,1586,1582,1,0, - 0,0,1587,1590,1,0,0,0,1588,1586,1,0,0,0,1588,1589,1,0,0,0,1589,1591,1, - 0,0,0,1590,1588,1,0,0,0,1591,1618,3,206,103,0,1592,1594,3,174,87,0,1593, - 1595,5,187,0,0,1594,1593,1,0,0,0,1594,1595,1,0,0,0,1595,1597,1,0,0,0, - 1596,1592,1,0,0,0,1597,1600,1,0,0,0,1598,1596,1,0,0,0,1598,1599,1,0,0, - 0,1599,1601,1,0,0,0,1600,1598,1,0,0,0,1601,1608,3,172,86,0,1602,1604, - 5,187,0,0,1603,1602,1,0,0,0,1603,1604,1,0,0,0,1604,1605,1,0,0,0,1605, - 1607,3,172,86,0,1606,1603,1,0,0,0,1607,1610,1,0,0,0,1608,1606,1,0,0,0, - 1608,1609,1,0,0,0,1609,1615,1,0,0,0,1610,1608,1,0,0,0,1611,1613,5,187, - 0,0,1612,1611,1,0,0,0,1612,1613,1,0,0,0,1613,1614,1,0,0,0,1614,1616,3, - 206,103,0,1615,1612,1,0,0,0,1615,1616,1,0,0,0,1616,1618,1,0,0,0,1617, - 1588,1,0,0,0,1617,1598,1,0,0,0,1618,167,1,0,0,0,1619,1621,3,170,85,0, - 1620,1622,5,187,0,0,1621,1620,1,0,0,0,1621,1622,1,0,0,0,1622,1624,1,0, - 0,0,1623,1619,1,0,0,0,1624,1625,1,0,0,0,1625,1623,1,0,0,0,1625,1626,1, - 0,0,0,1626,1627,1,0,0,0,1627,1628,3,166,83,0,1628,169,1,0,0,0,1629,1631, - 3,174,87,0,1630,1632,5,187,0,0,1631,1630,1,0,0,0,1631,1632,1,0,0,0,1632, - 1634,1,0,0,0,1633,1629,1,0,0,0,1634,1637,1,0,0,0,1635,1633,1,0,0,0,1635, - 1636,1,0,0,0,1636,1644,1,0,0,0,1637,1635,1,0,0,0,1638,1640,3,172,86,0, - 1639,1641,5,187,0,0,1640,1639,1,0,0,0,1640,1641,1,0,0,0,1641,1643,1,0, - 0,0,1642,1638,1,0,0,0,1643,1646,1,0,0,0,1644,1642,1,0,0,0,1644,1645,1, - 0,0,0,1645,1647,1,0,0,0,1646,1644,1,0,0,0,1647,1648,3,204,102,0,1648, - 171,1,0,0,0,1649,1654,3,192,96,0,1650,1654,3,194,97,0,1651,1654,3,198, - 99,0,1652,1654,3,202,101,0,1653,1649,1,0,0,0,1653,1650,1,0,0,0,1653,1651, - 1,0,0,0,1653,1652,1,0,0,0,1654,173,1,0,0,0,1655,1660,3,184,92,0,1656, - 1660,3,190,95,0,1657,1660,3,182,91,0,1658,1660,3,176,88,0,1659,1655,1, - 0,0,0,1659,1656,1,0,0,0,1659,1657,1,0,0,0,1659,1658,1,0,0,0,1660,175, - 1,0,0,0,1661,1679,5,106,0,0,1662,1663,5,187,0,0,1663,1664,5,154,0,0,1664, - 1665,5,187,0,0,1665,1667,5,94,0,0,1666,1668,5,187,0,0,1667,1666,1,0,0, - 0,1667,1668,1,0,0,0,1668,1669,1,0,0,0,1669,1671,5,2,0,0,1670,1672,5,187, - 0,0,1671,1670,1,0,0,0,1671,1672,1,0,0,0,1672,1673,1,0,0,0,1673,1675,3, - 116,58,0,1674,1676,5,187,0,0,1675,1674,1,0,0,0,1675,1676,1,0,0,0,1676, - 1677,1,0,0,0,1677,1678,5,3,0,0,1678,1680,1,0,0,0,1679,1662,1,0,0,0,1679, - 1680,1,0,0,0,1680,1681,1,0,0,0,1681,1682,5,187,0,0,1682,1683,5,88,0,0, - 1683,1684,5,187,0,0,1684,1698,3,10,5,0,1685,1687,5,187,0,0,1686,1685, - 1,0,0,0,1686,1687,1,0,0,0,1687,1688,1,0,0,0,1688,1690,5,2,0,0,1689,1691, - 5,187,0,0,1690,1689,1,0,0,0,1690,1691,1,0,0,0,1691,1692,1,0,0,0,1692, - 1694,3,24,12,0,1693,1695,5,187,0,0,1694,1693,1,0,0,0,1694,1695,1,0,0, - 0,1695,1696,1,0,0,0,1696,1697,5,3,0,0,1697,1699,1,0,0,0,1698,1686,1,0, - 0,0,1698,1699,1,0,0,0,1699,1704,1,0,0,0,1700,1702,5,187,0,0,1701,1700, - 1,0,0,0,1701,1702,1,0,0,0,1702,1703,1,0,0,0,1703,1705,3,222,111,0,1704, - 1701,1,0,0,0,1704,1705,1,0,0,0,1705,177,1,0,0,0,1706,1707,3,352,176,0, - 1707,1708,5,187,0,0,1708,1709,5,52,0,0,1709,1710,5,187,0,0,1710,1712, - 1,0,0,0,1711,1706,1,0,0,0,1711,1712,1,0,0,0,1712,1713,1,0,0,0,1713,1714, - 3,352,176,0,1714,179,1,0,0,0,1715,1726,3,178,89,0,1716,1718,5,187,0,0, - 1717,1716,1,0,0,0,1717,1718,1,0,0,0,1718,1719,1,0,0,0,1719,1721,5,4,0, - 0,1720,1722,5,187,0,0,1721,1720,1,0,0,0,1721,1722,1,0,0,0,1722,1723,1, - 0,0,0,1723,1725,3,178,89,0,1724,1717,1,0,0,0,1725,1728,1,0,0,0,1726,1724, - 1,0,0,0,1726,1727,1,0,0,0,1727,181,1,0,0,0,1728,1726,1,0,0,0,1729,1730, - 5,58,0,0,1730,1731,5,187,0,0,1731,1736,3,332,166,0,1732,1734,5,187,0, - 0,1733,1732,1,0,0,0,1733,1734,1,0,0,0,1734,1735,1,0,0,0,1735,1737,3,222, - 111,0,1736,1733,1,0,0,0,1736,1737,1,0,0,0,1737,1744,1,0,0,0,1738,1740, - 5,187,0,0,1739,1738,1,0,0,0,1739,1740,1,0,0,0,1740,1741,1,0,0,0,1741, - 1742,5,159,0,0,1742,1743,5,187,0,0,1743,1745,3,180,90,0,1744,1739,1,0, - 0,0,1744,1745,1,0,0,0,1745,183,1,0,0,0,1746,1747,5,122,0,0,1747,1749, - 5,187,0,0,1748,1746,1,0,0,0,1748,1749,1,0,0,0,1749,1750,1,0,0,0,1750, - 1752,5,109,0,0,1751,1753,5,187,0,0,1752,1751,1,0,0,0,1752,1753,1,0,0, - 0,1753,1754,1,0,0,0,1754,1757,3,224,112,0,1755,1756,5,187,0,0,1756,1758, - 3,222,111,0,1757,1755,1,0,0,0,1757,1758,1,0,0,0,1758,1761,1,0,0,0,1759, - 1760,5,187,0,0,1760,1762,3,186,93,0,1761,1759,1,0,0,0,1761,1762,1,0,0, - 0,1762,185,1,0,0,0,1763,1764,5,95,0,0,1764,1765,5,187,0,0,1765,1766,3, - 188,94,0,1766,187,1,0,0,0,1767,1768,6,94,-1,0,1768,1770,5,2,0,0,1769, - 1771,5,187,0,0,1770,1769,1,0,0,0,1770,1771,1,0,0,0,1771,1772,1,0,0,0, - 1772,1774,3,188,94,0,1773,1775,5,187,0,0,1774,1773,1,0,0,0,1774,1775, - 1,0,0,0,1775,1776,1,0,0,0,1776,1777,5,3,0,0,1777,1780,1,0,0,0,1778,1780, - 3,366,183,0,1779,1767,1,0,0,0,1779,1778,1,0,0,0,1780,1797,1,0,0,0,1781, - 1782,10,4,0,0,1782,1783,5,187,0,0,1783,1784,5,103,0,0,1784,1785,5,187, - 0,0,1785,1796,3,188,94,5,1786,1791,10,3,0,0,1787,1788,5,187,0,0,1788, - 1789,5,113,0,0,1789,1790,5,187,0,0,1790,1792,3,366,183,0,1791,1787,1, - 0,0,0,1792,1793,1,0,0,0,1793,1791,1,0,0,0,1793,1794,1,0,0,0,1794,1796, - 1,0,0,0,1795,1781,1,0,0,0,1795,1786,1,0,0,0,1796,1799,1,0,0,0,1797,1795, - 1,0,0,0,1797,1798,1,0,0,0,1798,189,1,0,0,0,1799,1797,1,0,0,0,1800,1802, - 5,148,0,0,1801,1803,5,187,0,0,1802,1801,1,0,0,0,1802,1803,1,0,0,0,1803, - 1804,1,0,0,0,1804,1805,3,264,132,0,1805,1806,5,187,0,0,1806,1807,5,52, - 0,0,1807,1808,5,187,0,0,1808,1809,3,352,176,0,1809,191,1,0,0,0,1810,1812, - 5,69,0,0,1811,1813,5,187,0,0,1812,1811,1,0,0,0,1812,1813,1,0,0,0,1813, - 1814,1,0,0,0,1814,1815,3,224,112,0,1815,193,1,0,0,0,1816,1818,5,111,0, - 0,1817,1819,5,187,0,0,1818,1817,1,0,0,0,1818,1819,1,0,0,0,1819,1820,1, - 0,0,0,1820,1825,3,224,112,0,1821,1822,5,187,0,0,1822,1824,3,196,98,0, - 1823,1821,1,0,0,0,1824,1827,1,0,0,0,1825,1823,1,0,0,0,1825,1826,1,0,0, - 0,1826,195,1,0,0,0,1827,1825,1,0,0,0,1828,1829,5,119,0,0,1829,1830,5, - 187,0,0,1830,1831,5,109,0,0,1831,1832,5,187,0,0,1832,1839,3,198,99,0, - 1833,1834,5,119,0,0,1834,1835,5,187,0,0,1835,1836,5,69,0,0,1836,1837, - 5,187,0,0,1837,1839,3,198,99,0,1838,1828,1,0,0,0,1838,1833,1,0,0,0,1839, - 197,1,0,0,0,1840,1842,5,135,0,0,1841,1843,5,187,0,0,1842,1841,1,0,0,0, - 1842,1843,1,0,0,0,1843,1844,1,0,0,0,1844,1855,3,200,100,0,1845,1847,5, - 187,0,0,1846,1845,1,0,0,0,1846,1847,1,0,0,0,1847,1848,1,0,0,0,1848,1850, - 5,4,0,0,1849,1851,5,187,0,0,1850,1849,1,0,0,0,1850,1851,1,0,0,0,1851, - 1852,1,0,0,0,1852,1854,3,200,100,0,1853,1846,1,0,0,0,1854,1857,1,0,0, - 0,1855,1853,1,0,0,0,1855,1856,1,0,0,0,1856,1873,1,0,0,0,1857,1855,1,0, - 0,0,1858,1860,5,135,0,0,1859,1861,5,187,0,0,1860,1859,1,0,0,0,1860,1861, - 1,0,0,0,1861,1862,1,0,0,0,1862,1864,3,310,155,0,1863,1865,5,187,0,0,1864, - 1863,1,0,0,0,1864,1865,1,0,0,0,1865,1866,1,0,0,0,1866,1868,5,6,0,0,1867, - 1869,5,187,0,0,1868,1867,1,0,0,0,1868,1869,1,0,0,0,1869,1870,1,0,0,0, - 1870,1871,3,240,120,0,1871,1873,1,0,0,0,1872,1840,1,0,0,0,1872,1858,1, - 0,0,0,1873,199,1,0,0,0,1874,1876,3,358,179,0,1875,1877,5,187,0,0,1876, - 1875,1,0,0,0,1876,1877,1,0,0,0,1877,1878,1,0,0,0,1878,1880,5,6,0,0,1879, - 1881,5,187,0,0,1880,1879,1,0,0,0,1880,1881,1,0,0,0,1881,1882,1,0,0,0, - 1882,1883,3,264,132,0,1883,201,1,0,0,0,1884,1885,5,77,0,0,1885,1887,5, - 187,0,0,1886,1884,1,0,0,0,1886,1887,1,0,0,0,1887,1888,1,0,0,0,1888,1890, - 5,74,0,0,1889,1891,5,187,0,0,1890,1889,1,0,0,0,1890,1891,1,0,0,0,1891, - 1892,1,0,0,0,1892,1903,3,264,132,0,1893,1895,5,187,0,0,1894,1893,1,0, - 0,0,1894,1895,1,0,0,0,1895,1896,1,0,0,0,1896,1898,5,4,0,0,1897,1899,5, - 187,0,0,1898,1897,1,0,0,0,1898,1899,1,0,0,0,1899,1900,1,0,0,0,1900,1902, - 3,264,132,0,1901,1894,1,0,0,0,1902,1905,1,0,0,0,1903,1901,1,0,0,0,1903, - 1904,1,0,0,0,1904,203,1,0,0,0,1905,1903,1,0,0,0,1906,1907,5,154,0,0,1907, - 1912,3,208,104,0,1908,1910,5,187,0,0,1909,1908,1,0,0,0,1909,1910,1,0, - 0,0,1910,1911,1,0,0,0,1911,1913,3,222,111,0,1912,1909,1,0,0,0,1912,1913, - 1,0,0,0,1913,205,1,0,0,0,1914,1915,5,131,0,0,1915,1916,3,208,104,0,1916, - 207,1,0,0,0,1917,1919,5,187,0,0,1918,1917,1,0,0,0,1918,1919,1,0,0,0,1919, - 1920,1,0,0,0,1920,1922,5,78,0,0,1921,1918,1,0,0,0,1921,1922,1,0,0,0,1922, - 1923,1,0,0,0,1923,1924,5,187,0,0,1924,1927,3,210,105,0,1925,1926,5,187, - 0,0,1926,1928,3,214,107,0,1927,1925,1,0,0,0,1927,1928,1,0,0,0,1928,1931, - 1,0,0,0,1929,1930,5,187,0,0,1930,1932,3,216,108,0,1931,1929,1,0,0,0,1931, - 1932,1,0,0,0,1932,1935,1,0,0,0,1933,1934,5,187,0,0,1934,1936,3,218,109, - 0,1935,1933,1,0,0,0,1935,1936,1,0,0,0,1936,209,1,0,0,0,1937,1948,5,165, - 0,0,1938,1940,5,187,0,0,1939,1938,1,0,0,0,1939,1940,1,0,0,0,1940,1941, - 1,0,0,0,1941,1943,5,4,0,0,1942,1944,5,187,0,0,1943,1942,1,0,0,0,1943, - 1944,1,0,0,0,1944,1945,1,0,0,0,1945,1947,3,212,106,0,1946,1939,1,0,0, - 0,1947,1950,1,0,0,0,1948,1946,1,0,0,0,1948,1949,1,0,0,0,1949,1966,1,0, - 0,0,1950,1948,1,0,0,0,1951,1962,3,212,106,0,1952,1954,5,187,0,0,1953, - 1952,1,0,0,0,1953,1954,1,0,0,0,1954,1955,1,0,0,0,1955,1957,5,4,0,0,1956, - 1958,5,187,0,0,1957,1956,1,0,0,0,1957,1958,1,0,0,0,1958,1959,1,0,0,0, - 1959,1961,3,212,106,0,1960,1953,1,0,0,0,1961,1964,1,0,0,0,1962,1960,1, - 0,0,0,1962,1963,1,0,0,0,1963,1966,1,0,0,0,1964,1962,1,0,0,0,1965,1937, - 1,0,0,0,1965,1951,1,0,0,0,1966,211,1,0,0,0,1967,1968,3,264,132,0,1968, - 1969,5,187,0,0,1969,1970,5,52,0,0,1970,1971,5,187,0,0,1971,1972,3,352, - 176,0,1972,1975,1,0,0,0,1973,1975,3,264,132,0,1974,1967,1,0,0,0,1974, - 1973,1,0,0,0,1975,213,1,0,0,0,1976,1977,5,124,0,0,1977,1978,5,187,0,0, - 1978,1979,5,57,0,0,1979,1980,5,187,0,0,1980,1988,3,220,110,0,1981,1983, - 5,4,0,0,1982,1984,5,187,0,0,1983,1982,1,0,0,0,1983,1984,1,0,0,0,1984, - 1985,1,0,0,0,1985,1987,3,220,110,0,1986,1981,1,0,0,0,1987,1990,1,0,0, - 0,1988,1986,1,0,0,0,1988,1989,1,0,0,0,1989,215,1,0,0,0,1990,1988,1,0, - 0,0,1991,1992,5,166,0,0,1992,1993,5,187,0,0,1993,1994,3,264,132,0,1994, - 217,1,0,0,0,1995,1996,5,105,0,0,1996,1997,5,187,0,0,1997,1998,3,264,132, - 0,1998,219,1,0,0,0,1999,2004,3,264,132,0,2000,2002,5,187,0,0,2001,2000, - 1,0,0,0,2001,2002,1,0,0,0,2002,2003,1,0,0,0,2003,2005,7,1,0,0,2004,2001, - 1,0,0,0,2004,2005,1,0,0,0,2005,221,1,0,0,0,2006,2007,5,153,0,0,2007,2008, - 5,187,0,0,2008,2009,3,264,132,0,2009,223,1,0,0,0,2010,2021,3,226,113, - 0,2011,2013,5,187,0,0,2012,2011,1,0,0,0,2012,2013,1,0,0,0,2013,2014,1, - 0,0,0,2014,2016,5,4,0,0,2015,2017,5,187,0,0,2016,2015,1,0,0,0,2016,2017, - 1,0,0,0,2017,2018,1,0,0,0,2018,2020,3,226,113,0,2019,2012,1,0,0,0,2020, - 2023,1,0,0,0,2021,2019,1,0,0,0,2021,2022,1,0,0,0,2022,225,1,0,0,0,2023, - 2021,1,0,0,0,2024,2026,3,352,176,0,2025,2027,5,187,0,0,2026,2025,1,0, - 0,0,2026,2027,1,0,0,0,2027,2028,1,0,0,0,2028,2030,5,6,0,0,2029,2031,5, - 187,0,0,2030,2029,1,0,0,0,2030,2031,1,0,0,0,2031,2032,1,0,0,0,2032,2033, - 3,228,114,0,2033,2036,1,0,0,0,2034,2036,3,228,114,0,2035,2024,1,0,0,0, - 2035,2034,1,0,0,0,2036,227,1,0,0,0,2037,2038,3,230,115,0,2038,229,1,0, - 0,0,2039,2046,3,232,116,0,2040,2042,5,187,0,0,2041,2040,1,0,0,0,2041, - 2042,1,0,0,0,2042,2043,1,0,0,0,2043,2045,3,234,117,0,2044,2041,1,0,0, - 0,2045,2048,1,0,0,0,2046,2044,1,0,0,0,2046,2047,1,0,0,0,2047,2054,1,0, - 0,0,2048,2046,1,0,0,0,2049,2050,5,2,0,0,2050,2051,3,230,115,0,2051,2052, - 5,3,0,0,2052,2054,1,0,0,0,2053,2039,1,0,0,0,2053,2049,1,0,0,0,2054,231, - 1,0,0,0,2055,2057,5,2,0,0,2056,2058,5,187,0,0,2057,2056,1,0,0,0,2057, - 2058,1,0,0,0,2058,2063,1,0,0,0,2059,2061,3,352,176,0,2060,2062,5,187, - 0,0,2061,2060,1,0,0,0,2061,2062,1,0,0,0,2062,2064,1,0,0,0,2063,2059,1, - 0,0,0,2063,2064,1,0,0,0,2064,2069,1,0,0,0,2065,2067,3,244,122,0,2066, - 2068,5,187,0,0,2067,2066,1,0,0,0,2067,2068,1,0,0,0,2068,2070,1,0,0,0, - 2069,2065,1,0,0,0,2069,2070,1,0,0,0,2070,2075,1,0,0,0,2071,2073,3,240, - 120,0,2072,2074,5,187,0,0,2073,2072,1,0,0,0,2073,2074,1,0,0,0,2074,2076, - 1,0,0,0,2075,2071,1,0,0,0,2075,2076,1,0,0,0,2076,2077,1,0,0,0,2077,2078, - 5,3,0,0,2078,233,1,0,0,0,2079,2081,3,236,118,0,2080,2082,5,187,0,0,2081, - 2080,1,0,0,0,2081,2082,1,0,0,0,2082,2083,1,0,0,0,2083,2084,3,232,116, - 0,2084,235,1,0,0,0,2085,2087,3,372,186,0,2086,2088,5,187,0,0,2087,2086, - 1,0,0,0,2087,2088,1,0,0,0,2088,2089,1,0,0,0,2089,2091,3,376,188,0,2090, - 2092,5,187,0,0,2091,2090,1,0,0,0,2091,2092,1,0,0,0,2092,2094,1,0,0,0, - 2093,2095,3,238,119,0,2094,2093,1,0,0,0,2094,2095,1,0,0,0,2095,2097,1, - 0,0,0,2096,2098,5,187,0,0,2097,2096,1,0,0,0,2097,2098,1,0,0,0,2098,2099, - 1,0,0,0,2099,2100,3,376,188,0,2100,2130,1,0,0,0,2101,2103,3,376,188,0, - 2102,2104,5,187,0,0,2103,2102,1,0,0,0,2103,2104,1,0,0,0,2104,2106,1,0, - 0,0,2105,2107,3,238,119,0,2106,2105,1,0,0,0,2106,2107,1,0,0,0,2107,2109, - 1,0,0,0,2108,2110,5,187,0,0,2109,2108,1,0,0,0,2109,2110,1,0,0,0,2110, - 2111,1,0,0,0,2111,2113,3,376,188,0,2112,2114,5,187,0,0,2113,2112,1,0, - 0,0,2113,2114,1,0,0,0,2114,2115,1,0,0,0,2115,2116,3,374,187,0,2116,2130, - 1,0,0,0,2117,2119,3,376,188,0,2118,2120,5,187,0,0,2119,2118,1,0,0,0,2119, - 2120,1,0,0,0,2120,2122,1,0,0,0,2121,2123,3,238,119,0,2122,2121,1,0,0, - 0,2122,2123,1,0,0,0,2123,2125,1,0,0,0,2124,2126,5,187,0,0,2125,2124,1, - 0,0,0,2125,2126,1,0,0,0,2126,2127,1,0,0,0,2127,2128,3,376,188,0,2128, - 2130,1,0,0,0,2129,2085,1,0,0,0,2129,2101,1,0,0,0,2129,2117,1,0,0,0,2130, - 237,1,0,0,0,2131,2133,5,7,0,0,2132,2134,5,187,0,0,2133,2132,1,0,0,0,2133, - 2134,1,0,0,0,2134,2139,1,0,0,0,2135,2137,3,352,176,0,2136,2138,5,187, - 0,0,2137,2136,1,0,0,0,2137,2138,1,0,0,0,2138,2140,1,0,0,0,2139,2135,1, - 0,0,0,2139,2140,1,0,0,0,2140,2145,1,0,0,0,2141,2143,3,242,121,0,2142, - 2144,5,187,0,0,2143,2142,1,0,0,0,2143,2144,1,0,0,0,2144,2146,1,0,0,0, - 2145,2141,1,0,0,0,2145,2146,1,0,0,0,2146,2151,1,0,0,0,2147,2149,3,246, - 123,0,2148,2150,5,187,0,0,2149,2148,1,0,0,0,2149,2150,1,0,0,0,2150,2152, - 1,0,0,0,2151,2147,1,0,0,0,2151,2152,1,0,0,0,2152,2157,1,0,0,0,2153,2155, - 3,240,120,0,2154,2156,5,187,0,0,2155,2154,1,0,0,0,2155,2156,1,0,0,0,2156, - 2158,1,0,0,0,2157,2153,1,0,0,0,2157,2158,1,0,0,0,2158,2159,1,0,0,0,2159, - 2160,5,8,0,0,2160,239,1,0,0,0,2161,2163,5,9,0,0,2162,2164,5,187,0,0,2163, - 2162,1,0,0,0,2163,2164,1,0,0,0,2164,2198,1,0,0,0,2165,2167,3,360,180, - 0,2166,2168,5,187,0,0,2167,2166,1,0,0,0,2167,2168,1,0,0,0,2168,2169,1, - 0,0,0,2169,2171,5,168,0,0,2170,2172,5,187,0,0,2171,2170,1,0,0,0,2171, - 2172,1,0,0,0,2172,2173,1,0,0,0,2173,2175,3,264,132,0,2174,2176,5,187, - 0,0,2175,2174,1,0,0,0,2175,2176,1,0,0,0,2176,2195,1,0,0,0,2177,2179,5, - 4,0,0,2178,2180,5,187,0,0,2179,2178,1,0,0,0,2179,2180,1,0,0,0,2180,2181, - 1,0,0,0,2181,2183,3,360,180,0,2182,2184,5,187,0,0,2183,2182,1,0,0,0,2183, - 2184,1,0,0,0,2184,2185,1,0,0,0,2185,2187,5,168,0,0,2186,2188,5,187,0, - 0,2187,2186,1,0,0,0,2187,2188,1,0,0,0,2188,2189,1,0,0,0,2189,2191,3,264, - 132,0,2190,2192,5,187,0,0,2191,2190,1,0,0,0,2191,2192,1,0,0,0,2192,2194, - 1,0,0,0,2193,2177,1,0,0,0,2194,2197,1,0,0,0,2195,2193,1,0,0,0,2195,2196, - 1,0,0,0,2196,2199,1,0,0,0,2197,2195,1,0,0,0,2198,2165,1,0,0,0,2198,2199, - 1,0,0,0,2199,2200,1,0,0,0,2200,2201,5,10,0,0,2201,241,1,0,0,0,2202,2204, - 5,168,0,0,2203,2205,5,187,0,0,2204,2203,1,0,0,0,2204,2205,1,0,0,0,2205, - 2206,1,0,0,0,2206,2220,3,262,131,0,2207,2209,5,187,0,0,2208,2207,1,0, - 0,0,2208,2209,1,0,0,0,2209,2210,1,0,0,0,2210,2212,5,11,0,0,2211,2213, - 5,168,0,0,2212,2211,1,0,0,0,2212,2213,1,0,0,0,2213,2215,1,0,0,0,2214, - 2216,5,187,0,0,2215,2214,1,0,0,0,2215,2216,1,0,0,0,2216,2217,1,0,0,0, - 2217,2219,3,262,131,0,2218,2208,1,0,0,0,2219,2222,1,0,0,0,2220,2218,1, - 0,0,0,2220,2221,1,0,0,0,2221,243,1,0,0,0,2222,2220,1,0,0,0,2223,2225, - 5,168,0,0,2224,2226,5,187,0,0,2225,2224,1,0,0,0,2225,2226,1,0,0,0,2226, - 2227,1,0,0,0,2227,2244,3,260,130,0,2228,2230,5,187,0,0,2229,2228,1,0, - 0,0,2229,2230,1,0,0,0,2230,2236,1,0,0,0,2231,2233,5,11,0,0,2232,2234, - 5,168,0,0,2233,2232,1,0,0,0,2233,2234,1,0,0,0,2234,2237,1,0,0,0,2235, - 2237,5,168,0,0,2236,2231,1,0,0,0,2236,2235,1,0,0,0,2237,2239,1,0,0,0, - 2238,2240,5,187,0,0,2239,2238,1,0,0,0,2239,2240,1,0,0,0,2240,2241,1,0, - 0,0,2241,2243,3,260,130,0,2242,2229,1,0,0,0,2243,2246,1,0,0,0,2244,2242, - 1,0,0,0,2244,2245,1,0,0,0,2245,245,1,0,0,0,2246,2244,1,0,0,0,2247,2252, - 5,165,0,0,2248,2250,5,187,0,0,2249,2248,1,0,0,0,2249,2250,1,0,0,0,2250, - 2251,1,0,0,0,2251,2253,3,248,124,0,2252,2249,1,0,0,0,2252,2253,1,0,0, - 0,2253,2258,1,0,0,0,2254,2256,5,187,0,0,2255,2254,1,0,0,0,2255,2256,1, - 0,0,0,2256,2257,1,0,0,0,2257,2259,3,250,125,0,2258,2255,1,0,0,0,2258, - 2259,1,0,0,0,2259,2264,1,0,0,0,2260,2262,5,187,0,0,2261,2260,1,0,0,0, - 2261,2262,1,0,0,0,2262,2263,1,0,0,0,2263,2265,3,252,126,0,2264,2261,1, - 0,0,0,2264,2265,1,0,0,0,2265,247,1,0,0,0,2266,2267,5,48,0,0,2267,2269, - 5,187,0,0,2268,2266,1,0,0,0,2268,2269,1,0,0,0,2269,2270,1,0,0,0,2270, - 2272,5,156,0,0,2271,2273,5,187,0,0,2272,2271,1,0,0,0,2272,2273,1,0,0, - 0,2273,2274,1,0,0,0,2274,2276,5,2,0,0,2275,2277,5,187,0,0,2276,2275,1, - 0,0,0,2276,2277,1,0,0,0,2277,2278,1,0,0,0,2278,2280,3,360,180,0,2279, - 2281,5,187,0,0,2280,2279,1,0,0,0,2280,2281,1,0,0,0,2281,2282,1,0,0,0, - 2282,2283,5,3,0,0,2283,2291,1,0,0,0,2284,2291,5,136,0,0,2285,2286,5,48, - 0,0,2286,2287,5,187,0,0,2287,2291,5,136,0,0,2288,2291,5,143,0,0,2289, - 2291,5,45,0,0,2290,2268,1,0,0,0,2290,2284,1,0,0,0,2290,2285,1,0,0,0,2290, - 2288,1,0,0,0,2290,2289,1,0,0,0,2291,249,1,0,0,0,2292,2294,3,256,128,0, - 2293,2292,1,0,0,0,2293,2294,1,0,0,0,2294,2296,1,0,0,0,2295,2297,5,187, - 0,0,2296,2295,1,0,0,0,2296,2297,1,0,0,0,2297,2298,1,0,0,0,2298,2300,5, - 169,0,0,2299,2301,5,187,0,0,2300,2299,1,0,0,0,2300,2301,1,0,0,0,2301, - 2303,1,0,0,0,2302,2304,3,258,129,0,2303,2302,1,0,0,0,2303,2304,1,0,0, - 0,2304,2307,1,0,0,0,2305,2307,3,362,181,0,2306,2293,1,0,0,0,2306,2305, - 1,0,0,0,2307,251,1,0,0,0,2308,2310,5,2,0,0,2309,2311,5,187,0,0,2310,2309, - 1,0,0,0,2310,2311,1,0,0,0,2311,2312,1,0,0,0,2312,2314,3,352,176,0,2313, - 2315,5,187,0,0,2314,2313,1,0,0,0,2314,2315,1,0,0,0,2315,2316,1,0,0,0, - 2316,2318,5,4,0,0,2317,2319,5,187,0,0,2318,2317,1,0,0,0,2318,2319,1,0, - 0,0,2319,2320,1,0,0,0,2320,2332,3,352,176,0,2321,2323,5,187,0,0,2322, - 2321,1,0,0,0,2322,2323,1,0,0,0,2323,2324,1,0,0,0,2324,2326,5,11,0,0,2325, - 2327,5,187,0,0,2326,2325,1,0,0,0,2326,2327,1,0,0,0,2327,2328,1,0,0,0, - 2328,2330,3,222,111,0,2329,2331,5,187,0,0,2330,2329,1,0,0,0,2330,2331, - 1,0,0,0,2331,2333,1,0,0,0,2332,2322,1,0,0,0,2332,2333,1,0,0,0,2333,2353, - 1,0,0,0,2334,2336,5,187,0,0,2335,2334,1,0,0,0,2335,2336,1,0,0,0,2336, - 2337,1,0,0,0,2337,2339,5,11,0,0,2338,2340,5,187,0,0,2339,2338,1,0,0,0, - 2339,2340,1,0,0,0,2340,2341,1,0,0,0,2341,2343,3,254,127,0,2342,2344,5, - 187,0,0,2343,2342,1,0,0,0,2343,2344,1,0,0,0,2344,2345,1,0,0,0,2345,2347, - 5,4,0,0,2346,2348,5,187,0,0,2347,2346,1,0,0,0,2347,2348,1,0,0,0,2348, - 2349,1,0,0,0,2349,2351,3,254,127,0,2350,2352,5,187,0,0,2351,2350,1,0, - 0,0,2351,2352,1,0,0,0,2352,2354,1,0,0,0,2353,2335,1,0,0,0,2353,2354,1, - 0,0,0,2354,2355,1,0,0,0,2355,2356,5,3,0,0,2356,253,1,0,0,0,2357,2359, - 5,9,0,0,2358,2360,5,187,0,0,2359,2358,1,0,0,0,2359,2360,1,0,0,0,2360, - 2362,1,0,0,0,2361,2363,3,210,105,0,2362,2361,1,0,0,0,2362,2363,1,0,0, - 0,2363,2365,1,0,0,0,2364,2366,5,187,0,0,2365,2364,1,0,0,0,2365,2366,1, - 0,0,0,2366,2367,1,0,0,0,2367,2368,5,10,0,0,2368,255,1,0,0,0,2369,2370, - 5,174,0,0,2370,257,1,0,0,0,2371,2372,5,174,0,0,2372,259,1,0,0,0,2373, - 2376,3,366,183,0,2374,2375,5,5,0,0,2375,2377,3,366,183,0,2376,2374,1, - 0,0,0,2376,2377,1,0,0,0,2377,261,1,0,0,0,2378,2379,3,366,183,0,2379,263, - 1,0,0,0,2380,2381,3,266,133,0,2381,265,1,0,0,0,2382,2389,3,268,134,0, - 2383,2384,5,187,0,0,2384,2385,5,123,0,0,2385,2386,5,187,0,0,2386,2388, - 3,268,134,0,2387,2383,1,0,0,0,2388,2391,1,0,0,0,2389,2387,1,0,0,0,2389, - 2390,1,0,0,0,2390,267,1,0,0,0,2391,2389,1,0,0,0,2392,2399,3,270,135,0, - 2393,2394,5,187,0,0,2394,2395,5,157,0,0,2395,2396,5,187,0,0,2396,2398, - 3,270,135,0,2397,2393,1,0,0,0,2398,2401,1,0,0,0,2399,2397,1,0,0,0,2399, - 2400,1,0,0,0,2400,269,1,0,0,0,2401,2399,1,0,0,0,2402,2409,3,272,136,0, - 2403,2404,5,187,0,0,2404,2405,5,51,0,0,2405,2406,5,187,0,0,2406,2408, - 3,272,136,0,2407,2403,1,0,0,0,2408,2411,1,0,0,0,2409,2407,1,0,0,0,2409, - 2410,1,0,0,0,2410,271,1,0,0,0,2411,2409,1,0,0,0,2412,2414,5,116,0,0,2413, - 2415,5,187,0,0,2414,2413,1,0,0,0,2414,2415,1,0,0,0,2415,2417,1,0,0,0, - 2416,2412,1,0,0,0,2417,2420,1,0,0,0,2418,2416,1,0,0,0,2418,2419,1,0,0, - 0,2419,2421,1,0,0,0,2420,2418,1,0,0,0,2421,2422,3,274,137,0,2422,273, - 1,0,0,0,2423,2433,3,278,139,0,2424,2426,5,187,0,0,2425,2424,1,0,0,0,2425, - 2426,1,0,0,0,2426,2427,1,0,0,0,2427,2429,3,276,138,0,2428,2430,5,187, - 0,0,2429,2428,1,0,0,0,2429,2430,1,0,0,0,2430,2431,1,0,0,0,2431,2432,3, - 278,139,0,2432,2434,1,0,0,0,2433,2425,1,0,0,0,2433,2434,1,0,0,0,2434, - 2472,1,0,0,0,2435,2437,3,278,139,0,2436,2438,5,187,0,0,2437,2436,1,0, - 0,0,2437,2438,1,0,0,0,2438,2439,1,0,0,0,2439,2441,5,167,0,0,2440,2442, - 5,187,0,0,2441,2440,1,0,0,0,2441,2442,1,0,0,0,2442,2443,1,0,0,0,2443, - 2444,3,278,139,0,2444,2445,1,0,0,0,2445,2446,6,137,-1,0,2446,2472,1,0, - 0,0,2447,2449,3,278,139,0,2448,2450,5,187,0,0,2449,2448,1,0,0,0,2449, - 2450,1,0,0,0,2450,2451,1,0,0,0,2451,2453,3,276,138,0,2452,2454,5,187, - 0,0,2453,2452,1,0,0,0,2453,2454,1,0,0,0,2454,2455,1,0,0,0,2455,2465,3, - 278,139,0,2456,2458,5,187,0,0,2457,2456,1,0,0,0,2457,2458,1,0,0,0,2458, - 2459,1,0,0,0,2459,2461,3,276,138,0,2460,2462,5,187,0,0,2461,2460,1,0, - 0,0,2461,2462,1,0,0,0,2462,2463,1,0,0,0,2463,2464,3,278,139,0,2464,2466, - 1,0,0,0,2465,2457,1,0,0,0,2466,2467,1,0,0,0,2467,2465,1,0,0,0,2467,2468, - 1,0,0,0,2468,2469,1,0,0,0,2469,2470,6,137,-1,0,2470,2472,1,0,0,0,2471, - 2423,1,0,0,0,2471,2435,1,0,0,0,2471,2447,1,0,0,0,2472,275,1,0,0,0,2473, - 2474,7,2,0,0,2474,277,1,0,0,0,2475,2486,3,280,140,0,2476,2478,5,187,0, - 0,2477,2476,1,0,0,0,2477,2478,1,0,0,0,2478,2479,1,0,0,0,2479,2481,5,11, - 0,0,2480,2482,5,187,0,0,2481,2480,1,0,0,0,2481,2482,1,0,0,0,2482,2483, - 1,0,0,0,2483,2485,3,280,140,0,2484,2477,1,0,0,0,2485,2488,1,0,0,0,2486, - 2484,1,0,0,0,2486,2487,1,0,0,0,2487,279,1,0,0,0,2488,2486,1,0,0,0,2489, - 2500,3,282,141,0,2490,2492,5,187,0,0,2491,2490,1,0,0,0,2491,2492,1,0, - 0,0,2492,2493,1,0,0,0,2493,2495,5,17,0,0,2494,2496,5,187,0,0,2495,2494, - 1,0,0,0,2495,2496,1,0,0,0,2496,2497,1,0,0,0,2497,2499,3,282,141,0,2498, - 2491,1,0,0,0,2499,2502,1,0,0,0,2500,2498,1,0,0,0,2500,2501,1,0,0,0,2501, - 281,1,0,0,0,2502,2500,1,0,0,0,2503,2515,3,286,143,0,2504,2506,5,187,0, - 0,2505,2504,1,0,0,0,2505,2506,1,0,0,0,2506,2507,1,0,0,0,2507,2509,3,284, - 142,0,2508,2510,5,187,0,0,2509,2508,1,0,0,0,2509,2510,1,0,0,0,2510,2511, - 1,0,0,0,2511,2512,3,286,143,0,2512,2514,1,0,0,0,2513,2505,1,0,0,0,2514, - 2517,1,0,0,0,2515,2513,1,0,0,0,2515,2516,1,0,0,0,2516,283,1,0,0,0,2517, - 2515,1,0,0,0,2518,2519,7,3,0,0,2519,285,1,0,0,0,2520,2532,3,290,145,0, - 2521,2523,5,187,0,0,2522,2521,1,0,0,0,2522,2523,1,0,0,0,2523,2524,1,0, - 0,0,2524,2526,3,288,144,0,2525,2527,5,187,0,0,2526,2525,1,0,0,0,2526, - 2527,1,0,0,0,2527,2528,1,0,0,0,2528,2529,3,290,145,0,2529,2531,1,0,0, - 0,2530,2522,1,0,0,0,2531,2534,1,0,0,0,2532,2530,1,0,0,0,2532,2533,1,0, - 0,0,2533,287,1,0,0,0,2534,2532,1,0,0,0,2535,2536,7,4,0,0,2536,289,1,0, - 0,0,2537,2549,3,294,147,0,2538,2540,5,187,0,0,2539,2538,1,0,0,0,2539, - 2540,1,0,0,0,2540,2541,1,0,0,0,2541,2543,3,292,146,0,2542,2544,5,187, - 0,0,2543,2542,1,0,0,0,2543,2544,1,0,0,0,2544,2545,1,0,0,0,2545,2546,3, - 294,147,0,2546,2548,1,0,0,0,2547,2539,1,0,0,0,2548,2551,1,0,0,0,2549, - 2547,1,0,0,0,2549,2550,1,0,0,0,2550,291,1,0,0,0,2551,2549,1,0,0,0,2552, - 2553,7,5,0,0,2553,293,1,0,0,0,2554,2565,3,296,148,0,2555,2557,5,187,0, - 0,2556,2555,1,0,0,0,2556,2557,1,0,0,0,2557,2558,1,0,0,0,2558,2560,5,23, - 0,0,2559,2561,5,187,0,0,2560,2559,1,0,0,0,2560,2561,1,0,0,0,2561,2562, - 1,0,0,0,2562,2564,3,296,148,0,2563,2556,1,0,0,0,2564,2567,1,0,0,0,2565, - 2563,1,0,0,0,2565,2566,1,0,0,0,2566,295,1,0,0,0,2567,2565,1,0,0,0,2568, - 2576,3,306,153,0,2569,2577,3,300,150,0,2570,2572,3,298,149,0,2571,2570, - 1,0,0,0,2572,2573,1,0,0,0,2573,2571,1,0,0,0,2573,2574,1,0,0,0,2574,2577, - 1,0,0,0,2575,2577,3,304,152,0,2576,2569,1,0,0,0,2576,2571,1,0,0,0,2576, - 2575,1,0,0,0,2576,2577,1,0,0,0,2577,297,1,0,0,0,2578,2579,5,187,0,0,2579, - 2581,5,99,0,0,2580,2582,5,187,0,0,2581,2580,1,0,0,0,2581,2582,1,0,0,0, - 2582,2583,1,0,0,0,2583,2598,3,308,154,0,2584,2585,5,7,0,0,2585,2586,3, - 264,132,0,2586,2587,5,8,0,0,2587,2598,1,0,0,0,2588,2590,5,7,0,0,2589, - 2591,3,264,132,0,2590,2589,1,0,0,0,2590,2591,1,0,0,0,2591,2592,1,0,0, - 0,2592,2594,7,6,0,0,2593,2595,3,264,132,0,2594,2593,1,0,0,0,2594,2595, - 1,0,0,0,2595,2596,1,0,0,0,2596,2598,5,8,0,0,2597,2578,1,0,0,0,2597,2584, - 1,0,0,0,2597,2588,1,0,0,0,2598,299,1,0,0,0,2599,2611,3,302,151,0,2600, - 2601,5,187,0,0,2601,2602,5,138,0,0,2602,2603,5,187,0,0,2603,2611,5,154, - 0,0,2604,2605,5,187,0,0,2605,2606,5,82,0,0,2606,2607,5,187,0,0,2607,2611, - 5,154,0,0,2608,2609,5,187,0,0,2609,2611,5,66,0,0,2610,2599,1,0,0,0,2610, - 2600,1,0,0,0,2610,2604,1,0,0,0,2610,2608,1,0,0,0,2611,2613,1,0,0,0,2612, - 2614,5,187,0,0,2613,2612,1,0,0,0,2613,2614,1,0,0,0,2614,2615,1,0,0,0, - 2615,2616,3,308,154,0,2616,301,1,0,0,0,2617,2619,5,187,0,0,2618,2617, - 1,0,0,0,2618,2619,1,0,0,0,2619,2620,1,0,0,0,2620,2621,5,24,0,0,2621,303, - 1,0,0,0,2622,2623,5,187,0,0,2623,2624,5,102,0,0,2624,2625,5,187,0,0,2625, - 2633,5,118,0,0,2626,2627,5,187,0,0,2627,2628,5,102,0,0,2628,2629,5,187, - 0,0,2629,2630,5,116,0,0,2630,2631,5,187,0,0,2631,2633,5,118,0,0,2632, - 2622,1,0,0,0,2632,2626,1,0,0,0,2633,305,1,0,0,0,2634,2636,5,170,0,0,2635, - 2637,5,187,0,0,2636,2635,1,0,0,0,2636,2637,1,0,0,0,2637,2639,1,0,0,0, - 2638,2634,1,0,0,0,2639,2642,1,0,0,0,2640,2638,1,0,0,0,2640,2641,1,0,0, - 0,2641,2643,1,0,0,0,2642,2640,1,0,0,0,2643,2648,3,308,154,0,2644,2646, - 5,187,0,0,2645,2644,1,0,0,0,2645,2646,1,0,0,0,2646,2647,1,0,0,0,2647, - 2649,5,171,0,0,2648,2645,1,0,0,0,2648,2649,1,0,0,0,2649,307,1,0,0,0,2650, - 2657,3,310,155,0,2651,2653,5,187,0,0,2652,2651,1,0,0,0,2652,2653,1,0, - 0,0,2653,2654,1,0,0,0,2654,2656,3,346,173,0,2655,2652,1,0,0,0,2656,2659, - 1,0,0,0,2657,2655,1,0,0,0,2657,2658,1,0,0,0,2658,309,1,0,0,0,2659,2657, - 1,0,0,0,2660,2670,3,318,159,0,2661,2670,3,356,178,0,2662,2670,3,348,174, - 0,2663,2670,3,330,165,0,2664,2670,3,332,166,0,2665,2670,3,342,171,0,2666, - 2670,3,344,172,0,2667,2670,3,352,176,0,2668,2670,3,312,156,0,2669,2660, - 1,0,0,0,2669,2661,1,0,0,0,2669,2662,1,0,0,0,2669,2663,1,0,0,0,2669,2664, - 1,0,0,0,2669,2665,1,0,0,0,2669,2666,1,0,0,0,2669,2667,1,0,0,0,2669,2668, - 1,0,0,0,2670,311,1,0,0,0,2671,2673,5,48,0,0,2672,2674,5,187,0,0,2673, - 2672,1,0,0,0,2673,2674,1,0,0,0,2674,2675,1,0,0,0,2675,2677,5,2,0,0,2676, - 2678,5,187,0,0,2677,2676,1,0,0,0,2677,2678,1,0,0,0,2678,2679,1,0,0,0, - 2679,2681,3,314,157,0,2680,2682,5,187,0,0,2681,2680,1,0,0,0,2681,2682, - 1,0,0,0,2682,2683,1,0,0,0,2683,2684,5,3,0,0,2684,2728,1,0,0,0,2685,2687, - 5,46,0,0,2686,2688,5,187,0,0,2687,2686,1,0,0,0,2687,2688,1,0,0,0,2688, - 2689,1,0,0,0,2689,2691,5,2,0,0,2690,2692,5,187,0,0,2691,2690,1,0,0,0, - 2691,2692,1,0,0,0,2692,2693,1,0,0,0,2693,2695,3,314,157,0,2694,2696,5, - 187,0,0,2695,2694,1,0,0,0,2695,2696,1,0,0,0,2696,2697,1,0,0,0,2697,2698, - 5,3,0,0,2698,2728,1,0,0,0,2699,2701,5,117,0,0,2700,2702,5,187,0,0,2701, - 2700,1,0,0,0,2701,2702,1,0,0,0,2702,2703,1,0,0,0,2703,2705,5,2,0,0,2704, - 2706,5,187,0,0,2705,2704,1,0,0,0,2705,2706,1,0,0,0,2706,2707,1,0,0,0, - 2707,2709,3,314,157,0,2708,2710,5,187,0,0,2709,2708,1,0,0,0,2709,2710, - 1,0,0,0,2710,2711,1,0,0,0,2711,2712,5,3,0,0,2712,2728,1,0,0,0,2713,2715, - 5,158,0,0,2714,2716,5,187,0,0,2715,2714,1,0,0,0,2715,2716,1,0,0,0,2716, - 2717,1,0,0,0,2717,2719,5,2,0,0,2718,2720,5,187,0,0,2719,2718,1,0,0,0, - 2719,2720,1,0,0,0,2720,2721,1,0,0,0,2721,2723,3,314,157,0,2722,2724,5, - 187,0,0,2723,2722,1,0,0,0,2723,2724,1,0,0,0,2724,2725,1,0,0,0,2725,2726, - 5,3,0,0,2726,2728,1,0,0,0,2727,2671,1,0,0,0,2727,2685,1,0,0,0,2727,2699, - 1,0,0,0,2727,2713,1,0,0,0,2728,313,1,0,0,0,2729,2730,3,316,158,0,2730, - 2731,5,187,0,0,2731,2732,3,222,111,0,2732,315,1,0,0,0,2733,2734,3,352, - 176,0,2734,2735,5,187,0,0,2735,2736,5,99,0,0,2736,2737,5,187,0,0,2737, - 2738,3,264,132,0,2738,317,1,0,0,0,2739,2746,3,354,177,0,2740,2746,5,172, - 0,0,2741,2746,3,320,160,0,2742,2746,5,118,0,0,2743,2746,3,322,161,0,2744, - 2746,3,326,163,0,2745,2739,1,0,0,0,2745,2740,1,0,0,0,2745,2741,1,0,0, - 0,2745,2742,1,0,0,0,2745,2743,1,0,0,0,2745,2744,1,0,0,0,2746,319,1,0, - 0,0,2747,2748,7,7,0,0,2748,321,1,0,0,0,2749,2751,5,7,0,0,2750,2752,5, - 187,0,0,2751,2750,1,0,0,0,2751,2752,1,0,0,0,2752,2766,1,0,0,0,2753,2755, - 3,264,132,0,2754,2756,5,187,0,0,2755,2754,1,0,0,0,2755,2756,1,0,0,0,2756, - 2763,1,0,0,0,2757,2759,3,324,162,0,2758,2760,5,187,0,0,2759,2758,1,0, - 0,0,2759,2760,1,0,0,0,2760,2762,1,0,0,0,2761,2757,1,0,0,0,2762,2765,1, - 0,0,0,2763,2761,1,0,0,0,2763,2764,1,0,0,0,2764,2767,1,0,0,0,2765,2763, - 1,0,0,0,2766,2753,1,0,0,0,2766,2767,1,0,0,0,2767,2768,1,0,0,0,2768,2769, - 5,8,0,0,2769,323,1,0,0,0,2770,2772,5,4,0,0,2771,2773,5,187,0,0,2772,2771, - 1,0,0,0,2772,2773,1,0,0,0,2773,2775,1,0,0,0,2774,2776,3,264,132,0,2775, - 2774,1,0,0,0,2775,2776,1,0,0,0,2776,325,1,0,0,0,2777,2779,5,9,0,0,2778, - 2780,5,187,0,0,2779,2778,1,0,0,0,2779,2780,1,0,0,0,2780,2781,1,0,0,0, - 2781,2783,3,328,164,0,2782,2784,5,187,0,0,2783,2782,1,0,0,0,2783,2784, - 1,0,0,0,2784,2795,1,0,0,0,2785,2787,5,4,0,0,2786,2788,5,187,0,0,2787, - 2786,1,0,0,0,2787,2788,1,0,0,0,2788,2789,1,0,0,0,2789,2791,3,328,164, - 0,2790,2792,5,187,0,0,2791,2790,1,0,0,0,2791,2792,1,0,0,0,2792,2794,1, - 0,0,0,2793,2785,1,0,0,0,2794,2797,1,0,0,0,2795,2793,1,0,0,0,2795,2796, - 1,0,0,0,2796,2798,1,0,0,0,2797,2795,1,0,0,0,2798,2799,5,10,0,0,2799,327, - 1,0,0,0,2800,2803,3,368,184,0,2801,2803,5,172,0,0,2802,2800,1,0,0,0,2802, - 2801,1,0,0,0,2803,2805,1,0,0,0,2804,2806,5,187,0,0,2805,2804,1,0,0,0, - 2805,2806,1,0,0,0,2806,2807,1,0,0,0,2807,2809,5,168,0,0,2808,2810,5,187, - 0,0,2809,2808,1,0,0,0,2809,2810,1,0,0,0,2810,2811,1,0,0,0,2811,2812,3, - 264,132,0,2812,329,1,0,0,0,2813,2815,5,2,0,0,2814,2816,5,187,0,0,2815, - 2814,1,0,0,0,2815,2816,1,0,0,0,2816,2817,1,0,0,0,2817,2819,3,264,132, - 0,2818,2820,5,187,0,0,2819,2818,1,0,0,0,2819,2820,1,0,0,0,2820,2821,1, - 0,0,0,2821,2822,5,3,0,0,2822,331,1,0,0,0,2823,2825,5,68,0,0,2824,2826, - 5,187,0,0,2825,2824,1,0,0,0,2825,2826,1,0,0,0,2826,2827,1,0,0,0,2827, - 2829,5,2,0,0,2828,2830,5,187,0,0,2829,2828,1,0,0,0,2829,2830,1,0,0,0, - 2830,2831,1,0,0,0,2831,2833,5,165,0,0,2832,2834,5,187,0,0,2833,2832,1, - 0,0,0,2833,2834,1,0,0,0,2834,2835,1,0,0,0,2835,2901,5,3,0,0,2836,2838, - 5,60,0,0,2837,2839,5,187,0,0,2838,2837,1,0,0,0,2838,2839,1,0,0,0,2839, - 2840,1,0,0,0,2840,2842,5,2,0,0,2841,2843,5,187,0,0,2842,2841,1,0,0,0, - 2842,2843,1,0,0,0,2843,2844,1,0,0,0,2844,2846,3,336,168,0,2845,2847,5, - 187,0,0,2846,2845,1,0,0,0,2846,2847,1,0,0,0,2847,2858,1,0,0,0,2848,2850, - 5,52,0,0,2849,2851,5,187,0,0,2850,2849,1,0,0,0,2850,2851,1,0,0,0,2851, - 2852,1,0,0,0,2852,2859,3,134,67,0,2853,2855,5,4,0,0,2854,2856,5,187,0, - 0,2855,2854,1,0,0,0,2855,2856,1,0,0,0,2856,2857,1,0,0,0,2857,2859,3,336, - 168,0,2858,2848,1,0,0,0,2858,2853,1,0,0,0,2859,2861,1,0,0,0,2860,2862, - 5,187,0,0,2861,2860,1,0,0,0,2861,2862,1,0,0,0,2862,2863,1,0,0,0,2863, - 2864,5,3,0,0,2864,2901,1,0,0,0,2865,2867,3,334,167,0,2866,2868,5,187, - 0,0,2867,2866,1,0,0,0,2867,2868,1,0,0,0,2868,2869,1,0,0,0,2869,2871,5, - 2,0,0,2870,2872,5,187,0,0,2871,2870,1,0,0,0,2871,2872,1,0,0,0,2872,2877, - 1,0,0,0,2873,2875,5,78,0,0,2874,2876,5,187,0,0,2875,2874,1,0,0,0,2875, - 2876,1,0,0,0,2876,2878,1,0,0,0,2877,2873,1,0,0,0,2877,2878,1,0,0,0,2878, - 2896,1,0,0,0,2879,2881,3,336,168,0,2880,2882,5,187,0,0,2881,2880,1,0, - 0,0,2881,2882,1,0,0,0,2882,2893,1,0,0,0,2883,2885,5,4,0,0,2884,2886,5, - 187,0,0,2885,2884,1,0,0,0,2885,2886,1,0,0,0,2886,2887,1,0,0,0,2887,2889, - 3,336,168,0,2888,2890,5,187,0,0,2889,2888,1,0,0,0,2889,2890,1,0,0,0,2890, - 2892,1,0,0,0,2891,2883,1,0,0,0,2892,2895,1,0,0,0,2893,2891,1,0,0,0,2893, - 2894,1,0,0,0,2894,2897,1,0,0,0,2895,2893,1,0,0,0,2896,2879,1,0,0,0,2896, - 2897,1,0,0,0,2897,2898,1,0,0,0,2898,2899,5,3,0,0,2899,2901,1,0,0,0,2900, - 2823,1,0,0,0,2900,2836,1,0,0,0,2900,2865,1,0,0,0,2901,333,1,0,0,0,2902, - 2903,3,368,184,0,2903,335,1,0,0,0,2904,2906,3,368,184,0,2905,2907,5,187, - 0,0,2906,2905,1,0,0,0,2906,2907,1,0,0,0,2907,2908,1,0,0,0,2908,2909,5, - 168,0,0,2909,2911,5,6,0,0,2910,2912,5,187,0,0,2911,2910,1,0,0,0,2911, - 2912,1,0,0,0,2912,2914,1,0,0,0,2913,2904,1,0,0,0,2913,2914,1,0,0,0,2914, - 2915,1,0,0,0,2915,2918,3,264,132,0,2916,2918,3,338,169,0,2917,2913,1, - 0,0,0,2917,2916,1,0,0,0,2918,337,1,0,0,0,2919,2921,3,340,170,0,2920,2922, - 5,187,0,0,2921,2920,1,0,0,0,2921,2922,1,0,0,0,2922,2923,1,0,0,0,2923, - 2924,5,170,0,0,2924,2926,5,15,0,0,2925,2927,5,187,0,0,2926,2925,1,0,0, - 0,2926,2927,1,0,0,0,2927,2928,1,0,0,0,2928,2930,3,264,132,0,2929,2931, - 5,187,0,0,2930,2929,1,0,0,0,2930,2931,1,0,0,0,2931,339,1,0,0,0,2932,2957, - 3,368,184,0,2933,2935,5,2,0,0,2934,2936,5,187,0,0,2935,2934,1,0,0,0,2935, - 2936,1,0,0,0,2936,2937,1,0,0,0,2937,2939,3,368,184,0,2938,2940,5,187, - 0,0,2939,2938,1,0,0,0,2939,2940,1,0,0,0,2940,2951,1,0,0,0,2941,2943,5, - 4,0,0,2942,2944,5,187,0,0,2943,2942,1,0,0,0,2943,2944,1,0,0,0,2944,2945, - 1,0,0,0,2945,2947,3,368,184,0,2946,2948,5,187,0,0,2947,2946,1,0,0,0,2947, - 2948,1,0,0,0,2948,2950,1,0,0,0,2949,2941,1,0,0,0,2950,2953,1,0,0,0,2951, - 2949,1,0,0,0,2951,2952,1,0,0,0,2952,2954,1,0,0,0,2953,2951,1,0,0,0,2954, - 2955,5,3,0,0,2955,2957,1,0,0,0,2956,2932,1,0,0,0,2956,2933,1,0,0,0,2957, - 341,1,0,0,0,2958,2963,3,232,116,0,2959,2961,5,187,0,0,2960,2959,1,0,0, - 0,2960,2961,1,0,0,0,2961,2962,1,0,0,0,2962,2964,3,234,117,0,2963,2960, - 1,0,0,0,2964,2965,1,0,0,0,2965,2963,1,0,0,0,2965,2966,1,0,0,0,2966,343, - 1,0,0,0,2967,2969,7,8,0,0,2968,2970,5,187,0,0,2969,2968,1,0,0,0,2969, - 2970,1,0,0,0,2970,2971,1,0,0,0,2971,2973,5,9,0,0,2972,2974,5,187,0,0, - 2973,2972,1,0,0,0,2973,2974,1,0,0,0,2974,2975,1,0,0,0,2975,2977,5,109, - 0,0,2976,2978,5,187,0,0,2977,2976,1,0,0,0,2977,2978,1,0,0,0,2978,2979, - 1,0,0,0,2979,2984,3,224,112,0,2980,2982,5,187,0,0,2981,2980,1,0,0,0,2981, - 2982,1,0,0,0,2982,2983,1,0,0,0,2983,2985,3,222,111,0,2984,2981,1,0,0, - 0,2984,2985,1,0,0,0,2985,2990,1,0,0,0,2986,2988,5,187,0,0,2987,2986,1, - 0,0,0,2987,2988,1,0,0,0,2988,2989,1,0,0,0,2989,2991,3,186,93,0,2990,2987, - 1,0,0,0,2990,2991,1,0,0,0,2991,2993,1,0,0,0,2992,2994,5,187,0,0,2993, - 2992,1,0,0,0,2993,2994,1,0,0,0,2994,2995,1,0,0,0,2995,2996,5,10,0,0,2996, - 345,1,0,0,0,2997,2999,5,5,0,0,2998,3000,5,187,0,0,2999,2998,1,0,0,0,2999, - 3000,1,0,0,0,3000,3003,1,0,0,0,3001,3004,3,360,180,0,3002,3004,5,165, - 0,0,3003,3001,1,0,0,0,3003,3002,1,0,0,0,3004,347,1,0,0,0,3005,3010,5, - 59,0,0,3006,3008,5,187,0,0,3007,3006,1,0,0,0,3007,3008,1,0,0,0,3008,3009, - 1,0,0,0,3009,3011,3,350,175,0,3010,3007,1,0,0,0,3011,3012,1,0,0,0,3012, - 3010,1,0,0,0,3012,3013,1,0,0,0,3013,3028,1,0,0,0,3014,3016,5,59,0,0,3015, - 3017,5,187,0,0,3016,3015,1,0,0,0,3016,3017,1,0,0,0,3017,3018,1,0,0,0, - 3018,3023,3,264,132,0,3019,3021,5,187,0,0,3020,3019,1,0,0,0,3020,3021, - 1,0,0,0,3021,3022,1,0,0,0,3022,3024,3,350,175,0,3023,3020,1,0,0,0,3024, - 3025,1,0,0,0,3025,3023,1,0,0,0,3025,3026,1,0,0,0,3026,3028,1,0,0,0,3027, - 3005,1,0,0,0,3027,3014,1,0,0,0,3028,3037,1,0,0,0,3029,3031,5,187,0,0, - 3030,3029,1,0,0,0,3030,3031,1,0,0,0,3031,3032,1,0,0,0,3032,3034,5,80, - 0,0,3033,3035,5,187,0,0,3034,3033,1,0,0,0,3034,3035,1,0,0,0,3035,3036, - 1,0,0,0,3036,3038,3,264,132,0,3037,3030,1,0,0,0,3037,3038,1,0,0,0,3038, - 3040,1,0,0,0,3039,3041,5,187,0,0,3040,3039,1,0,0,0,3040,3041,1,0,0,0, - 3041,3042,1,0,0,0,3042,3043,5,81,0,0,3043,349,1,0,0,0,3044,3046,5,152, - 0,0,3045,3047,5,187,0,0,3046,3045,1,0,0,0,3046,3047,1,0,0,0,3047,3048, - 1,0,0,0,3048,3050,3,264,132,0,3049,3051,5,187,0,0,3050,3049,1,0,0,0,3050, - 3051,1,0,0,0,3051,3052,1,0,0,0,3052,3054,5,141,0,0,3053,3055,5,187,0, - 0,3054,3053,1,0,0,0,3054,3055,1,0,0,0,3055,3056,1,0,0,0,3056,3057,3,264, - 132,0,3057,351,1,0,0,0,3058,3059,3,368,184,0,3059,353,1,0,0,0,3060,3063, - 3,364,182,0,3061,3063,3,362,181,0,3062,3060,1,0,0,0,3062,3061,1,0,0,0, - 3063,355,1,0,0,0,3064,3067,5,25,0,0,3065,3068,3,368,184,0,3066,3068,5, - 174,0,0,3067,3065,1,0,0,0,3067,3066,1,0,0,0,3068,357,1,0,0,0,3069,3071, - 3,310,155,0,3070,3072,5,187,0,0,3071,3070,1,0,0,0,3071,3072,1,0,0,0,3072, - 3073,1,0,0,0,3073,3074,3,346,173,0,3074,359,1,0,0,0,3075,3076,3,368,184, - 0,3076,361,1,0,0,0,3077,3078,5,174,0,0,3078,363,1,0,0,0,3079,3080,7,9, - 0,0,3080,365,1,0,0,0,3081,3084,3,368,184,0,3082,3083,5,5,0,0,3083,3085, - 3,368,184,0,3084,3082,1,0,0,0,3084,3085,1,0,0,0,3085,367,1,0,0,0,3086, - 3092,5,183,0,0,3087,3088,5,186,0,0,3088,3092,6,184,-1,0,3089,3092,5,175, - 0,0,3090,3092,3,370,185,0,3091,3086,1,0,0,0,3091,3087,1,0,0,0,3091,3089, - 1,0,0,0,3091,3090,1,0,0,0,3092,369,1,0,0,0,3093,3094,7,10,0,0,3094,371, - 1,0,0,0,3095,3096,7,11,0,0,3096,373,1,0,0,0,3097,3098,7,12,0,0,3098,375, - 1,0,0,0,3099,3100,7,13,0,0,3100,377,1,0,0,0,529,380,384,389,393,398,401, - 405,408,436,442,449,453,457,461,464,468,472,476,481,485,487,494,498,507, - 512,522,526,530,535,548,552,560,564,568,572,580,584,588,592,607,612,618, - 622,625,628,634,638,643,646,651,655,659,664,682,693,699,703,710,730,734, - 737,740,743,746,750,755,759,769,773,778,783,788,794,798,802,807,814,818, - 822,825,842,846,850,854,858,861,864,872,877,881,885,889,898,902,907,911, - 915,919,923,925,929,933,935,943,948,952,956,960,965,971,975,988,992,995, - 998,1001,1005,1009,1012,1015,1019,1023,1029,1033,1037,1041,1047,1051, - 1055,1059,1065,1069,1074,1086,1090,1094,1099,1117,1124,1137,1144,1160, - 1164,1173,1181,1184,1194,1197,1205,1208,1214,1217,1223,1238,1256,1263, - 1270,1281,1304,1313,1319,1323,1328,1337,1341,1346,1352,1358,1364,1368, - 1372,1378,1382,1386,1392,1396,1400,1406,1410,1414,1418,1422,1428,1432, - 1436,1440,1444,1454,1460,1467,1472,1478,1483,1500,1506,1512,1516,1520, - 1529,1543,1548,1553,1557,1562,1568,1573,1576,1580,1584,1588,1594,1598, - 1603,1608,1612,1615,1617,1621,1625,1631,1635,1640,1644,1653,1659,1667, - 1671,1675,1679,1686,1690,1694,1698,1701,1704,1711,1717,1721,1726,1733, - 1736,1739,1744,1748,1752,1757,1761,1770,1774,1779,1793,1795,1797,1802, - 1812,1818,1825,1838,1842,1846,1850,1855,1860,1864,1868,1872,1876,1880, - 1886,1890,1894,1898,1903,1909,1912,1918,1921,1927,1931,1935,1939,1943, - 1948,1953,1957,1962,1965,1974,1983,1988,2001,2004,2012,2016,2021,2026, - 2030,2035,2041,2046,2053,2057,2061,2063,2067,2069,2073,2075,2081,2087, - 2091,2094,2097,2103,2106,2109,2113,2119,2122,2125,2129,2133,2137,2139, - 2143,2145,2149,2151,2155,2157,2163,2167,2171,2175,2179,2183,2187,2191, - 2195,2198,2204,2208,2212,2215,2220,2225,2229,2233,2236,2239,2244,2249, - 2252,2255,2258,2261,2264,2268,2272,2276,2280,2290,2293,2296,2300,2303, - 2306,2310,2314,2318,2322,2326,2330,2332,2335,2339,2343,2347,2351,2353, - 2359,2362,2365,2376,2389,2399,2409,2414,2418,2425,2429,2433,2437,2441, - 2449,2453,2457,2461,2467,2471,2477,2481,2486,2491,2495,2500,2505,2509, - 2515,2522,2526,2532,2539,2543,2549,2556,2560,2565,2573,2576,2581,2590, - 2594,2597,2610,2613,2618,2632,2636,2640,2645,2648,2652,2657,2669,2673, - 2677,2681,2687,2691,2695,2701,2705,2709,2715,2719,2723,2727,2745,2751, - 2755,2759,2763,2766,2772,2775,2779,2783,2787,2791,2795,2802,2805,2809, - 2815,2819,2825,2829,2833,2838,2842,2846,2850,2855,2858,2861,2867,2871, - 2875,2877,2881,2885,2889,2893,2896,2900,2906,2911,2913,2917,2921,2926, - 2930,2935,2939,2943,2947,2951,2956,2960,2965,2969,2973,2977,2981,2984, - 2987,2990,2993,2999,3003,3007,3012,3016,3020,3025,3027,3030,3034,3037, - 3040,3046,3050,3054,3062,3067,3071,3084,3091 + 166,166,2,0,13,13,26,29,2,0,15,15,30,33,2,0,34,44,170,170,3535,0,380, + 1,0,0,0,2,400,1,0,0,0,4,438,1,0,0,0,6,440,1,0,0,0,8,466,1,0,0,0,10,514, + 1,0,0,0,12,516,1,0,0,0,14,546,1,0,0,0,16,576,1,0,0,0,18,596,1,0,0,0,20, + 602,1,0,0,0,22,658,1,0,0,0,24,660,1,0,0,0,26,670,1,0,0,0,28,684,1,0,0, + 0,30,688,1,0,0,0,32,692,1,0,0,0,34,701,1,0,0,0,36,707,1,0,0,0,38,727, + 1,0,0,0,40,729,1,0,0,0,42,741,1,0,0,0,44,784,1,0,0,0,46,798,1,0,0,0,48, + 842,1,0,0,0,50,844,1,0,0,0,52,850,1,0,0,0,54,908,1,0,0,0,56,979,1,0,0, + 0,58,1022,1,0,0,0,60,1024,1,0,0,0,62,1044,1,0,0,0,64,1062,1,0,0,0,66, + 1080,1,0,0,0,68,1094,1,0,0,0,70,1105,1,0,0,0,72,1119,1,0,0,0,74,1127, + 1,0,0,0,76,1144,1,0,0,0,78,1161,1,0,0,0,80,1163,1,0,0,0,82,1170,1,0,0, + 0,84,1183,1,0,0,0,86,1194,1,0,0,0,88,1214,1,0,0,0,90,1225,1,0,0,0,92, + 1227,1,0,0,0,94,1240,1,0,0,0,96,1244,1,0,0,0,98,1248,1,0,0,0,100,1259, + 1,0,0,0,102,1273,1,0,0,0,104,1275,1,0,0,0,106,1289,1,0,0,0,108,1293,1, + 0,0,0,110,1302,1,0,0,0,112,1308,1,0,0,0,114,1316,1,0,0,0,116,1325,1,0, + 0,0,118,1334,1,0,0,0,120,1348,1,0,0,0,122,1352,1,0,0,0,124,1366,1,0,0, + 0,126,1377,1,0,0,0,128,1393,1,0,0,0,130,1407,1,0,0,0,132,1421,1,0,0,0, + 134,1443,1,0,0,0,136,1471,1,0,0,0,138,1480,1,0,0,0,140,1487,1,0,0,0,142, + 1495,1,0,0,0,144,1497,1,0,0,0,146,1502,1,0,0,0,148,1517,1,0,0,0,150,1523, + 1,0,0,0,152,1525,1,0,0,0,154,1537,1,0,0,0,156,1548,1,0,0,0,158,1552,1, + 0,0,0,160,1556,1,0,0,0,162,1579,1,0,0,0,164,1593,1,0,0,0,166,1597,1,0, + 0,0,168,1634,1,0,0,0,170,1640,1,0,0,0,172,1652,1,0,0,0,174,1670,1,0,0, + 0,176,1676,1,0,0,0,178,1678,1,0,0,0,180,1728,1,0,0,0,182,1732,1,0,0,0, + 184,1746,1,0,0,0,186,1765,1,0,0,0,188,1780,1,0,0,0,190,1796,1,0,0,0,192, + 1817,1,0,0,0,194,1827,1,0,0,0,196,1833,1,0,0,0,198,1855,1,0,0,0,200,1889, + 1,0,0,0,202,1891,1,0,0,0,204,1903,1,0,0,0,206,1923,1,0,0,0,208,1931,1, + 0,0,0,210,1938,1,0,0,0,212,1982,1,0,0,0,214,1991,1,0,0,0,216,1993,1,0, + 0,0,218,2008,1,0,0,0,220,2012,1,0,0,0,222,2016,1,0,0,0,224,2023,1,0,0, + 0,226,2027,1,0,0,0,228,2052,1,0,0,0,230,2054,1,0,0,0,232,2070,1,0,0,0, + 234,2072,1,0,0,0,236,2096,1,0,0,0,238,2146,1,0,0,0,240,2148,1,0,0,0,242, + 2178,1,0,0,0,244,2219,1,0,0,0,246,2240,1,0,0,0,248,2264,1,0,0,0,250,2307, + 1,0,0,0,252,2323,1,0,0,0,254,2325,1,0,0,0,256,2374,1,0,0,0,258,2386,1, + 0,0,0,260,2388,1,0,0,0,262,2390,1,0,0,0,264,2395,1,0,0,0,266,2397,1,0, + 0,0,268,2399,1,0,0,0,270,2409,1,0,0,0,272,2419,1,0,0,0,274,2435,1,0,0, + 0,276,2488,1,0,0,0,278,2490,1,0,0,0,280,2492,1,0,0,0,282,2506,1,0,0,0, + 284,2520,1,0,0,0,286,2535,1,0,0,0,288,2537,1,0,0,0,290,2552,1,0,0,0,292, + 2554,1,0,0,0,294,2569,1,0,0,0,296,2571,1,0,0,0,298,2585,1,0,0,0,300,2614, + 1,0,0,0,302,2627,1,0,0,0,304,2635,1,0,0,0,306,2649,1,0,0,0,308,2657,1, + 0,0,0,310,2667,1,0,0,0,312,2686,1,0,0,0,314,2744,1,0,0,0,316,2746,1,0, + 0,0,318,2750,1,0,0,0,320,2762,1,0,0,0,322,2764,1,0,0,0,324,2766,1,0,0, + 0,326,2787,1,0,0,0,328,2794,1,0,0,0,330,2819,1,0,0,0,332,2830,1,0,0,0, + 334,2917,1,0,0,0,336,2919,1,0,0,0,338,2934,1,0,0,0,340,2936,1,0,0,0,342, + 2973,1,0,0,0,344,2975,1,0,0,0,346,2984,1,0,0,0,348,3014,1,0,0,0,350,3044, + 1,0,0,0,352,3061,1,0,0,0,354,3075,1,0,0,0,356,3079,1,0,0,0,358,3081,1, + 0,0,0,360,3086,1,0,0,0,362,3092,1,0,0,0,364,3094,1,0,0,0,366,3096,1,0, + 0,0,368,3098,1,0,0,0,370,3108,1,0,0,0,372,3110,1,0,0,0,374,3112,1,0,0, + 0,376,3114,1,0,0,0,378,3116,1,0,0,0,380,391,3,2,1,0,381,383,5,187,0,0, + 382,381,1,0,0,0,382,383,1,0,0,0,383,384,1,0,0,0,384,386,5,1,0,0,385,387, + 5,187,0,0,386,385,1,0,0,0,386,387,1,0,0,0,387,388,1,0,0,0,388,390,3,2, + 1,0,389,382,1,0,0,0,390,393,1,0,0,0,391,389,1,0,0,0,391,392,1,0,0,0,392, + 395,1,0,0,0,393,391,1,0,0,0,394,396,5,187,0,0,395,394,1,0,0,0,395,396, + 1,0,0,0,396,397,1,0,0,0,397,398,5,0,0,1,398,1,1,0,0,0,399,401,3,142,71, + 0,400,399,1,0,0,0,400,401,1,0,0,0,401,403,1,0,0,0,402,404,5,187,0,0,403, + 402,1,0,0,0,403,404,1,0,0,0,404,405,1,0,0,0,405,410,3,4,2,0,406,408,5, + 187,0,0,407,406,1,0,0,0,407,408,1,0,0,0,408,409,1,0,0,0,409,411,5,1,0, + 0,410,407,1,0,0,0,410,411,1,0,0,0,411,3,1,0,0,0,412,439,3,160,80,0,413, + 439,3,36,18,0,414,439,3,82,41,0,415,439,3,84,42,0,416,439,3,52,26,0,417, + 439,3,54,27,0,418,439,3,56,28,0,419,439,3,74,37,0,420,439,3,76,38,0,421, + 439,3,98,49,0,422,439,3,100,50,0,423,439,3,6,3,0,424,439,3,12,6,0,425, + 439,3,14,7,0,426,439,3,38,19,0,427,439,3,42,21,0,428,439,3,40,20,0,429, + 439,3,148,74,0,430,439,3,150,75,0,431,439,3,16,8,0,432,439,3,18,9,0,433, + 439,3,20,10,0,434,439,3,28,14,0,435,439,3,30,15,0,436,439,3,32,16,0,437, + 439,3,34,17,0,438,412,1,0,0,0,438,413,1,0,0,0,438,414,1,0,0,0,438,415, + 1,0,0,0,438,416,1,0,0,0,438,417,1,0,0,0,438,418,1,0,0,0,438,419,1,0,0, + 0,438,420,1,0,0,0,438,421,1,0,0,0,438,422,1,0,0,0,438,423,1,0,0,0,438, + 424,1,0,0,0,438,425,1,0,0,0,438,426,1,0,0,0,438,427,1,0,0,0,438,428,1, + 0,0,0,438,429,1,0,0,0,438,430,1,0,0,0,438,431,1,0,0,0,438,432,1,0,0,0, + 438,433,1,0,0,0,438,434,1,0,0,0,438,435,1,0,0,0,438,436,1,0,0,0,438,437, + 1,0,0,0,439,5,1,0,0,0,440,441,5,67,0,0,441,442,5,187,0,0,442,444,3,368, + 184,0,443,445,3,8,4,0,444,443,1,0,0,0,444,445,1,0,0,0,445,446,1,0,0,0, + 446,447,5,187,0,0,447,448,5,88,0,0,448,449,5,187,0,0,449,463,3,10,5,0, + 450,452,5,187,0,0,451,450,1,0,0,0,451,452,1,0,0,0,452,453,1,0,0,0,453, + 455,5,2,0,0,454,456,5,187,0,0,455,454,1,0,0,0,455,456,1,0,0,0,456,457, + 1,0,0,0,457,459,3,26,13,0,458,460,5,187,0,0,459,458,1,0,0,0,459,460,1, + 0,0,0,460,461,1,0,0,0,461,462,5,3,0,0,462,464,1,0,0,0,463,451,1,0,0,0, + 463,464,1,0,0,0,464,7,1,0,0,0,465,467,5,187,0,0,466,465,1,0,0,0,466,467, + 1,0,0,0,467,468,1,0,0,0,468,470,5,2,0,0,469,471,5,187,0,0,470,469,1,0, + 0,0,470,471,1,0,0,0,471,489,1,0,0,0,472,483,3,368,184,0,473,475,5,187, + 0,0,474,473,1,0,0,0,474,475,1,0,0,0,475,476,1,0,0,0,476,478,5,4,0,0,477, + 479,5,187,0,0,478,477,1,0,0,0,478,479,1,0,0,0,479,480,1,0,0,0,480,482, + 3,368,184,0,481,474,1,0,0,0,482,485,1,0,0,0,483,481,1,0,0,0,483,484,1, + 0,0,0,484,487,1,0,0,0,485,483,1,0,0,0,486,488,5,187,0,0,487,486,1,0,0, + 0,487,488,1,0,0,0,488,490,1,0,0,0,489,472,1,0,0,0,489,490,1,0,0,0,490, + 491,1,0,0,0,491,492,5,3,0,0,492,9,1,0,0,0,493,515,3,48,24,0,494,496,5, + 2,0,0,495,497,5,187,0,0,496,495,1,0,0,0,496,497,1,0,0,0,497,498,1,0,0, + 0,498,500,3,160,80,0,499,501,5,187,0,0,500,499,1,0,0,0,500,501,1,0,0, + 0,501,502,1,0,0,0,502,503,5,3,0,0,503,515,1,0,0,0,504,515,3,358,179,0, + 505,515,3,354,177,0,506,507,3,354,177,0,507,509,5,5,0,0,508,510,5,187, + 0,0,509,508,1,0,0,0,509,510,1,0,0,0,510,511,1,0,0,0,511,512,3,368,184, + 0,512,515,1,0,0,0,513,515,3,334,167,0,514,493,1,0,0,0,514,494,1,0,0,0, + 514,504,1,0,0,0,514,505,1,0,0,0,514,506,1,0,0,0,514,513,1,0,0,0,515,11, + 1,0,0,0,516,517,5,67,0,0,517,518,5,187,0,0,518,519,3,368,184,0,519,520, + 5,187,0,0,520,521,5,88,0,0,521,522,5,187,0,0,522,524,5,2,0,0,523,525, + 5,187,0,0,524,523,1,0,0,0,524,525,1,0,0,0,525,526,1,0,0,0,526,537,5,172, + 0,0,527,529,5,187,0,0,528,527,1,0,0,0,528,529,1,0,0,0,529,530,1,0,0,0, + 530,532,5,4,0,0,531,533,5,187,0,0,532,531,1,0,0,0,532,533,1,0,0,0,533, + 534,1,0,0,0,534,536,5,172,0,0,535,528,1,0,0,0,536,539,1,0,0,0,537,535, + 1,0,0,0,537,538,1,0,0,0,538,540,1,0,0,0,539,537,1,0,0,0,540,541,5,3,0, + 0,541,542,5,187,0,0,542,543,5,57,0,0,543,544,5,187,0,0,544,545,5,62,0, + 0,545,13,1,0,0,0,546,547,5,67,0,0,547,548,5,187,0,0,548,550,5,2,0,0,549, + 551,5,187,0,0,550,549,1,0,0,0,550,551,1,0,0,0,551,552,1,0,0,0,552,554, + 3,160,80,0,553,555,5,187,0,0,554,553,1,0,0,0,554,555,1,0,0,0,555,556, + 1,0,0,0,556,557,5,3,0,0,557,558,5,187,0,0,558,559,5,142,0,0,559,560,5, + 187,0,0,560,574,5,172,0,0,561,563,5,187,0,0,562,561,1,0,0,0,562,563,1, + 0,0,0,563,564,1,0,0,0,564,566,5,2,0,0,565,567,5,187,0,0,566,565,1,0,0, + 0,566,567,1,0,0,0,567,568,1,0,0,0,568,570,3,26,13,0,569,571,5,187,0,0, + 570,569,1,0,0,0,570,571,1,0,0,0,571,572,1,0,0,0,572,573,5,3,0,0,573,575, + 1,0,0,0,574,562,1,0,0,0,574,575,1,0,0,0,575,15,1,0,0,0,576,577,5,85,0, + 0,577,578,5,187,0,0,578,579,5,71,0,0,579,580,5,187,0,0,580,594,5,172, + 0,0,581,583,5,187,0,0,582,581,1,0,0,0,582,583,1,0,0,0,583,584,1,0,0,0, + 584,586,5,2,0,0,585,587,5,187,0,0,586,585,1,0,0,0,586,587,1,0,0,0,587, + 588,1,0,0,0,588,590,3,26,13,0,589,591,5,187,0,0,590,589,1,0,0,0,590,591, + 1,0,0,0,591,592,1,0,0,0,592,593,5,3,0,0,593,595,1,0,0,0,594,582,1,0,0, + 0,594,595,1,0,0,0,595,17,1,0,0,0,596,597,5,96,0,0,597,598,5,187,0,0,598, + 599,5,71,0,0,599,600,5,187,0,0,600,601,5,172,0,0,601,19,1,0,0,0,602,603, + 5,55,0,0,603,604,5,187,0,0,604,609,5,172,0,0,605,606,5,187,0,0,606,607, + 5,52,0,0,607,608,5,187,0,0,608,610,3,368,184,0,609,605,1,0,0,0,609,610, + 1,0,0,0,610,611,1,0,0,0,611,612,5,187,0,0,612,614,5,2,0,0,613,615,5,187, + 0,0,614,613,1,0,0,0,614,615,1,0,0,0,615,616,1,0,0,0,616,617,5,72,0,0, + 617,618,5,187,0,0,618,627,3,370,185,0,619,621,5,187,0,0,620,619,1,0,0, + 0,620,621,1,0,0,0,621,622,1,0,0,0,622,624,5,4,0,0,623,625,5,187,0,0,624, + 623,1,0,0,0,624,625,1,0,0,0,625,626,1,0,0,0,626,628,3,26,13,0,627,620, + 1,0,0,0,627,628,1,0,0,0,628,630,1,0,0,0,629,631,5,187,0,0,630,629,1,0, + 0,0,630,631,1,0,0,0,631,632,1,0,0,0,632,633,5,3,0,0,633,21,1,0,0,0,634, + 648,3,370,185,0,635,637,5,187,0,0,636,635,1,0,0,0,636,637,1,0,0,0,637, + 638,1,0,0,0,638,640,5,6,0,0,639,641,5,187,0,0,640,639,1,0,0,0,640,641, + 1,0,0,0,641,649,1,0,0,0,642,644,5,187,0,0,643,642,1,0,0,0,644,647,1,0, + 0,0,645,643,1,0,0,0,645,646,1,0,0,0,646,649,1,0,0,0,647,645,1,0,0,0,648, + 636,1,0,0,0,648,645,1,0,0,0,649,650,1,0,0,0,650,655,3,320,160,0,651,653, + 5,187,0,0,652,651,1,0,0,0,652,653,1,0,0,0,653,654,1,0,0,0,654,656,3,24, + 12,0,655,652,1,0,0,0,655,656,1,0,0,0,656,659,1,0,0,0,657,659,3,370,185, + 0,658,634,1,0,0,0,658,657,1,0,0,0,659,23,1,0,0,0,660,662,5,2,0,0,661, + 663,5,187,0,0,662,661,1,0,0,0,662,663,1,0,0,0,663,664,1,0,0,0,664,666, + 3,370,185,0,665,667,5,187,0,0,666,665,1,0,0,0,666,667,1,0,0,0,667,668, + 1,0,0,0,668,669,5,3,0,0,669,25,1,0,0,0,670,681,3,22,11,0,671,673,5,187, + 0,0,672,671,1,0,0,0,672,673,1,0,0,0,673,674,1,0,0,0,674,676,5,4,0,0,675, + 677,5,187,0,0,676,675,1,0,0,0,676,677,1,0,0,0,677,678,1,0,0,0,678,680, + 3,22,11,0,679,672,1,0,0,0,680,683,1,0,0,0,681,679,1,0,0,0,681,682,1,0, + 0,0,682,27,1,0,0,0,683,681,1,0,0,0,684,685,5,77,0,0,685,686,5,187,0,0, + 686,687,3,368,184,0,687,29,1,0,0,0,688,689,5,151,0,0,689,690,5,187,0, + 0,690,691,3,368,184,0,691,31,1,0,0,0,692,693,5,69,0,0,693,694,5,187,0, + 0,694,695,5,92,0,0,695,696,5,187,0,0,696,699,3,368,184,0,697,698,5,187, + 0,0,698,700,5,46,0,0,699,697,1,0,0,0,699,700,1,0,0,0,700,33,1,0,0,0,701, + 702,5,151,0,0,702,703,5,187,0,0,703,704,5,92,0,0,704,705,5,187,0,0,705, + 706,3,368,184,0,706,35,1,0,0,0,707,710,5,50,0,0,708,709,5,187,0,0,709, + 711,3,368,184,0,710,708,1,0,0,0,710,711,1,0,0,0,711,37,1,0,0,0,712,713, + 5,58,0,0,713,714,5,187,0,0,714,716,3,370,185,0,715,717,5,187,0,0,716, + 715,1,0,0,0,716,717,1,0,0,0,717,718,1,0,0,0,718,720,5,6,0,0,719,721,5, + 187,0,0,720,719,1,0,0,0,720,721,1,0,0,0,721,722,1,0,0,0,722,723,3,266, + 133,0,723,728,1,0,0,0,724,725,5,58,0,0,725,726,5,187,0,0,726,728,3,334, + 167,0,727,712,1,0,0,0,727,724,1,0,0,0,728,39,1,0,0,0,729,730,5,63,0,0, + 730,731,5,187,0,0,731,732,5,119,0,0,732,733,5,187,0,0,733,734,5,140,0, + 0,734,735,5,187,0,0,735,736,3,368,184,0,736,737,5,187,0,0,737,738,5,102, + 0,0,738,739,5,187,0,0,739,740,5,172,0,0,740,41,1,0,0,0,741,742,5,69,0, + 0,742,743,5,187,0,0,743,744,5,108,0,0,744,745,5,187,0,0,745,747,3,336, + 168,0,746,748,5,187,0,0,747,746,1,0,0,0,747,748,1,0,0,0,748,749,1,0,0, + 0,749,751,5,2,0,0,750,752,5,187,0,0,751,750,1,0,0,0,751,752,1,0,0,0,752, + 754,1,0,0,0,753,755,3,44,22,0,754,753,1,0,0,0,754,755,1,0,0,0,755,757, + 1,0,0,0,756,758,5,187,0,0,757,756,1,0,0,0,757,758,1,0,0,0,758,760,1,0, + 0,0,759,761,3,46,23,0,760,759,1,0,0,0,760,761,1,0,0,0,761,772,1,0,0,0, + 762,764,5,187,0,0,763,762,1,0,0,0,763,764,1,0,0,0,764,765,1,0,0,0,765, + 767,5,4,0,0,766,768,5,187,0,0,767,766,1,0,0,0,767,768,1,0,0,0,768,769, + 1,0,0,0,769,771,3,46,23,0,770,763,1,0,0,0,771,774,1,0,0,0,772,770,1,0, + 0,0,772,773,1,0,0,0,773,776,1,0,0,0,774,772,1,0,0,0,775,777,5,187,0,0, + 776,775,1,0,0,0,776,777,1,0,0,0,777,778,1,0,0,0,778,779,5,3,0,0,779,780, + 5,187,0,0,780,781,5,52,0,0,781,782,5,187,0,0,782,783,3,266,133,0,783, + 43,1,0,0,0,784,795,3,370,185,0,785,787,5,187,0,0,786,785,1,0,0,0,786, + 787,1,0,0,0,787,788,1,0,0,0,788,790,5,4,0,0,789,791,5,187,0,0,790,789, + 1,0,0,0,790,791,1,0,0,0,791,792,1,0,0,0,792,794,3,370,185,0,793,786,1, + 0,0,0,794,797,1,0,0,0,795,793,1,0,0,0,795,796,1,0,0,0,796,45,1,0,0,0, + 797,795,1,0,0,0,798,800,3,370,185,0,799,801,5,187,0,0,800,799,1,0,0,0, + 800,801,1,0,0,0,801,802,1,0,0,0,802,803,5,168,0,0,803,805,5,6,0,0,804, + 806,5,187,0,0,805,804,1,0,0,0,805,806,1,0,0,0,806,807,1,0,0,0,807,808, + 3,320,160,0,808,47,1,0,0,0,809,811,5,7,0,0,810,812,5,187,0,0,811,810, + 1,0,0,0,811,812,1,0,0,0,812,813,1,0,0,0,813,824,5,172,0,0,814,816,5,187, + 0,0,815,814,1,0,0,0,815,816,1,0,0,0,816,817,1,0,0,0,817,819,5,4,0,0,818, + 820,5,187,0,0,819,818,1,0,0,0,819,820,1,0,0,0,820,821,1,0,0,0,821,823, + 5,172,0,0,822,815,1,0,0,0,823,826,1,0,0,0,824,822,1,0,0,0,824,825,1,0, + 0,0,825,827,1,0,0,0,826,824,1,0,0,0,827,843,5,8,0,0,828,843,5,172,0,0, + 829,831,5,91,0,0,830,832,5,187,0,0,831,830,1,0,0,0,831,832,1,0,0,0,832, + 833,1,0,0,0,833,835,5,2,0,0,834,836,5,187,0,0,835,834,1,0,0,0,835,836, + 1,0,0,0,836,837,1,0,0,0,837,839,5,172,0,0,838,840,5,187,0,0,839,838,1, + 0,0,0,839,840,1,0,0,0,840,841,1,0,0,0,841,843,5,3,0,0,842,809,1,0,0,0, + 842,828,1,0,0,0,842,829,1,0,0,0,843,49,1,0,0,0,844,845,5,98,0,0,845,846, + 5,187,0,0,846,847,5,116,0,0,847,848,5,187,0,0,848,849,5,83,0,0,849,51, + 1,0,0,0,850,851,5,69,0,0,851,852,5,187,0,0,852,853,5,115,0,0,853,854, + 5,187,0,0,854,855,5,140,0,0,855,859,5,187,0,0,856,857,3,50,25,0,857,858, + 5,187,0,0,858,860,1,0,0,0,859,856,1,0,0,0,859,860,1,0,0,0,860,861,1,0, + 0,0,861,889,3,368,184,0,862,864,5,187,0,0,863,862,1,0,0,0,863,864,1,0, + 0,0,864,865,1,0,0,0,865,867,5,2,0,0,866,868,5,187,0,0,867,866,1,0,0,0, + 867,868,1,0,0,0,868,869,1,0,0,0,869,871,3,122,61,0,870,872,5,187,0,0, + 871,870,1,0,0,0,871,872,1,0,0,0,872,878,1,0,0,0,873,875,5,4,0,0,874,876, + 5,187,0,0,875,874,1,0,0,0,875,876,1,0,0,0,876,877,1,0,0,0,877,879,3,126, + 63,0,878,873,1,0,0,0,878,879,1,0,0,0,879,881,1,0,0,0,880,882,5,187,0, + 0,881,880,1,0,0,0,881,882,1,0,0,0,882,883,1,0,0,0,883,884,5,3,0,0,884, + 890,1,0,0,0,885,886,5,187,0,0,886,887,5,52,0,0,887,888,5,187,0,0,888, + 890,3,160,80,0,889,863,1,0,0,0,889,885,1,0,0,0,890,906,1,0,0,0,891,892, + 5,187,0,0,892,894,5,154,0,0,893,895,5,187,0,0,894,893,1,0,0,0,894,895, + 1,0,0,0,895,896,1,0,0,0,896,898,5,2,0,0,897,899,5,187,0,0,898,897,1,0, + 0,0,898,899,1,0,0,0,899,900,1,0,0,0,900,902,3,26,13,0,901,903,5,187,0, + 0,902,901,1,0,0,0,902,903,1,0,0,0,903,904,1,0,0,0,904,905,5,3,0,0,905, + 907,1,0,0,0,906,891,1,0,0,0,906,907,1,0,0,0,907,53,1,0,0,0,908,909,5, + 69,0,0,909,910,5,187,0,0,910,911,5,129,0,0,911,912,5,187,0,0,912,915, + 5,140,0,0,913,914,5,187,0,0,914,916,5,93,0,0,915,913,1,0,0,0,915,916, + 1,0,0,0,916,919,1,0,0,0,917,918,5,187,0,0,918,920,3,50,25,0,919,917,1, + 0,0,0,919,920,1,0,0,0,920,921,1,0,0,0,921,922,5,187,0,0,922,924,3,368, + 184,0,923,925,5,187,0,0,924,923,1,0,0,0,924,925,1,0,0,0,925,926,1,0,0, + 0,926,928,5,2,0,0,927,929,5,187,0,0,928,927,1,0,0,0,928,929,1,0,0,0,929, + 930,1,0,0,0,930,932,3,66,33,0,931,933,5,187,0,0,932,931,1,0,0,0,932,933, + 1,0,0,0,933,960,1,0,0,0,934,936,5,4,0,0,935,937,5,187,0,0,936,935,1,0, + 0,0,936,937,1,0,0,0,937,938,1,0,0,0,938,940,3,122,61,0,939,941,5,187, + 0,0,940,939,1,0,0,0,940,941,1,0,0,0,941,943,1,0,0,0,942,934,1,0,0,0,942, + 943,1,0,0,0,943,952,1,0,0,0,944,946,5,4,0,0,945,947,5,187,0,0,946,945, + 1,0,0,0,946,947,1,0,0,0,947,948,1,0,0,0,948,950,3,370,185,0,949,951,5, + 187,0,0,950,949,1,0,0,0,950,951,1,0,0,0,951,953,1,0,0,0,952,944,1,0,0, + 0,952,953,1,0,0,0,953,954,1,0,0,0,954,961,5,3,0,0,955,956,5,3,0,0,956, + 957,5,187,0,0,957,958,5,52,0,0,958,959,5,187,0,0,959,961,3,160,80,0,960, + 942,1,0,0,0,960,955,1,0,0,0,961,977,1,0,0,0,962,963,5,187,0,0,963,965, + 5,154,0,0,964,966,5,187,0,0,965,964,1,0,0,0,965,966,1,0,0,0,966,967,1, + 0,0,0,967,969,5,2,0,0,968,970,5,187,0,0,969,968,1,0,0,0,969,970,1,0,0, + 0,970,971,1,0,0,0,971,973,3,26,13,0,972,974,5,187,0,0,973,972,1,0,0,0, + 973,974,1,0,0,0,974,975,1,0,0,0,975,976,5,3,0,0,976,978,1,0,0,0,977,962, + 1,0,0,0,977,978,1,0,0,0,978,55,1,0,0,0,979,982,5,69,0,0,980,981,5,187, + 0,0,981,983,3,370,185,0,982,980,1,0,0,0,982,983,1,0,0,0,983,984,1,0,0, + 0,984,985,5,187,0,0,985,988,5,97,0,0,986,987,5,187,0,0,987,989,3,368, + 184,0,988,986,1,0,0,0,988,989,1,0,0,0,989,992,1,0,0,0,990,991,5,187,0, + 0,991,993,3,50,25,0,992,990,1,0,0,0,992,993,1,0,0,0,993,994,1,0,0,0,994, + 995,5,187,0,0,995,996,5,90,0,0,996,997,5,187,0,0,997,998,3,58,29,0,998, + 999,5,187,0,0,999,1000,5,119,0,0,1000,1001,5,187,0,0,1001,1018,3,64,32, + 0,1002,1003,5,187,0,0,1003,1005,5,121,0,0,1004,1006,5,187,0,0,1005,1004, + 1,0,0,0,1005,1006,1,0,0,0,1006,1007,1,0,0,0,1007,1009,5,9,0,0,1008,1010, + 5,187,0,0,1009,1008,1,0,0,0,1009,1010,1,0,0,0,1010,1012,1,0,0,0,1011, + 1013,3,26,13,0,1012,1011,1,0,0,0,1012,1013,1,0,0,0,1013,1015,1,0,0,0, + 1014,1016,5,187,0,0,1015,1014,1,0,0,0,1015,1016,1,0,0,0,1016,1017,1,0, + 0,0,1017,1019,5,10,0,0,1018,1002,1,0,0,0,1018,1019,1,0,0,0,1019,57,1, + 0,0,0,1020,1023,3,60,30,0,1021,1023,3,62,31,0,1022,1020,1,0,0,0,1022, + 1021,1,0,0,0,1023,59,1,0,0,0,1024,1026,5,2,0,0,1025,1027,5,187,0,0,1026, + 1025,1,0,0,0,1026,1027,1,0,0,0,1027,1029,1,0,0,0,1028,1030,3,354,177, + 0,1029,1028,1,0,0,0,1029,1030,1,0,0,0,1030,1032,1,0,0,0,1031,1033,5,187, + 0,0,1032,1031,1,0,0,0,1032,1033,1,0,0,0,1033,1034,1,0,0,0,1034,1036,5, + 168,0,0,1035,1037,5,187,0,0,1036,1035,1,0,0,0,1036,1037,1,0,0,0,1037, + 1038,1,0,0,0,1038,1040,3,262,131,0,1039,1041,5,187,0,0,1040,1039,1,0, + 0,0,1040,1041,1,0,0,0,1041,1042,1,0,0,0,1042,1043,5,3,0,0,1043,61,1,0, + 0,0,1044,1046,5,2,0,0,1045,1047,5,187,0,0,1046,1045,1,0,0,0,1046,1047, + 1,0,0,0,1047,1048,1,0,0,0,1048,1050,5,3,0,0,1049,1051,5,187,0,0,1050, + 1049,1,0,0,0,1050,1051,1,0,0,0,1051,1052,1,0,0,0,1052,1054,3,238,119, + 0,1053,1055,5,187,0,0,1054,1053,1,0,0,0,1054,1055,1,0,0,0,1055,1056,1, + 0,0,0,1056,1058,5,2,0,0,1057,1059,5,187,0,0,1058,1057,1,0,0,0,1058,1059, + 1,0,0,0,1059,1060,1,0,0,0,1060,1061,5,3,0,0,1061,63,1,0,0,0,1062,1064, + 5,2,0,0,1063,1065,5,187,0,0,1064,1063,1,0,0,0,1064,1065,1,0,0,0,1065, + 1066,1,0,0,0,1066,1068,3,354,177,0,1067,1069,5,187,0,0,1068,1067,1,0, + 0,0,1068,1069,1,0,0,0,1069,1070,1,0,0,0,1070,1072,5,5,0,0,1071,1073,5, + 187,0,0,1072,1071,1,0,0,0,1072,1073,1,0,0,0,1073,1074,1,0,0,0,1074,1076, + 3,362,181,0,1075,1077,5,187,0,0,1076,1075,1,0,0,0,1076,1077,1,0,0,0,1077, + 1078,1,0,0,0,1078,1079,5,3,0,0,1079,65,1,0,0,0,1080,1091,3,68,34,0,1081, + 1083,5,187,0,0,1082,1081,1,0,0,0,1082,1083,1,0,0,0,1083,1084,1,0,0,0, + 1084,1086,5,4,0,0,1085,1087,5,187,0,0,1086,1085,1,0,0,0,1086,1087,1,0, + 0,0,1087,1088,1,0,0,0,1088,1090,3,68,34,0,1089,1082,1,0,0,0,1090,1093, + 1,0,0,0,1091,1089,1,0,0,0,1091,1092,1,0,0,0,1092,67,1,0,0,0,1093,1091, + 1,0,0,0,1094,1095,5,88,0,0,1095,1096,5,187,0,0,1096,1097,3,368,184,0, + 1097,1098,5,187,0,0,1098,1099,5,142,0,0,1099,1100,5,187,0,0,1100,1103, + 3,368,184,0,1101,1102,5,187,0,0,1102,1104,3,370,185,0,1103,1101,1,0,0, + 0,1103,1104,1,0,0,0,1104,69,1,0,0,0,1105,1116,3,72,36,0,1106,1108,5,187, + 0,0,1107,1106,1,0,0,0,1107,1108,1,0,0,0,1108,1109,1,0,0,0,1109,1111,5, + 4,0,0,1110,1112,5,187,0,0,1111,1110,1,0,0,0,1111,1112,1,0,0,0,1112,1113, + 1,0,0,0,1113,1115,3,72,36,0,1114,1107,1,0,0,0,1115,1118,1,0,0,0,1116, + 1114,1,0,0,0,1116,1117,1,0,0,0,1117,71,1,0,0,0,1118,1116,1,0,0,0,1119, + 1120,5,88,0,0,1120,1121,5,187,0,0,1121,1122,3,368,184,0,1122,1123,5,187, + 0,0,1123,1124,5,142,0,0,1124,1125,5,187,0,0,1125,1126,3,368,184,0,1126, + 73,1,0,0,0,1127,1128,5,69,0,0,1128,1129,5,187,0,0,1129,1130,5,134,0,0, + 1130,1134,5,187,0,0,1131,1132,3,50,25,0,1132,1133,5,187,0,0,1133,1135, + 1,0,0,0,1134,1131,1,0,0,0,1134,1135,1,0,0,0,1135,1136,1,0,0,0,1136,1141, + 3,368,184,0,1137,1138,5,187,0,0,1138,1140,3,78,39,0,1139,1137,1,0,0,0, + 1140,1143,1,0,0,0,1141,1139,1,0,0,0,1141,1142,1,0,0,0,1142,75,1,0,0,0, + 1143,1141,1,0,0,0,1144,1145,5,69,0,0,1145,1146,5,187,0,0,1146,1147,5, + 146,0,0,1147,1148,5,187,0,0,1148,1149,3,368,184,0,1149,1150,5,187,0,0, + 1150,1151,5,52,0,0,1151,1152,5,187,0,0,1152,1154,3,136,68,0,1153,1155, + 5,187,0,0,1154,1153,1,0,0,0,1154,1155,1,0,0,0,1155,77,1,0,0,0,1156,1162, + 3,86,43,0,1157,1162,3,88,44,0,1158,1162,3,90,45,0,1159,1162,3,92,46,0, + 1160,1162,3,94,47,0,1161,1156,1,0,0,0,1161,1157,1,0,0,0,1161,1158,1,0, + 0,0,1161,1159,1,0,0,0,1161,1160,1,0,0,0,1162,79,1,0,0,0,1163,1164,5,187, + 0,0,1164,1165,5,154,0,0,1165,1166,5,187,0,0,1166,1167,5,161,0,0,1167, + 1168,5,187,0,0,1168,1169,5,172,0,0,1169,81,1,0,0,0,1170,1171,5,69,0,0, + 1171,1172,5,187,0,0,1172,1173,5,160,0,0,1173,1177,5,187,0,0,1174,1175, + 3,50,25,0,1175,1176,5,187,0,0,1176,1178,1,0,0,0,1177,1174,1,0,0,0,1177, + 1178,1,0,0,0,1178,1179,1,0,0,0,1179,1181,3,354,177,0,1180,1182,3,80,40, + 0,1181,1180,1,0,0,0,1181,1182,1,0,0,0,1182,83,1,0,0,0,1183,1184,5,69, + 0,0,1184,1185,5,187,0,0,1185,1186,5,162,0,0,1186,1190,5,187,0,0,1187, + 1188,3,50,25,0,1188,1189,5,187,0,0,1189,1191,1,0,0,0,1190,1187,1,0,0, + 0,1190,1191,1,0,0,0,1191,1192,1,0,0,0,1192,1193,3,354,177,0,1193,85,1, + 0,0,0,1194,1195,5,100,0,0,1195,1198,5,187,0,0,1196,1197,5,57,0,0,1197, + 1199,5,187,0,0,1198,1196,1,0,0,0,1198,1199,1,0,0,0,1199,1201,1,0,0,0, + 1200,1202,5,170,0,0,1201,1200,1,0,0,0,1201,1202,1,0,0,0,1202,1203,1,0, + 0,0,1203,1204,3,364,182,0,1204,87,1,0,0,0,1205,1206,5,114,0,0,1206,1207, + 5,187,0,0,1207,1215,5,112,0,0,1208,1209,5,112,0,0,1209,1211,5,187,0,0, + 1210,1212,5,170,0,0,1211,1210,1,0,0,0,1211,1212,1,0,0,0,1212,1213,1,0, + 0,0,1213,1215,3,364,182,0,1214,1205,1,0,0,0,1214,1208,1,0,0,0,1215,89, + 1,0,0,0,1216,1217,5,114,0,0,1217,1218,5,187,0,0,1218,1226,5,110,0,0,1219, + 1220,5,110,0,0,1220,1222,5,187,0,0,1221,1223,5,170,0,0,1222,1221,1,0, + 0,0,1222,1223,1,0,0,0,1223,1224,1,0,0,0,1224,1226,3,364,182,0,1225,1216, + 1,0,0,0,1225,1219,1,0,0,0,1226,91,1,0,0,0,1227,1228,5,137,0,0,1228,1231, + 5,187,0,0,1229,1230,5,154,0,0,1230,1232,5,187,0,0,1231,1229,1,0,0,0,1231, + 1232,1,0,0,0,1232,1234,1,0,0,0,1233,1235,5,170,0,0,1234,1233,1,0,0,0, + 1234,1235,1,0,0,0,1235,1236,1,0,0,0,1236,1237,3,364,182,0,1237,93,1,0, + 0,0,1238,1239,5,114,0,0,1239,1241,5,187,0,0,1240,1238,1,0,0,0,1240,1241, + 1,0,0,0,1241,1242,1,0,0,0,1242,1243,5,70,0,0,1243,95,1,0,0,0,1244,1245, + 5,98,0,0,1245,1246,5,187,0,0,1246,1247,5,83,0,0,1247,97,1,0,0,0,1248, + 1249,5,79,0,0,1249,1250,5,187,0,0,1250,1251,7,0,0,0,1251,1255,5,187,0, + 0,1252,1253,3,96,48,0,1253,1254,5,187,0,0,1254,1256,1,0,0,0,1255,1252, + 1,0,0,0,1255,1256,1,0,0,0,1256,1257,1,0,0,0,1257,1258,3,368,184,0,1258, + 99,1,0,0,0,1259,1260,5,49,0,0,1260,1261,5,187,0,0,1261,1262,5,140,0,0, + 1262,1263,5,187,0,0,1263,1264,3,368,184,0,1264,1265,5,187,0,0,1265,1266, + 3,102,51,0,1266,101,1,0,0,0,1267,1274,3,104,52,0,1268,1274,3,108,54,0, + 1269,1274,3,110,55,0,1270,1274,3,112,56,0,1271,1274,3,114,57,0,1272,1274, + 3,116,58,0,1273,1267,1,0,0,0,1273,1268,1,0,0,0,1273,1269,1,0,0,0,1273, + 1270,1,0,0,0,1273,1271,1,0,0,0,1273,1272,1,0,0,0,1274,103,1,0,0,0,1275, + 1276,5,47,0,0,1276,1280,5,187,0,0,1277,1278,3,50,25,0,1278,1279,5,187, + 0,0,1279,1281,1,0,0,0,1280,1277,1,0,0,0,1280,1281,1,0,0,0,1281,1282,1, + 0,0,0,1282,1283,3,362,181,0,1283,1284,5,187,0,0,1284,1287,3,136,68,0, + 1285,1286,5,187,0,0,1286,1288,3,106,53,0,1287,1285,1,0,0,0,1287,1288, + 1,0,0,0,1288,105,1,0,0,0,1289,1290,5,73,0,0,1290,1291,5,187,0,0,1291, + 1292,3,266,133,0,1292,107,1,0,0,0,1293,1294,5,79,0,0,1294,1298,5,187, + 0,0,1295,1296,3,96,48,0,1296,1297,5,187,0,0,1297,1299,1,0,0,0,1298,1295, + 1,0,0,0,1298,1299,1,0,0,0,1299,1300,1,0,0,0,1300,1301,3,362,181,0,1301, + 109,1,0,0,0,1302,1303,5,130,0,0,1303,1304,5,187,0,0,1304,1305,5,142,0, + 0,1305,1306,5,187,0,0,1306,1307,3,368,184,0,1307,111,1,0,0,0,1308,1309, + 5,130,0,0,1309,1310,5,187,0,0,1310,1311,3,362,181,0,1311,1312,5,187,0, + 0,1312,1313,5,142,0,0,1313,1314,5,187,0,0,1314,1315,3,362,181,0,1315, + 113,1,0,0,0,1316,1317,5,47,0,0,1317,1321,5,187,0,0,1318,1319,3,50,25, + 0,1319,1320,5,187,0,0,1320,1322,1,0,0,0,1321,1318,1,0,0,0,1321,1322,1, + 0,0,0,1322,1323,1,0,0,0,1323,1324,3,72,36,0,1324,115,1,0,0,0,1325,1326, + 5,79,0,0,1326,1330,5,187,0,0,1327,1328,3,96,48,0,1328,1329,5,187,0,0, + 1329,1331,1,0,0,0,1330,1327,1,0,0,0,1330,1331,1,0,0,0,1331,1332,1,0,0, + 0,1332,1333,3,72,36,0,1333,117,1,0,0,0,1334,1345,3,120,60,0,1335,1337, + 5,187,0,0,1336,1335,1,0,0,0,1336,1337,1,0,0,0,1337,1338,1,0,0,0,1338, + 1340,5,4,0,0,1339,1341,5,187,0,0,1340,1339,1,0,0,0,1340,1341,1,0,0,0, + 1341,1342,1,0,0,0,1342,1344,3,120,60,0,1343,1336,1,0,0,0,1344,1347,1, + 0,0,0,1345,1343,1,0,0,0,1345,1346,1,0,0,0,1346,119,1,0,0,0,1347,1345, + 1,0,0,0,1348,1349,3,362,181,0,1349,1350,5,187,0,0,1350,1351,3,136,68, + 0,1351,121,1,0,0,0,1352,1363,3,124,62,0,1353,1355,5,187,0,0,1354,1353, + 1,0,0,0,1354,1355,1,0,0,0,1355,1356,1,0,0,0,1356,1358,5,4,0,0,1357,1359, + 5,187,0,0,1358,1357,1,0,0,0,1358,1359,1,0,0,0,1359,1360,1,0,0,0,1360, + 1362,3,124,62,0,1361,1354,1,0,0,0,1362,1365,1,0,0,0,1363,1361,1,0,0,0, + 1363,1364,1,0,0,0,1364,123,1,0,0,0,1365,1363,1,0,0,0,1366,1369,3,120, + 60,0,1367,1368,5,187,0,0,1368,1370,3,106,53,0,1369,1367,1,0,0,0,1369, + 1370,1,0,0,0,1370,1375,1,0,0,0,1371,1372,5,187,0,0,1372,1373,5,125,0, + 0,1373,1374,5,187,0,0,1374,1376,5,104,0,0,1375,1371,1,0,0,0,1375,1376, + 1,0,0,0,1376,125,1,0,0,0,1377,1378,5,125,0,0,1378,1379,5,187,0,0,1379, + 1381,5,104,0,0,1380,1382,5,187,0,0,1381,1380,1,0,0,0,1381,1382,1,0,0, + 0,1382,1383,1,0,0,0,1383,1385,5,2,0,0,1384,1386,5,187,0,0,1385,1384,1, + 0,0,0,1385,1386,1,0,0,0,1386,1387,1,0,0,0,1387,1389,3,362,181,0,1388, + 1390,5,187,0,0,1389,1388,1,0,0,0,1389,1390,1,0,0,0,1390,1391,1,0,0,0, + 1391,1392,5,3,0,0,1392,127,1,0,0,0,1393,1395,5,147,0,0,1394,1396,5,187, + 0,0,1395,1394,1,0,0,0,1395,1396,1,0,0,0,1396,1397,1,0,0,0,1397,1399,5, + 2,0,0,1398,1400,5,187,0,0,1399,1398,1,0,0,0,1399,1400,1,0,0,0,1400,1401, + 1,0,0,0,1401,1403,3,118,59,0,1402,1404,5,187,0,0,1403,1402,1,0,0,0,1403, + 1404,1,0,0,0,1404,1405,1,0,0,0,1405,1406,5,3,0,0,1406,129,1,0,0,0,1407, + 1409,5,139,0,0,1408,1410,5,187,0,0,1409,1408,1,0,0,0,1409,1410,1,0,0, + 0,1410,1411,1,0,0,0,1411,1413,5,2,0,0,1412,1414,5,187,0,0,1413,1412,1, + 0,0,0,1413,1414,1,0,0,0,1414,1415,1,0,0,0,1415,1417,3,118,59,0,1416,1418, + 5,187,0,0,1417,1416,1,0,0,0,1417,1418,1,0,0,0,1418,1419,1,0,0,0,1419, + 1420,5,3,0,0,1420,131,1,0,0,0,1421,1423,5,163,0,0,1422,1424,5,187,0,0, + 1423,1422,1,0,0,0,1423,1424,1,0,0,0,1424,1425,1,0,0,0,1425,1427,5,2,0, + 0,1426,1428,5,187,0,0,1427,1426,1,0,0,0,1427,1428,1,0,0,0,1428,1429,1, + 0,0,0,1429,1431,3,136,68,0,1430,1432,5,187,0,0,1431,1430,1,0,0,0,1431, + 1432,1,0,0,0,1432,1433,1,0,0,0,1433,1435,5,4,0,0,1434,1436,5,187,0,0, + 1435,1434,1,0,0,0,1435,1436,1,0,0,0,1436,1437,1,0,0,0,1437,1439,3,136, + 68,0,1438,1440,5,187,0,0,1439,1438,1,0,0,0,1439,1440,1,0,0,0,1440,1441, + 1,0,0,0,1441,1442,5,3,0,0,1442,133,1,0,0,0,1443,1445,5,164,0,0,1444,1446, + 5,187,0,0,1445,1444,1,0,0,0,1445,1446,1,0,0,0,1446,1447,1,0,0,0,1447, + 1449,5,2,0,0,1448,1450,5,187,0,0,1449,1448,1,0,0,0,1449,1450,1,0,0,0, + 1450,1451,1,0,0,0,1451,1453,3,364,182,0,1452,1454,5,187,0,0,1453,1452, + 1,0,0,0,1453,1454,1,0,0,0,1454,1455,1,0,0,0,1455,1457,5,4,0,0,1456,1458, + 5,187,0,0,1457,1456,1,0,0,0,1457,1458,1,0,0,0,1458,1459,1,0,0,0,1459, + 1461,3,364,182,0,1460,1462,5,187,0,0,1461,1460,1,0,0,0,1461,1462,1,0, + 0,0,1462,1463,1,0,0,0,1463,1464,5,3,0,0,1464,135,1,0,0,0,1465,1466,6, + 68,-1,0,1466,1472,3,370,185,0,1467,1472,3,128,64,0,1468,1472,3,130,65, + 0,1469,1472,3,132,66,0,1470,1472,3,134,67,0,1471,1465,1,0,0,0,1471,1467, + 1,0,0,0,1471,1468,1,0,0,0,1471,1469,1,0,0,0,1471,1470,1,0,0,0,1472,1477, + 1,0,0,0,1473,1474,10,5,0,0,1474,1476,3,138,69,0,1475,1473,1,0,0,0,1476, + 1479,1,0,0,0,1477,1475,1,0,0,0,1477,1478,1,0,0,0,1478,137,1,0,0,0,1479, + 1477,1,0,0,0,1480,1484,3,140,70,0,1481,1483,3,140,70,0,1482,1481,1,0, + 0,0,1483,1486,1,0,0,0,1484,1482,1,0,0,0,1484,1485,1,0,0,0,1485,139,1, + 0,0,0,1486,1484,1,0,0,0,1487,1489,5,7,0,0,1488,1490,3,364,182,0,1489, + 1488,1,0,0,0,1489,1490,1,0,0,0,1490,1491,1,0,0,0,1491,1492,5,8,0,0,1492, + 141,1,0,0,0,1493,1496,3,144,72,0,1494,1496,3,146,73,0,1495,1493,1,0,0, + 0,1495,1494,1,0,0,0,1496,143,1,0,0,0,1497,1500,5,84,0,0,1498,1499,5,187, + 0,0,1499,1501,5,107,0,0,1500,1498,1,0,0,0,1500,1501,1,0,0,0,1501,145, + 1,0,0,0,1502,1503,5,126,0,0,1503,147,1,0,0,0,1504,1505,5,56,0,0,1505, + 1506,5,187,0,0,1506,1518,5,144,0,0,1507,1508,5,56,0,0,1508,1509,5,187, + 0,0,1509,1510,5,144,0,0,1510,1511,5,187,0,0,1511,1512,5,128,0,0,1512, + 1513,5,187,0,0,1513,1518,5,120,0,0,1514,1518,5,64,0,0,1515,1518,5,132, + 0,0,1516,1518,5,61,0,0,1517,1504,1,0,0,0,1517,1507,1,0,0,0,1517,1514, + 1,0,0,0,1517,1515,1,0,0,0,1517,1516,1,0,0,0,1518,149,1,0,0,0,1519,1524, + 3,152,76,0,1520,1524,3,154,77,0,1521,1524,3,156,78,0,1522,1524,3,158, + 79,0,1523,1519,1,0,0,0,1523,1520,1,0,0,0,1523,1521,1,0,0,0,1523,1522, + 1,0,0,0,1524,151,1,0,0,0,1525,1526,5,106,0,0,1526,1529,5,187,0,0,1527, + 1528,5,86,0,0,1528,1530,5,187,0,0,1529,1527,1,0,0,0,1529,1530,1,0,0,0, + 1530,1533,1,0,0,0,1531,1534,5,172,0,0,1532,1534,3,354,177,0,1533,1531, + 1,0,0,0,1533,1532,1,0,0,0,1534,153,1,0,0,0,1535,1536,5,89,0,0,1536,1538, + 5,187,0,0,1537,1535,1,0,0,0,1537,1538,1,0,0,0,1538,1539,1,0,0,0,1539, + 1540,5,101,0,0,1540,1541,5,187,0,0,1541,1546,3,354,177,0,1542,1543,5, + 187,0,0,1543,1544,5,88,0,0,1544,1545,5,187,0,0,1545,1547,5,172,0,0,1546, + 1542,1,0,0,0,1546,1547,1,0,0,0,1547,155,1,0,0,0,1548,1549,5,149,0,0,1549, + 1550,5,187,0,0,1550,1551,3,354,177,0,1551,157,1,0,0,0,1552,1553,5,150, + 0,0,1553,1554,5,187,0,0,1554,1555,3,354,177,0,1555,159,1,0,0,0,1556,1557, + 3,162,81,0,1557,161,1,0,0,0,1558,1565,3,166,83,0,1559,1561,5,187,0,0, + 1560,1559,1,0,0,0,1560,1561,1,0,0,0,1561,1562,1,0,0,0,1562,1564,3,164, + 82,0,1563,1560,1,0,0,0,1564,1567,1,0,0,0,1565,1563,1,0,0,0,1565,1566, + 1,0,0,0,1566,1580,1,0,0,0,1567,1565,1,0,0,0,1568,1570,3,208,104,0,1569, + 1571,5,187,0,0,1570,1569,1,0,0,0,1570,1571,1,0,0,0,1571,1573,1,0,0,0, + 1572,1568,1,0,0,0,1573,1574,1,0,0,0,1574,1572,1,0,0,0,1574,1575,1,0,0, + 0,1575,1576,1,0,0,0,1576,1577,3,166,83,0,1577,1578,6,81,-1,0,1578,1580, + 1,0,0,0,1579,1558,1,0,0,0,1579,1572,1,0,0,0,1580,163,1,0,0,0,1581,1582, + 5,147,0,0,1582,1583,5,187,0,0,1583,1585,5,48,0,0,1584,1586,5,187,0,0, + 1585,1584,1,0,0,0,1585,1586,1,0,0,0,1586,1587,1,0,0,0,1587,1594,3,166, + 83,0,1588,1590,5,147,0,0,1589,1591,5,187,0,0,1590,1589,1,0,0,0,1590,1591, + 1,0,0,0,1591,1592,1,0,0,0,1592,1594,3,166,83,0,1593,1581,1,0,0,0,1593, + 1588,1,0,0,0,1594,165,1,0,0,0,1595,1598,3,168,84,0,1596,1598,3,170,85, + 0,1597,1595,1,0,0,0,1597,1596,1,0,0,0,1598,167,1,0,0,0,1599,1601,3,176, + 88,0,1600,1602,5,187,0,0,1601,1600,1,0,0,0,1601,1602,1,0,0,0,1602,1604, + 1,0,0,0,1603,1599,1,0,0,0,1604,1607,1,0,0,0,1605,1603,1,0,0,0,1605,1606, + 1,0,0,0,1606,1608,1,0,0,0,1607,1605,1,0,0,0,1608,1635,3,208,104,0,1609, + 1611,3,176,88,0,1610,1612,5,187,0,0,1611,1610,1,0,0,0,1611,1612,1,0,0, + 0,1612,1614,1,0,0,0,1613,1609,1,0,0,0,1614,1617,1,0,0,0,1615,1613,1,0, + 0,0,1615,1616,1,0,0,0,1616,1618,1,0,0,0,1617,1615,1,0,0,0,1618,1625,3, + 174,87,0,1619,1621,5,187,0,0,1620,1619,1,0,0,0,1620,1621,1,0,0,0,1621, + 1622,1,0,0,0,1622,1624,3,174,87,0,1623,1620,1,0,0,0,1624,1627,1,0,0,0, + 1625,1623,1,0,0,0,1625,1626,1,0,0,0,1626,1632,1,0,0,0,1627,1625,1,0,0, + 0,1628,1630,5,187,0,0,1629,1628,1,0,0,0,1629,1630,1,0,0,0,1630,1631,1, + 0,0,0,1631,1633,3,208,104,0,1632,1629,1,0,0,0,1632,1633,1,0,0,0,1633, + 1635,1,0,0,0,1634,1605,1,0,0,0,1634,1615,1,0,0,0,1635,169,1,0,0,0,1636, + 1638,3,172,86,0,1637,1639,5,187,0,0,1638,1637,1,0,0,0,1638,1639,1,0,0, + 0,1639,1641,1,0,0,0,1640,1636,1,0,0,0,1641,1642,1,0,0,0,1642,1640,1,0, + 0,0,1642,1643,1,0,0,0,1643,1644,1,0,0,0,1644,1645,3,168,84,0,1645,171, + 1,0,0,0,1646,1648,3,176,88,0,1647,1649,5,187,0,0,1648,1647,1,0,0,0,1648, + 1649,1,0,0,0,1649,1651,1,0,0,0,1650,1646,1,0,0,0,1651,1654,1,0,0,0,1652, + 1650,1,0,0,0,1652,1653,1,0,0,0,1653,1661,1,0,0,0,1654,1652,1,0,0,0,1655, + 1657,3,174,87,0,1656,1658,5,187,0,0,1657,1656,1,0,0,0,1657,1658,1,0,0, + 0,1658,1660,1,0,0,0,1659,1655,1,0,0,0,1660,1663,1,0,0,0,1661,1659,1,0, + 0,0,1661,1662,1,0,0,0,1662,1664,1,0,0,0,1663,1661,1,0,0,0,1664,1665,3, + 206,103,0,1665,173,1,0,0,0,1666,1671,3,194,97,0,1667,1671,3,196,98,0, + 1668,1671,3,200,100,0,1669,1671,3,204,102,0,1670,1666,1,0,0,0,1670,1667, + 1,0,0,0,1670,1668,1,0,0,0,1670,1669,1,0,0,0,1671,175,1,0,0,0,1672,1677, + 3,186,93,0,1673,1677,3,192,96,0,1674,1677,3,184,92,0,1675,1677,3,178, + 89,0,1676,1672,1,0,0,0,1676,1673,1,0,0,0,1676,1674,1,0,0,0,1676,1675, + 1,0,0,0,1677,177,1,0,0,0,1678,1696,5,106,0,0,1679,1680,5,187,0,0,1680, + 1681,5,154,0,0,1681,1682,5,187,0,0,1682,1684,5,94,0,0,1683,1685,5,187, + 0,0,1684,1683,1,0,0,0,1684,1685,1,0,0,0,1685,1686,1,0,0,0,1686,1688,5, + 2,0,0,1687,1689,5,187,0,0,1688,1687,1,0,0,0,1688,1689,1,0,0,0,1689,1690, + 1,0,0,0,1690,1692,3,118,59,0,1691,1693,5,187,0,0,1692,1691,1,0,0,0,1692, + 1693,1,0,0,0,1693,1694,1,0,0,0,1694,1695,5,3,0,0,1695,1697,1,0,0,0,1696, + 1679,1,0,0,0,1696,1697,1,0,0,0,1697,1698,1,0,0,0,1698,1699,5,187,0,0, + 1699,1700,5,88,0,0,1700,1701,5,187,0,0,1701,1715,3,10,5,0,1702,1704,5, + 187,0,0,1703,1702,1,0,0,0,1703,1704,1,0,0,0,1704,1705,1,0,0,0,1705,1707, + 5,2,0,0,1706,1708,5,187,0,0,1707,1706,1,0,0,0,1707,1708,1,0,0,0,1708, + 1709,1,0,0,0,1709,1711,3,26,13,0,1710,1712,5,187,0,0,1711,1710,1,0,0, + 0,1711,1712,1,0,0,0,1712,1713,1,0,0,0,1713,1714,5,3,0,0,1714,1716,1,0, + 0,0,1715,1703,1,0,0,0,1715,1716,1,0,0,0,1716,1721,1,0,0,0,1717,1719,5, + 187,0,0,1718,1717,1,0,0,0,1718,1719,1,0,0,0,1719,1720,1,0,0,0,1720,1722, + 3,224,112,0,1721,1718,1,0,0,0,1721,1722,1,0,0,0,1722,179,1,0,0,0,1723, + 1724,3,354,177,0,1724,1725,5,187,0,0,1725,1726,5,52,0,0,1726,1727,5,187, + 0,0,1727,1729,1,0,0,0,1728,1723,1,0,0,0,1728,1729,1,0,0,0,1729,1730,1, + 0,0,0,1730,1731,3,354,177,0,1731,181,1,0,0,0,1732,1743,3,180,90,0,1733, + 1735,5,187,0,0,1734,1733,1,0,0,0,1734,1735,1,0,0,0,1735,1736,1,0,0,0, + 1736,1738,5,4,0,0,1737,1739,5,187,0,0,1738,1737,1,0,0,0,1738,1739,1,0, + 0,0,1739,1740,1,0,0,0,1740,1742,3,180,90,0,1741,1734,1,0,0,0,1742,1745, + 1,0,0,0,1743,1741,1,0,0,0,1743,1744,1,0,0,0,1744,183,1,0,0,0,1745,1743, + 1,0,0,0,1746,1747,5,58,0,0,1747,1748,5,187,0,0,1748,1753,3,334,167,0, + 1749,1751,5,187,0,0,1750,1749,1,0,0,0,1750,1751,1,0,0,0,1751,1752,1,0, + 0,0,1752,1754,3,224,112,0,1753,1750,1,0,0,0,1753,1754,1,0,0,0,1754,1761, + 1,0,0,0,1755,1757,5,187,0,0,1756,1755,1,0,0,0,1756,1757,1,0,0,0,1757, + 1758,1,0,0,0,1758,1759,5,159,0,0,1759,1760,5,187,0,0,1760,1762,3,182, + 91,0,1761,1756,1,0,0,0,1761,1762,1,0,0,0,1762,185,1,0,0,0,1763,1764,5, + 122,0,0,1764,1766,5,187,0,0,1765,1763,1,0,0,0,1765,1766,1,0,0,0,1766, + 1767,1,0,0,0,1767,1769,5,109,0,0,1768,1770,5,187,0,0,1769,1768,1,0,0, + 0,1769,1770,1,0,0,0,1770,1771,1,0,0,0,1771,1774,3,226,113,0,1772,1773, + 5,187,0,0,1773,1775,3,224,112,0,1774,1772,1,0,0,0,1774,1775,1,0,0,0,1775, + 1778,1,0,0,0,1776,1777,5,187,0,0,1777,1779,3,188,94,0,1778,1776,1,0,0, + 0,1778,1779,1,0,0,0,1779,187,1,0,0,0,1780,1781,5,95,0,0,1781,1782,5,187, + 0,0,1782,1783,3,190,95,0,1783,189,1,0,0,0,1784,1785,6,95,-1,0,1785,1787, + 5,2,0,0,1786,1788,5,187,0,0,1787,1786,1,0,0,0,1787,1788,1,0,0,0,1788, + 1789,1,0,0,0,1789,1791,3,190,95,0,1790,1792,5,187,0,0,1791,1790,1,0,0, + 0,1791,1792,1,0,0,0,1792,1793,1,0,0,0,1793,1794,5,3,0,0,1794,1797,1,0, + 0,0,1795,1797,3,368,184,0,1796,1784,1,0,0,0,1796,1795,1,0,0,0,1797,1814, + 1,0,0,0,1798,1799,10,4,0,0,1799,1800,5,187,0,0,1800,1801,5,103,0,0,1801, + 1802,5,187,0,0,1802,1813,3,190,95,5,1803,1808,10,3,0,0,1804,1805,5,187, + 0,0,1805,1806,5,113,0,0,1806,1807,5,187,0,0,1807,1809,3,368,184,0,1808, + 1804,1,0,0,0,1809,1810,1,0,0,0,1810,1808,1,0,0,0,1810,1811,1,0,0,0,1811, + 1813,1,0,0,0,1812,1798,1,0,0,0,1812,1803,1,0,0,0,1813,1816,1,0,0,0,1814, + 1812,1,0,0,0,1814,1815,1,0,0,0,1815,191,1,0,0,0,1816,1814,1,0,0,0,1817, + 1819,5,148,0,0,1818,1820,5,187,0,0,1819,1818,1,0,0,0,1819,1820,1,0,0, + 0,1820,1821,1,0,0,0,1821,1822,3,266,133,0,1822,1823,5,187,0,0,1823,1824, + 5,52,0,0,1824,1825,5,187,0,0,1825,1826,3,354,177,0,1826,193,1,0,0,0,1827, + 1829,5,69,0,0,1828,1830,5,187,0,0,1829,1828,1,0,0,0,1829,1830,1,0,0,0, + 1830,1831,1,0,0,0,1831,1832,3,226,113,0,1832,195,1,0,0,0,1833,1835,5, + 111,0,0,1834,1836,5,187,0,0,1835,1834,1,0,0,0,1835,1836,1,0,0,0,1836, + 1837,1,0,0,0,1837,1842,3,226,113,0,1838,1839,5,187,0,0,1839,1841,3,198, + 99,0,1840,1838,1,0,0,0,1841,1844,1,0,0,0,1842,1840,1,0,0,0,1842,1843, + 1,0,0,0,1843,197,1,0,0,0,1844,1842,1,0,0,0,1845,1846,5,119,0,0,1846,1847, + 5,187,0,0,1847,1848,5,109,0,0,1848,1849,5,187,0,0,1849,1856,3,200,100, + 0,1850,1851,5,119,0,0,1851,1852,5,187,0,0,1852,1853,5,69,0,0,1853,1854, + 5,187,0,0,1854,1856,3,200,100,0,1855,1845,1,0,0,0,1855,1850,1,0,0,0,1856, + 199,1,0,0,0,1857,1859,5,135,0,0,1858,1860,5,187,0,0,1859,1858,1,0,0,0, + 1859,1860,1,0,0,0,1860,1861,1,0,0,0,1861,1872,3,202,101,0,1862,1864,5, + 187,0,0,1863,1862,1,0,0,0,1863,1864,1,0,0,0,1864,1865,1,0,0,0,1865,1867, + 5,4,0,0,1866,1868,5,187,0,0,1867,1866,1,0,0,0,1867,1868,1,0,0,0,1868, + 1869,1,0,0,0,1869,1871,3,202,101,0,1870,1863,1,0,0,0,1871,1874,1,0,0, + 0,1872,1870,1,0,0,0,1872,1873,1,0,0,0,1873,1890,1,0,0,0,1874,1872,1,0, + 0,0,1875,1877,5,135,0,0,1876,1878,5,187,0,0,1877,1876,1,0,0,0,1877,1878, + 1,0,0,0,1878,1879,1,0,0,0,1879,1881,3,312,156,0,1880,1882,5,187,0,0,1881, + 1880,1,0,0,0,1881,1882,1,0,0,0,1882,1883,1,0,0,0,1883,1885,5,6,0,0,1884, + 1886,5,187,0,0,1885,1884,1,0,0,0,1885,1886,1,0,0,0,1886,1887,1,0,0,0, + 1887,1888,3,242,121,0,1888,1890,1,0,0,0,1889,1857,1,0,0,0,1889,1875,1, + 0,0,0,1890,201,1,0,0,0,1891,1893,3,360,180,0,1892,1894,5,187,0,0,1893, + 1892,1,0,0,0,1893,1894,1,0,0,0,1894,1895,1,0,0,0,1895,1897,5,6,0,0,1896, + 1898,5,187,0,0,1897,1896,1,0,0,0,1897,1898,1,0,0,0,1898,1899,1,0,0,0, + 1899,1900,3,266,133,0,1900,203,1,0,0,0,1901,1902,5,77,0,0,1902,1904,5, + 187,0,0,1903,1901,1,0,0,0,1903,1904,1,0,0,0,1904,1905,1,0,0,0,1905,1907, + 5,74,0,0,1906,1908,5,187,0,0,1907,1906,1,0,0,0,1907,1908,1,0,0,0,1908, + 1909,1,0,0,0,1909,1920,3,266,133,0,1910,1912,5,187,0,0,1911,1910,1,0, + 0,0,1911,1912,1,0,0,0,1912,1913,1,0,0,0,1913,1915,5,4,0,0,1914,1916,5, + 187,0,0,1915,1914,1,0,0,0,1915,1916,1,0,0,0,1916,1917,1,0,0,0,1917,1919, + 3,266,133,0,1918,1911,1,0,0,0,1919,1922,1,0,0,0,1920,1918,1,0,0,0,1920, + 1921,1,0,0,0,1921,205,1,0,0,0,1922,1920,1,0,0,0,1923,1924,5,154,0,0,1924, + 1929,3,210,105,0,1925,1927,5,187,0,0,1926,1925,1,0,0,0,1926,1927,1,0, + 0,0,1927,1928,1,0,0,0,1928,1930,3,224,112,0,1929,1926,1,0,0,0,1929,1930, + 1,0,0,0,1930,207,1,0,0,0,1931,1932,5,131,0,0,1932,1933,3,210,105,0,1933, + 209,1,0,0,0,1934,1936,5,187,0,0,1935,1934,1,0,0,0,1935,1936,1,0,0,0,1936, + 1937,1,0,0,0,1937,1939,5,78,0,0,1938,1935,1,0,0,0,1938,1939,1,0,0,0,1939, + 1940,1,0,0,0,1940,1941,5,187,0,0,1941,1944,3,212,106,0,1942,1943,5,187, + 0,0,1943,1945,3,216,108,0,1944,1942,1,0,0,0,1944,1945,1,0,0,0,1945,1948, + 1,0,0,0,1946,1947,5,187,0,0,1947,1949,3,218,109,0,1948,1946,1,0,0,0,1948, + 1949,1,0,0,0,1949,1952,1,0,0,0,1950,1951,5,187,0,0,1951,1953,3,220,110, + 0,1952,1950,1,0,0,0,1952,1953,1,0,0,0,1953,211,1,0,0,0,1954,1965,5,165, + 0,0,1955,1957,5,187,0,0,1956,1955,1,0,0,0,1956,1957,1,0,0,0,1957,1958, + 1,0,0,0,1958,1960,5,4,0,0,1959,1961,5,187,0,0,1960,1959,1,0,0,0,1960, + 1961,1,0,0,0,1961,1962,1,0,0,0,1962,1964,3,214,107,0,1963,1956,1,0,0, + 0,1964,1967,1,0,0,0,1965,1963,1,0,0,0,1965,1966,1,0,0,0,1966,1983,1,0, + 0,0,1967,1965,1,0,0,0,1968,1979,3,214,107,0,1969,1971,5,187,0,0,1970, + 1969,1,0,0,0,1970,1971,1,0,0,0,1971,1972,1,0,0,0,1972,1974,5,4,0,0,1973, + 1975,5,187,0,0,1974,1973,1,0,0,0,1974,1975,1,0,0,0,1975,1976,1,0,0,0, + 1976,1978,3,214,107,0,1977,1970,1,0,0,0,1978,1981,1,0,0,0,1979,1977,1, + 0,0,0,1979,1980,1,0,0,0,1980,1983,1,0,0,0,1981,1979,1,0,0,0,1982,1954, + 1,0,0,0,1982,1968,1,0,0,0,1983,213,1,0,0,0,1984,1985,3,266,133,0,1985, + 1986,5,187,0,0,1986,1987,5,52,0,0,1987,1988,5,187,0,0,1988,1989,3,354, + 177,0,1989,1992,1,0,0,0,1990,1992,3,266,133,0,1991,1984,1,0,0,0,1991, + 1990,1,0,0,0,1992,215,1,0,0,0,1993,1994,5,124,0,0,1994,1995,5,187,0,0, + 1995,1996,5,57,0,0,1996,1997,5,187,0,0,1997,2005,3,222,111,0,1998,2000, + 5,4,0,0,1999,2001,5,187,0,0,2000,1999,1,0,0,0,2000,2001,1,0,0,0,2001, + 2002,1,0,0,0,2002,2004,3,222,111,0,2003,1998,1,0,0,0,2004,2007,1,0,0, + 0,2005,2003,1,0,0,0,2005,2006,1,0,0,0,2006,217,1,0,0,0,2007,2005,1,0, + 0,0,2008,2009,5,166,0,0,2009,2010,5,187,0,0,2010,2011,3,266,133,0,2011, + 219,1,0,0,0,2012,2013,5,105,0,0,2013,2014,5,187,0,0,2014,2015,3,266,133, + 0,2015,221,1,0,0,0,2016,2021,3,266,133,0,2017,2019,5,187,0,0,2018,2017, + 1,0,0,0,2018,2019,1,0,0,0,2019,2020,1,0,0,0,2020,2022,7,1,0,0,2021,2018, + 1,0,0,0,2021,2022,1,0,0,0,2022,223,1,0,0,0,2023,2024,5,153,0,0,2024,2025, + 5,187,0,0,2025,2026,3,266,133,0,2026,225,1,0,0,0,2027,2038,3,228,114, + 0,2028,2030,5,187,0,0,2029,2028,1,0,0,0,2029,2030,1,0,0,0,2030,2031,1, + 0,0,0,2031,2033,5,4,0,0,2032,2034,5,187,0,0,2033,2032,1,0,0,0,2033,2034, + 1,0,0,0,2034,2035,1,0,0,0,2035,2037,3,228,114,0,2036,2029,1,0,0,0,2037, + 2040,1,0,0,0,2038,2036,1,0,0,0,2038,2039,1,0,0,0,2039,227,1,0,0,0,2040, + 2038,1,0,0,0,2041,2043,3,354,177,0,2042,2044,5,187,0,0,2043,2042,1,0, + 0,0,2043,2044,1,0,0,0,2044,2045,1,0,0,0,2045,2047,5,6,0,0,2046,2048,5, + 187,0,0,2047,2046,1,0,0,0,2047,2048,1,0,0,0,2048,2049,1,0,0,0,2049,2050, + 3,230,115,0,2050,2053,1,0,0,0,2051,2053,3,230,115,0,2052,2041,1,0,0,0, + 2052,2051,1,0,0,0,2053,229,1,0,0,0,2054,2055,3,232,116,0,2055,231,1,0, + 0,0,2056,2063,3,234,117,0,2057,2059,5,187,0,0,2058,2057,1,0,0,0,2058, + 2059,1,0,0,0,2059,2060,1,0,0,0,2060,2062,3,236,118,0,2061,2058,1,0,0, + 0,2062,2065,1,0,0,0,2063,2061,1,0,0,0,2063,2064,1,0,0,0,2064,2071,1,0, + 0,0,2065,2063,1,0,0,0,2066,2067,5,2,0,0,2067,2068,3,232,116,0,2068,2069, + 5,3,0,0,2069,2071,1,0,0,0,2070,2056,1,0,0,0,2070,2066,1,0,0,0,2071,233, + 1,0,0,0,2072,2074,5,2,0,0,2073,2075,5,187,0,0,2074,2073,1,0,0,0,2074, + 2075,1,0,0,0,2075,2080,1,0,0,0,2076,2078,3,354,177,0,2077,2079,5,187, + 0,0,2078,2077,1,0,0,0,2078,2079,1,0,0,0,2079,2081,1,0,0,0,2080,2076,1, + 0,0,0,2080,2081,1,0,0,0,2081,2086,1,0,0,0,2082,2084,3,246,123,0,2083, + 2085,5,187,0,0,2084,2083,1,0,0,0,2084,2085,1,0,0,0,2085,2087,1,0,0,0, + 2086,2082,1,0,0,0,2086,2087,1,0,0,0,2087,2092,1,0,0,0,2088,2090,3,242, + 121,0,2089,2091,5,187,0,0,2090,2089,1,0,0,0,2090,2091,1,0,0,0,2091,2093, + 1,0,0,0,2092,2088,1,0,0,0,2092,2093,1,0,0,0,2093,2094,1,0,0,0,2094,2095, + 5,3,0,0,2095,235,1,0,0,0,2096,2098,3,238,119,0,2097,2099,5,187,0,0,2098, + 2097,1,0,0,0,2098,2099,1,0,0,0,2099,2100,1,0,0,0,2100,2101,3,234,117, + 0,2101,237,1,0,0,0,2102,2104,3,374,187,0,2103,2105,5,187,0,0,2104,2103, + 1,0,0,0,2104,2105,1,0,0,0,2105,2106,1,0,0,0,2106,2108,3,378,189,0,2107, + 2109,5,187,0,0,2108,2107,1,0,0,0,2108,2109,1,0,0,0,2109,2111,1,0,0,0, + 2110,2112,3,240,120,0,2111,2110,1,0,0,0,2111,2112,1,0,0,0,2112,2114,1, + 0,0,0,2113,2115,5,187,0,0,2114,2113,1,0,0,0,2114,2115,1,0,0,0,2115,2116, + 1,0,0,0,2116,2117,3,378,189,0,2117,2147,1,0,0,0,2118,2120,3,378,189,0, + 2119,2121,5,187,0,0,2120,2119,1,0,0,0,2120,2121,1,0,0,0,2121,2123,1,0, + 0,0,2122,2124,3,240,120,0,2123,2122,1,0,0,0,2123,2124,1,0,0,0,2124,2126, + 1,0,0,0,2125,2127,5,187,0,0,2126,2125,1,0,0,0,2126,2127,1,0,0,0,2127, + 2128,1,0,0,0,2128,2130,3,378,189,0,2129,2131,5,187,0,0,2130,2129,1,0, + 0,0,2130,2131,1,0,0,0,2131,2132,1,0,0,0,2132,2133,3,376,188,0,2133,2147, + 1,0,0,0,2134,2136,3,378,189,0,2135,2137,5,187,0,0,2136,2135,1,0,0,0,2136, + 2137,1,0,0,0,2137,2139,1,0,0,0,2138,2140,3,240,120,0,2139,2138,1,0,0, + 0,2139,2140,1,0,0,0,2140,2142,1,0,0,0,2141,2143,5,187,0,0,2142,2141,1, + 0,0,0,2142,2143,1,0,0,0,2143,2144,1,0,0,0,2144,2145,3,378,189,0,2145, + 2147,1,0,0,0,2146,2102,1,0,0,0,2146,2118,1,0,0,0,2146,2134,1,0,0,0,2147, + 239,1,0,0,0,2148,2150,5,7,0,0,2149,2151,5,187,0,0,2150,2149,1,0,0,0,2150, + 2151,1,0,0,0,2151,2156,1,0,0,0,2152,2154,3,354,177,0,2153,2155,5,187, + 0,0,2154,2153,1,0,0,0,2154,2155,1,0,0,0,2155,2157,1,0,0,0,2156,2152,1, + 0,0,0,2156,2157,1,0,0,0,2157,2162,1,0,0,0,2158,2160,3,244,122,0,2159, + 2161,5,187,0,0,2160,2159,1,0,0,0,2160,2161,1,0,0,0,2161,2163,1,0,0,0, + 2162,2158,1,0,0,0,2162,2163,1,0,0,0,2163,2168,1,0,0,0,2164,2166,3,248, + 124,0,2165,2167,5,187,0,0,2166,2165,1,0,0,0,2166,2167,1,0,0,0,2167,2169, + 1,0,0,0,2168,2164,1,0,0,0,2168,2169,1,0,0,0,2169,2174,1,0,0,0,2170,2172, + 3,242,121,0,2171,2173,5,187,0,0,2172,2171,1,0,0,0,2172,2173,1,0,0,0,2173, + 2175,1,0,0,0,2174,2170,1,0,0,0,2174,2175,1,0,0,0,2175,2176,1,0,0,0,2176, + 2177,5,8,0,0,2177,241,1,0,0,0,2178,2180,5,9,0,0,2179,2181,5,187,0,0,2180, + 2179,1,0,0,0,2180,2181,1,0,0,0,2181,2215,1,0,0,0,2182,2184,3,362,181, + 0,2183,2185,5,187,0,0,2184,2183,1,0,0,0,2184,2185,1,0,0,0,2185,2186,1, + 0,0,0,2186,2188,5,168,0,0,2187,2189,5,187,0,0,2188,2187,1,0,0,0,2188, + 2189,1,0,0,0,2189,2190,1,0,0,0,2190,2192,3,266,133,0,2191,2193,5,187, + 0,0,2192,2191,1,0,0,0,2192,2193,1,0,0,0,2193,2212,1,0,0,0,2194,2196,5, + 4,0,0,2195,2197,5,187,0,0,2196,2195,1,0,0,0,2196,2197,1,0,0,0,2197,2198, + 1,0,0,0,2198,2200,3,362,181,0,2199,2201,5,187,0,0,2200,2199,1,0,0,0,2200, + 2201,1,0,0,0,2201,2202,1,0,0,0,2202,2204,5,168,0,0,2203,2205,5,187,0, + 0,2204,2203,1,0,0,0,2204,2205,1,0,0,0,2205,2206,1,0,0,0,2206,2208,3,266, + 133,0,2207,2209,5,187,0,0,2208,2207,1,0,0,0,2208,2209,1,0,0,0,2209,2211, + 1,0,0,0,2210,2194,1,0,0,0,2211,2214,1,0,0,0,2212,2210,1,0,0,0,2212,2213, + 1,0,0,0,2213,2216,1,0,0,0,2214,2212,1,0,0,0,2215,2182,1,0,0,0,2215,2216, + 1,0,0,0,2216,2217,1,0,0,0,2217,2218,5,10,0,0,2218,243,1,0,0,0,2219,2221, + 5,168,0,0,2220,2222,5,187,0,0,2221,2220,1,0,0,0,2221,2222,1,0,0,0,2222, + 2223,1,0,0,0,2223,2237,3,264,132,0,2224,2226,5,187,0,0,2225,2224,1,0, + 0,0,2225,2226,1,0,0,0,2226,2227,1,0,0,0,2227,2229,5,11,0,0,2228,2230, + 5,168,0,0,2229,2228,1,0,0,0,2229,2230,1,0,0,0,2230,2232,1,0,0,0,2231, + 2233,5,187,0,0,2232,2231,1,0,0,0,2232,2233,1,0,0,0,2233,2234,1,0,0,0, + 2234,2236,3,264,132,0,2235,2225,1,0,0,0,2236,2239,1,0,0,0,2237,2235,1, + 0,0,0,2237,2238,1,0,0,0,2238,245,1,0,0,0,2239,2237,1,0,0,0,2240,2242, + 5,168,0,0,2241,2243,5,187,0,0,2242,2241,1,0,0,0,2242,2243,1,0,0,0,2243, + 2244,1,0,0,0,2244,2261,3,262,131,0,2245,2247,5,187,0,0,2246,2245,1,0, + 0,0,2246,2247,1,0,0,0,2247,2253,1,0,0,0,2248,2250,5,11,0,0,2249,2251, + 5,168,0,0,2250,2249,1,0,0,0,2250,2251,1,0,0,0,2251,2254,1,0,0,0,2252, + 2254,5,168,0,0,2253,2248,1,0,0,0,2253,2252,1,0,0,0,2254,2256,1,0,0,0, + 2255,2257,5,187,0,0,2256,2255,1,0,0,0,2256,2257,1,0,0,0,2257,2258,1,0, + 0,0,2258,2260,3,262,131,0,2259,2246,1,0,0,0,2260,2263,1,0,0,0,2261,2259, + 1,0,0,0,2261,2262,1,0,0,0,2262,247,1,0,0,0,2263,2261,1,0,0,0,2264,2269, + 5,165,0,0,2265,2267,5,187,0,0,2266,2265,1,0,0,0,2266,2267,1,0,0,0,2267, + 2268,1,0,0,0,2268,2270,3,250,125,0,2269,2266,1,0,0,0,2269,2270,1,0,0, + 0,2270,2275,1,0,0,0,2271,2273,5,187,0,0,2272,2271,1,0,0,0,2272,2273,1, + 0,0,0,2273,2274,1,0,0,0,2274,2276,3,252,126,0,2275,2272,1,0,0,0,2275, + 2276,1,0,0,0,2276,2281,1,0,0,0,2277,2279,5,187,0,0,2278,2277,1,0,0,0, + 2278,2279,1,0,0,0,2279,2280,1,0,0,0,2280,2282,3,254,127,0,2281,2278,1, + 0,0,0,2281,2282,1,0,0,0,2282,249,1,0,0,0,2283,2284,5,48,0,0,2284,2286, + 5,187,0,0,2285,2283,1,0,0,0,2285,2286,1,0,0,0,2286,2287,1,0,0,0,2287, + 2289,5,156,0,0,2288,2290,5,187,0,0,2289,2288,1,0,0,0,2289,2290,1,0,0, + 0,2290,2291,1,0,0,0,2291,2293,5,2,0,0,2292,2294,5,187,0,0,2293,2292,1, + 0,0,0,2293,2294,1,0,0,0,2294,2295,1,0,0,0,2295,2297,3,362,181,0,2296, + 2298,5,187,0,0,2297,2296,1,0,0,0,2297,2298,1,0,0,0,2298,2299,1,0,0,0, + 2299,2300,5,3,0,0,2300,2308,1,0,0,0,2301,2308,5,136,0,0,2302,2303,5,48, + 0,0,2303,2304,5,187,0,0,2304,2308,5,136,0,0,2305,2308,5,143,0,0,2306, + 2308,5,45,0,0,2307,2285,1,0,0,0,2307,2301,1,0,0,0,2307,2302,1,0,0,0,2307, + 2305,1,0,0,0,2307,2306,1,0,0,0,2308,251,1,0,0,0,2309,2311,3,258,129,0, + 2310,2309,1,0,0,0,2310,2311,1,0,0,0,2311,2313,1,0,0,0,2312,2314,5,187, + 0,0,2313,2312,1,0,0,0,2313,2314,1,0,0,0,2314,2315,1,0,0,0,2315,2317,5, + 169,0,0,2316,2318,5,187,0,0,2317,2316,1,0,0,0,2317,2318,1,0,0,0,2318, + 2320,1,0,0,0,2319,2321,3,260,130,0,2320,2319,1,0,0,0,2320,2321,1,0,0, + 0,2321,2324,1,0,0,0,2322,2324,3,364,182,0,2323,2310,1,0,0,0,2323,2322, + 1,0,0,0,2324,253,1,0,0,0,2325,2327,5,2,0,0,2326,2328,5,187,0,0,2327,2326, + 1,0,0,0,2327,2328,1,0,0,0,2328,2329,1,0,0,0,2329,2331,3,354,177,0,2330, + 2332,5,187,0,0,2331,2330,1,0,0,0,2331,2332,1,0,0,0,2332,2333,1,0,0,0, + 2333,2335,5,4,0,0,2334,2336,5,187,0,0,2335,2334,1,0,0,0,2335,2336,1,0, + 0,0,2336,2337,1,0,0,0,2337,2349,3,354,177,0,2338,2340,5,187,0,0,2339, + 2338,1,0,0,0,2339,2340,1,0,0,0,2340,2341,1,0,0,0,2341,2343,5,11,0,0,2342, + 2344,5,187,0,0,2343,2342,1,0,0,0,2343,2344,1,0,0,0,2344,2345,1,0,0,0, + 2345,2347,3,224,112,0,2346,2348,5,187,0,0,2347,2346,1,0,0,0,2347,2348, + 1,0,0,0,2348,2350,1,0,0,0,2349,2339,1,0,0,0,2349,2350,1,0,0,0,2350,2370, + 1,0,0,0,2351,2353,5,187,0,0,2352,2351,1,0,0,0,2352,2353,1,0,0,0,2353, + 2354,1,0,0,0,2354,2356,5,11,0,0,2355,2357,5,187,0,0,2356,2355,1,0,0,0, + 2356,2357,1,0,0,0,2357,2358,1,0,0,0,2358,2360,3,256,128,0,2359,2361,5, + 187,0,0,2360,2359,1,0,0,0,2360,2361,1,0,0,0,2361,2362,1,0,0,0,2362,2364, + 5,4,0,0,2363,2365,5,187,0,0,2364,2363,1,0,0,0,2364,2365,1,0,0,0,2365, + 2366,1,0,0,0,2366,2368,3,256,128,0,2367,2369,5,187,0,0,2368,2367,1,0, + 0,0,2368,2369,1,0,0,0,2369,2371,1,0,0,0,2370,2352,1,0,0,0,2370,2371,1, + 0,0,0,2371,2372,1,0,0,0,2372,2373,5,3,0,0,2373,255,1,0,0,0,2374,2376, + 5,9,0,0,2375,2377,5,187,0,0,2376,2375,1,0,0,0,2376,2377,1,0,0,0,2377, + 2379,1,0,0,0,2378,2380,3,212,106,0,2379,2378,1,0,0,0,2379,2380,1,0,0, + 0,2380,2382,1,0,0,0,2381,2383,5,187,0,0,2382,2381,1,0,0,0,2382,2383,1, + 0,0,0,2383,2384,1,0,0,0,2384,2385,5,10,0,0,2385,257,1,0,0,0,2386,2387, + 5,174,0,0,2387,259,1,0,0,0,2388,2389,5,174,0,0,2389,261,1,0,0,0,2390, + 2393,3,368,184,0,2391,2392,5,5,0,0,2392,2394,3,368,184,0,2393,2391,1, + 0,0,0,2393,2394,1,0,0,0,2394,263,1,0,0,0,2395,2396,3,368,184,0,2396,265, + 1,0,0,0,2397,2398,3,268,134,0,2398,267,1,0,0,0,2399,2406,3,270,135,0, + 2400,2401,5,187,0,0,2401,2402,5,123,0,0,2402,2403,5,187,0,0,2403,2405, + 3,270,135,0,2404,2400,1,0,0,0,2405,2408,1,0,0,0,2406,2404,1,0,0,0,2406, + 2407,1,0,0,0,2407,269,1,0,0,0,2408,2406,1,0,0,0,2409,2416,3,272,136,0, + 2410,2411,5,187,0,0,2411,2412,5,157,0,0,2412,2413,5,187,0,0,2413,2415, + 3,272,136,0,2414,2410,1,0,0,0,2415,2418,1,0,0,0,2416,2414,1,0,0,0,2416, + 2417,1,0,0,0,2417,271,1,0,0,0,2418,2416,1,0,0,0,2419,2426,3,274,137,0, + 2420,2421,5,187,0,0,2421,2422,5,51,0,0,2422,2423,5,187,0,0,2423,2425, + 3,274,137,0,2424,2420,1,0,0,0,2425,2428,1,0,0,0,2426,2424,1,0,0,0,2426, + 2427,1,0,0,0,2427,273,1,0,0,0,2428,2426,1,0,0,0,2429,2431,5,116,0,0,2430, + 2432,5,187,0,0,2431,2430,1,0,0,0,2431,2432,1,0,0,0,2432,2434,1,0,0,0, + 2433,2429,1,0,0,0,2434,2437,1,0,0,0,2435,2433,1,0,0,0,2435,2436,1,0,0, + 0,2436,2438,1,0,0,0,2437,2435,1,0,0,0,2438,2439,3,276,138,0,2439,275, + 1,0,0,0,2440,2450,3,280,140,0,2441,2443,5,187,0,0,2442,2441,1,0,0,0,2442, + 2443,1,0,0,0,2443,2444,1,0,0,0,2444,2446,3,278,139,0,2445,2447,5,187, + 0,0,2446,2445,1,0,0,0,2446,2447,1,0,0,0,2447,2448,1,0,0,0,2448,2449,3, + 280,140,0,2449,2451,1,0,0,0,2450,2442,1,0,0,0,2450,2451,1,0,0,0,2451, + 2489,1,0,0,0,2452,2454,3,280,140,0,2453,2455,5,187,0,0,2454,2453,1,0, + 0,0,2454,2455,1,0,0,0,2455,2456,1,0,0,0,2456,2458,5,167,0,0,2457,2459, + 5,187,0,0,2458,2457,1,0,0,0,2458,2459,1,0,0,0,2459,2460,1,0,0,0,2460, + 2461,3,280,140,0,2461,2462,1,0,0,0,2462,2463,6,138,-1,0,2463,2489,1,0, + 0,0,2464,2466,3,280,140,0,2465,2467,5,187,0,0,2466,2465,1,0,0,0,2466, + 2467,1,0,0,0,2467,2468,1,0,0,0,2468,2470,3,278,139,0,2469,2471,5,187, + 0,0,2470,2469,1,0,0,0,2470,2471,1,0,0,0,2471,2472,1,0,0,0,2472,2482,3, + 280,140,0,2473,2475,5,187,0,0,2474,2473,1,0,0,0,2474,2475,1,0,0,0,2475, + 2476,1,0,0,0,2476,2478,3,278,139,0,2477,2479,5,187,0,0,2478,2477,1,0, + 0,0,2478,2479,1,0,0,0,2479,2480,1,0,0,0,2480,2481,3,280,140,0,2481,2483, + 1,0,0,0,2482,2474,1,0,0,0,2483,2484,1,0,0,0,2484,2482,1,0,0,0,2484,2485, + 1,0,0,0,2485,2486,1,0,0,0,2486,2487,6,138,-1,0,2487,2489,1,0,0,0,2488, + 2440,1,0,0,0,2488,2452,1,0,0,0,2488,2464,1,0,0,0,2489,277,1,0,0,0,2490, + 2491,7,2,0,0,2491,279,1,0,0,0,2492,2503,3,282,141,0,2493,2495,5,187,0, + 0,2494,2493,1,0,0,0,2494,2495,1,0,0,0,2495,2496,1,0,0,0,2496,2498,5,11, + 0,0,2497,2499,5,187,0,0,2498,2497,1,0,0,0,2498,2499,1,0,0,0,2499,2500, + 1,0,0,0,2500,2502,3,282,141,0,2501,2494,1,0,0,0,2502,2505,1,0,0,0,2503, + 2501,1,0,0,0,2503,2504,1,0,0,0,2504,281,1,0,0,0,2505,2503,1,0,0,0,2506, + 2517,3,284,142,0,2507,2509,5,187,0,0,2508,2507,1,0,0,0,2508,2509,1,0, + 0,0,2509,2510,1,0,0,0,2510,2512,5,17,0,0,2511,2513,5,187,0,0,2512,2511, + 1,0,0,0,2512,2513,1,0,0,0,2513,2514,1,0,0,0,2514,2516,3,284,142,0,2515, + 2508,1,0,0,0,2516,2519,1,0,0,0,2517,2515,1,0,0,0,2517,2518,1,0,0,0,2518, + 283,1,0,0,0,2519,2517,1,0,0,0,2520,2532,3,288,144,0,2521,2523,5,187,0, + 0,2522,2521,1,0,0,0,2522,2523,1,0,0,0,2523,2524,1,0,0,0,2524,2526,3,286, + 143,0,2525,2527,5,187,0,0,2526,2525,1,0,0,0,2526,2527,1,0,0,0,2527,2528, + 1,0,0,0,2528,2529,3,288,144,0,2529,2531,1,0,0,0,2530,2522,1,0,0,0,2531, + 2534,1,0,0,0,2532,2530,1,0,0,0,2532,2533,1,0,0,0,2533,285,1,0,0,0,2534, + 2532,1,0,0,0,2535,2536,7,3,0,0,2536,287,1,0,0,0,2537,2549,3,292,146,0, + 2538,2540,5,187,0,0,2539,2538,1,0,0,0,2539,2540,1,0,0,0,2540,2541,1,0, + 0,0,2541,2543,3,290,145,0,2542,2544,5,187,0,0,2543,2542,1,0,0,0,2543, + 2544,1,0,0,0,2544,2545,1,0,0,0,2545,2546,3,292,146,0,2546,2548,1,0,0, + 0,2547,2539,1,0,0,0,2548,2551,1,0,0,0,2549,2547,1,0,0,0,2549,2550,1,0, + 0,0,2550,289,1,0,0,0,2551,2549,1,0,0,0,2552,2553,7,4,0,0,2553,291,1,0, + 0,0,2554,2566,3,296,148,0,2555,2557,5,187,0,0,2556,2555,1,0,0,0,2556, + 2557,1,0,0,0,2557,2558,1,0,0,0,2558,2560,3,294,147,0,2559,2561,5,187, + 0,0,2560,2559,1,0,0,0,2560,2561,1,0,0,0,2561,2562,1,0,0,0,2562,2563,3, + 296,148,0,2563,2565,1,0,0,0,2564,2556,1,0,0,0,2565,2568,1,0,0,0,2566, + 2564,1,0,0,0,2566,2567,1,0,0,0,2567,293,1,0,0,0,2568,2566,1,0,0,0,2569, + 2570,7,5,0,0,2570,295,1,0,0,0,2571,2582,3,298,149,0,2572,2574,5,187,0, + 0,2573,2572,1,0,0,0,2573,2574,1,0,0,0,2574,2575,1,0,0,0,2575,2577,5,23, + 0,0,2576,2578,5,187,0,0,2577,2576,1,0,0,0,2577,2578,1,0,0,0,2578,2579, + 1,0,0,0,2579,2581,3,298,149,0,2580,2573,1,0,0,0,2581,2584,1,0,0,0,2582, + 2580,1,0,0,0,2582,2583,1,0,0,0,2583,297,1,0,0,0,2584,2582,1,0,0,0,2585, + 2593,3,308,154,0,2586,2594,3,302,151,0,2587,2589,3,300,150,0,2588,2587, + 1,0,0,0,2589,2590,1,0,0,0,2590,2588,1,0,0,0,2590,2591,1,0,0,0,2591,2594, + 1,0,0,0,2592,2594,3,306,153,0,2593,2586,1,0,0,0,2593,2588,1,0,0,0,2593, + 2592,1,0,0,0,2593,2594,1,0,0,0,2594,299,1,0,0,0,2595,2596,5,187,0,0,2596, + 2598,5,99,0,0,2597,2599,5,187,0,0,2598,2597,1,0,0,0,2598,2599,1,0,0,0, + 2599,2600,1,0,0,0,2600,2615,3,310,155,0,2601,2602,5,7,0,0,2602,2603,3, + 266,133,0,2603,2604,5,8,0,0,2604,2615,1,0,0,0,2605,2607,5,7,0,0,2606, + 2608,3,266,133,0,2607,2606,1,0,0,0,2607,2608,1,0,0,0,2608,2609,1,0,0, + 0,2609,2611,7,6,0,0,2610,2612,3,266,133,0,2611,2610,1,0,0,0,2611,2612, + 1,0,0,0,2612,2613,1,0,0,0,2613,2615,5,8,0,0,2614,2595,1,0,0,0,2614,2601, + 1,0,0,0,2614,2605,1,0,0,0,2615,301,1,0,0,0,2616,2628,3,304,152,0,2617, + 2618,5,187,0,0,2618,2619,5,138,0,0,2619,2620,5,187,0,0,2620,2628,5,154, + 0,0,2621,2622,5,187,0,0,2622,2623,5,82,0,0,2623,2624,5,187,0,0,2624,2628, + 5,154,0,0,2625,2626,5,187,0,0,2626,2628,5,66,0,0,2627,2616,1,0,0,0,2627, + 2617,1,0,0,0,2627,2621,1,0,0,0,2627,2625,1,0,0,0,2628,2630,1,0,0,0,2629, + 2631,5,187,0,0,2630,2629,1,0,0,0,2630,2631,1,0,0,0,2631,2632,1,0,0,0, + 2632,2633,3,310,155,0,2633,303,1,0,0,0,2634,2636,5,187,0,0,2635,2634, + 1,0,0,0,2635,2636,1,0,0,0,2636,2637,1,0,0,0,2637,2638,5,24,0,0,2638,305, + 1,0,0,0,2639,2640,5,187,0,0,2640,2641,5,102,0,0,2641,2642,5,187,0,0,2642, + 2650,5,118,0,0,2643,2644,5,187,0,0,2644,2645,5,102,0,0,2645,2646,5,187, + 0,0,2646,2647,5,116,0,0,2647,2648,5,187,0,0,2648,2650,5,118,0,0,2649, + 2639,1,0,0,0,2649,2643,1,0,0,0,2650,307,1,0,0,0,2651,2653,5,170,0,0,2652, + 2654,5,187,0,0,2653,2652,1,0,0,0,2653,2654,1,0,0,0,2654,2656,1,0,0,0, + 2655,2651,1,0,0,0,2656,2659,1,0,0,0,2657,2655,1,0,0,0,2657,2658,1,0,0, + 0,2658,2660,1,0,0,0,2659,2657,1,0,0,0,2660,2665,3,310,155,0,2661,2663, + 5,187,0,0,2662,2661,1,0,0,0,2662,2663,1,0,0,0,2663,2664,1,0,0,0,2664, + 2666,5,171,0,0,2665,2662,1,0,0,0,2665,2666,1,0,0,0,2666,309,1,0,0,0,2667, + 2674,3,312,156,0,2668,2670,5,187,0,0,2669,2668,1,0,0,0,2669,2670,1,0, + 0,0,2670,2671,1,0,0,0,2671,2673,3,348,174,0,2672,2669,1,0,0,0,2673,2676, + 1,0,0,0,2674,2672,1,0,0,0,2674,2675,1,0,0,0,2675,311,1,0,0,0,2676,2674, + 1,0,0,0,2677,2687,3,320,160,0,2678,2687,3,358,179,0,2679,2687,3,350,175, + 0,2680,2687,3,332,166,0,2681,2687,3,334,167,0,2682,2687,3,344,172,0,2683, + 2687,3,346,173,0,2684,2687,3,354,177,0,2685,2687,3,314,157,0,2686,2677, + 1,0,0,0,2686,2678,1,0,0,0,2686,2679,1,0,0,0,2686,2680,1,0,0,0,2686,2681, + 1,0,0,0,2686,2682,1,0,0,0,2686,2683,1,0,0,0,2686,2684,1,0,0,0,2686,2685, + 1,0,0,0,2687,313,1,0,0,0,2688,2690,5,48,0,0,2689,2691,5,187,0,0,2690, + 2689,1,0,0,0,2690,2691,1,0,0,0,2691,2692,1,0,0,0,2692,2694,5,2,0,0,2693, + 2695,5,187,0,0,2694,2693,1,0,0,0,2694,2695,1,0,0,0,2695,2696,1,0,0,0, + 2696,2698,3,316,158,0,2697,2699,5,187,0,0,2698,2697,1,0,0,0,2698,2699, + 1,0,0,0,2699,2700,1,0,0,0,2700,2701,5,3,0,0,2701,2745,1,0,0,0,2702,2704, + 5,46,0,0,2703,2705,5,187,0,0,2704,2703,1,0,0,0,2704,2705,1,0,0,0,2705, + 2706,1,0,0,0,2706,2708,5,2,0,0,2707,2709,5,187,0,0,2708,2707,1,0,0,0, + 2708,2709,1,0,0,0,2709,2710,1,0,0,0,2710,2712,3,316,158,0,2711,2713,5, + 187,0,0,2712,2711,1,0,0,0,2712,2713,1,0,0,0,2713,2714,1,0,0,0,2714,2715, + 5,3,0,0,2715,2745,1,0,0,0,2716,2718,5,117,0,0,2717,2719,5,187,0,0,2718, + 2717,1,0,0,0,2718,2719,1,0,0,0,2719,2720,1,0,0,0,2720,2722,5,2,0,0,2721, + 2723,5,187,0,0,2722,2721,1,0,0,0,2722,2723,1,0,0,0,2723,2724,1,0,0,0, + 2724,2726,3,316,158,0,2725,2727,5,187,0,0,2726,2725,1,0,0,0,2726,2727, + 1,0,0,0,2727,2728,1,0,0,0,2728,2729,5,3,0,0,2729,2745,1,0,0,0,2730,2732, + 5,158,0,0,2731,2733,5,187,0,0,2732,2731,1,0,0,0,2732,2733,1,0,0,0,2733, + 2734,1,0,0,0,2734,2736,5,2,0,0,2735,2737,5,187,0,0,2736,2735,1,0,0,0, + 2736,2737,1,0,0,0,2737,2738,1,0,0,0,2738,2740,3,316,158,0,2739,2741,5, + 187,0,0,2740,2739,1,0,0,0,2740,2741,1,0,0,0,2741,2742,1,0,0,0,2742,2743, + 5,3,0,0,2743,2745,1,0,0,0,2744,2688,1,0,0,0,2744,2702,1,0,0,0,2744,2716, + 1,0,0,0,2744,2730,1,0,0,0,2745,315,1,0,0,0,2746,2747,3,318,159,0,2747, + 2748,5,187,0,0,2748,2749,3,224,112,0,2749,317,1,0,0,0,2750,2751,3,354, + 177,0,2751,2752,5,187,0,0,2752,2753,5,99,0,0,2753,2754,5,187,0,0,2754, + 2755,3,266,133,0,2755,319,1,0,0,0,2756,2763,3,356,178,0,2757,2763,5,172, + 0,0,2758,2763,3,322,161,0,2759,2763,5,118,0,0,2760,2763,3,324,162,0,2761, + 2763,3,328,164,0,2762,2756,1,0,0,0,2762,2757,1,0,0,0,2762,2758,1,0,0, + 0,2762,2759,1,0,0,0,2762,2760,1,0,0,0,2762,2761,1,0,0,0,2763,321,1,0, + 0,0,2764,2765,7,7,0,0,2765,323,1,0,0,0,2766,2768,5,7,0,0,2767,2769,5, + 187,0,0,2768,2767,1,0,0,0,2768,2769,1,0,0,0,2769,2783,1,0,0,0,2770,2772, + 3,266,133,0,2771,2773,5,187,0,0,2772,2771,1,0,0,0,2772,2773,1,0,0,0,2773, + 2780,1,0,0,0,2774,2776,3,326,163,0,2775,2777,5,187,0,0,2776,2775,1,0, + 0,0,2776,2777,1,0,0,0,2777,2779,1,0,0,0,2778,2774,1,0,0,0,2779,2782,1, + 0,0,0,2780,2778,1,0,0,0,2780,2781,1,0,0,0,2781,2784,1,0,0,0,2782,2780, + 1,0,0,0,2783,2770,1,0,0,0,2783,2784,1,0,0,0,2784,2785,1,0,0,0,2785,2786, + 5,8,0,0,2786,325,1,0,0,0,2787,2789,5,4,0,0,2788,2790,5,187,0,0,2789,2788, + 1,0,0,0,2789,2790,1,0,0,0,2790,2792,1,0,0,0,2791,2793,3,266,133,0,2792, + 2791,1,0,0,0,2792,2793,1,0,0,0,2793,327,1,0,0,0,2794,2796,5,9,0,0,2795, + 2797,5,187,0,0,2796,2795,1,0,0,0,2796,2797,1,0,0,0,2797,2798,1,0,0,0, + 2798,2800,3,330,165,0,2799,2801,5,187,0,0,2800,2799,1,0,0,0,2800,2801, + 1,0,0,0,2801,2812,1,0,0,0,2802,2804,5,4,0,0,2803,2805,5,187,0,0,2804, + 2803,1,0,0,0,2804,2805,1,0,0,0,2805,2806,1,0,0,0,2806,2808,3,330,165, + 0,2807,2809,5,187,0,0,2808,2807,1,0,0,0,2808,2809,1,0,0,0,2809,2811,1, + 0,0,0,2810,2802,1,0,0,0,2811,2814,1,0,0,0,2812,2810,1,0,0,0,2812,2813, + 1,0,0,0,2813,2815,1,0,0,0,2814,2812,1,0,0,0,2815,2816,5,10,0,0,2816,329, + 1,0,0,0,2817,2820,3,370,185,0,2818,2820,5,172,0,0,2819,2817,1,0,0,0,2819, + 2818,1,0,0,0,2820,2822,1,0,0,0,2821,2823,5,187,0,0,2822,2821,1,0,0,0, + 2822,2823,1,0,0,0,2823,2824,1,0,0,0,2824,2826,5,168,0,0,2825,2827,5,187, + 0,0,2826,2825,1,0,0,0,2826,2827,1,0,0,0,2827,2828,1,0,0,0,2828,2829,3, + 266,133,0,2829,331,1,0,0,0,2830,2832,5,2,0,0,2831,2833,5,187,0,0,2832, + 2831,1,0,0,0,2832,2833,1,0,0,0,2833,2834,1,0,0,0,2834,2836,3,266,133, + 0,2835,2837,5,187,0,0,2836,2835,1,0,0,0,2836,2837,1,0,0,0,2837,2838,1, + 0,0,0,2838,2839,5,3,0,0,2839,333,1,0,0,0,2840,2842,5,68,0,0,2841,2843, + 5,187,0,0,2842,2841,1,0,0,0,2842,2843,1,0,0,0,2843,2844,1,0,0,0,2844, + 2846,5,2,0,0,2845,2847,5,187,0,0,2846,2845,1,0,0,0,2846,2847,1,0,0,0, + 2847,2848,1,0,0,0,2848,2850,5,165,0,0,2849,2851,5,187,0,0,2850,2849,1, + 0,0,0,2850,2851,1,0,0,0,2851,2852,1,0,0,0,2852,2918,5,3,0,0,2853,2855, + 5,60,0,0,2854,2856,5,187,0,0,2855,2854,1,0,0,0,2855,2856,1,0,0,0,2856, + 2857,1,0,0,0,2857,2859,5,2,0,0,2858,2860,5,187,0,0,2859,2858,1,0,0,0, + 2859,2860,1,0,0,0,2860,2861,1,0,0,0,2861,2863,3,338,169,0,2862,2864,5, + 187,0,0,2863,2862,1,0,0,0,2863,2864,1,0,0,0,2864,2875,1,0,0,0,2865,2867, + 5,52,0,0,2866,2868,5,187,0,0,2867,2866,1,0,0,0,2867,2868,1,0,0,0,2868, + 2869,1,0,0,0,2869,2876,3,136,68,0,2870,2872,5,4,0,0,2871,2873,5,187,0, + 0,2872,2871,1,0,0,0,2872,2873,1,0,0,0,2873,2874,1,0,0,0,2874,2876,3,338, + 169,0,2875,2865,1,0,0,0,2875,2870,1,0,0,0,2876,2878,1,0,0,0,2877,2879, + 5,187,0,0,2878,2877,1,0,0,0,2878,2879,1,0,0,0,2879,2880,1,0,0,0,2880, + 2881,5,3,0,0,2881,2918,1,0,0,0,2882,2884,3,336,168,0,2883,2885,5,187, + 0,0,2884,2883,1,0,0,0,2884,2885,1,0,0,0,2885,2886,1,0,0,0,2886,2888,5, + 2,0,0,2887,2889,5,187,0,0,2888,2887,1,0,0,0,2888,2889,1,0,0,0,2889,2894, + 1,0,0,0,2890,2892,5,78,0,0,2891,2893,5,187,0,0,2892,2891,1,0,0,0,2892, + 2893,1,0,0,0,2893,2895,1,0,0,0,2894,2890,1,0,0,0,2894,2895,1,0,0,0,2895, + 2913,1,0,0,0,2896,2898,3,338,169,0,2897,2899,5,187,0,0,2898,2897,1,0, + 0,0,2898,2899,1,0,0,0,2899,2910,1,0,0,0,2900,2902,5,4,0,0,2901,2903,5, + 187,0,0,2902,2901,1,0,0,0,2902,2903,1,0,0,0,2903,2904,1,0,0,0,2904,2906, + 3,338,169,0,2905,2907,5,187,0,0,2906,2905,1,0,0,0,2906,2907,1,0,0,0,2907, + 2909,1,0,0,0,2908,2900,1,0,0,0,2909,2912,1,0,0,0,2910,2908,1,0,0,0,2910, + 2911,1,0,0,0,2911,2914,1,0,0,0,2912,2910,1,0,0,0,2913,2896,1,0,0,0,2913, + 2914,1,0,0,0,2914,2915,1,0,0,0,2915,2916,5,3,0,0,2916,2918,1,0,0,0,2917, + 2840,1,0,0,0,2917,2853,1,0,0,0,2917,2882,1,0,0,0,2918,335,1,0,0,0,2919, + 2920,3,370,185,0,2920,337,1,0,0,0,2921,2923,3,370,185,0,2922,2924,5,187, + 0,0,2923,2922,1,0,0,0,2923,2924,1,0,0,0,2924,2925,1,0,0,0,2925,2926,5, + 168,0,0,2926,2928,5,6,0,0,2927,2929,5,187,0,0,2928,2927,1,0,0,0,2928, + 2929,1,0,0,0,2929,2931,1,0,0,0,2930,2921,1,0,0,0,2930,2931,1,0,0,0,2931, + 2932,1,0,0,0,2932,2935,3,266,133,0,2933,2935,3,340,170,0,2934,2930,1, + 0,0,0,2934,2933,1,0,0,0,2935,339,1,0,0,0,2936,2938,3,342,171,0,2937,2939, + 5,187,0,0,2938,2937,1,0,0,0,2938,2939,1,0,0,0,2939,2940,1,0,0,0,2940, + 2941,5,170,0,0,2941,2943,5,15,0,0,2942,2944,5,187,0,0,2943,2942,1,0,0, + 0,2943,2944,1,0,0,0,2944,2945,1,0,0,0,2945,2947,3,266,133,0,2946,2948, + 5,187,0,0,2947,2946,1,0,0,0,2947,2948,1,0,0,0,2948,341,1,0,0,0,2949,2974, + 3,370,185,0,2950,2952,5,2,0,0,2951,2953,5,187,0,0,2952,2951,1,0,0,0,2952, + 2953,1,0,0,0,2953,2954,1,0,0,0,2954,2956,3,370,185,0,2955,2957,5,187, + 0,0,2956,2955,1,0,0,0,2956,2957,1,0,0,0,2957,2968,1,0,0,0,2958,2960,5, + 4,0,0,2959,2961,5,187,0,0,2960,2959,1,0,0,0,2960,2961,1,0,0,0,2961,2962, + 1,0,0,0,2962,2964,3,370,185,0,2963,2965,5,187,0,0,2964,2963,1,0,0,0,2964, + 2965,1,0,0,0,2965,2967,1,0,0,0,2966,2958,1,0,0,0,2967,2970,1,0,0,0,2968, + 2966,1,0,0,0,2968,2969,1,0,0,0,2969,2971,1,0,0,0,2970,2968,1,0,0,0,2971, + 2972,5,3,0,0,2972,2974,1,0,0,0,2973,2949,1,0,0,0,2973,2950,1,0,0,0,2974, + 343,1,0,0,0,2975,2980,3,234,117,0,2976,2978,5,187,0,0,2977,2976,1,0,0, + 0,2977,2978,1,0,0,0,2978,2979,1,0,0,0,2979,2981,3,236,118,0,2980,2977, + 1,0,0,0,2981,2982,1,0,0,0,2982,2980,1,0,0,0,2982,2983,1,0,0,0,2983,345, + 1,0,0,0,2984,2986,7,8,0,0,2985,2987,5,187,0,0,2986,2985,1,0,0,0,2986, + 2987,1,0,0,0,2987,2988,1,0,0,0,2988,2990,5,9,0,0,2989,2991,5,187,0,0, + 2990,2989,1,0,0,0,2990,2991,1,0,0,0,2991,2992,1,0,0,0,2992,2994,5,109, + 0,0,2993,2995,5,187,0,0,2994,2993,1,0,0,0,2994,2995,1,0,0,0,2995,2996, + 1,0,0,0,2996,3001,3,226,113,0,2997,2999,5,187,0,0,2998,2997,1,0,0,0,2998, + 2999,1,0,0,0,2999,3000,1,0,0,0,3000,3002,3,224,112,0,3001,2998,1,0,0, + 0,3001,3002,1,0,0,0,3002,3007,1,0,0,0,3003,3005,5,187,0,0,3004,3003,1, + 0,0,0,3004,3005,1,0,0,0,3005,3006,1,0,0,0,3006,3008,3,188,94,0,3007,3004, + 1,0,0,0,3007,3008,1,0,0,0,3008,3010,1,0,0,0,3009,3011,5,187,0,0,3010, + 3009,1,0,0,0,3010,3011,1,0,0,0,3011,3012,1,0,0,0,3012,3013,5,10,0,0,3013, + 347,1,0,0,0,3014,3016,5,5,0,0,3015,3017,5,187,0,0,3016,3015,1,0,0,0,3016, + 3017,1,0,0,0,3017,3020,1,0,0,0,3018,3021,3,362,181,0,3019,3021,5,165, + 0,0,3020,3018,1,0,0,0,3020,3019,1,0,0,0,3021,349,1,0,0,0,3022,3027,5, + 59,0,0,3023,3025,5,187,0,0,3024,3023,1,0,0,0,3024,3025,1,0,0,0,3025,3026, + 1,0,0,0,3026,3028,3,352,176,0,3027,3024,1,0,0,0,3028,3029,1,0,0,0,3029, + 3027,1,0,0,0,3029,3030,1,0,0,0,3030,3045,1,0,0,0,3031,3033,5,59,0,0,3032, + 3034,5,187,0,0,3033,3032,1,0,0,0,3033,3034,1,0,0,0,3034,3035,1,0,0,0, + 3035,3040,3,266,133,0,3036,3038,5,187,0,0,3037,3036,1,0,0,0,3037,3038, + 1,0,0,0,3038,3039,1,0,0,0,3039,3041,3,352,176,0,3040,3037,1,0,0,0,3041, + 3042,1,0,0,0,3042,3040,1,0,0,0,3042,3043,1,0,0,0,3043,3045,1,0,0,0,3044, + 3022,1,0,0,0,3044,3031,1,0,0,0,3045,3054,1,0,0,0,3046,3048,5,187,0,0, + 3047,3046,1,0,0,0,3047,3048,1,0,0,0,3048,3049,1,0,0,0,3049,3051,5,80, + 0,0,3050,3052,5,187,0,0,3051,3050,1,0,0,0,3051,3052,1,0,0,0,3052,3053, + 1,0,0,0,3053,3055,3,266,133,0,3054,3047,1,0,0,0,3054,3055,1,0,0,0,3055, + 3057,1,0,0,0,3056,3058,5,187,0,0,3057,3056,1,0,0,0,3057,3058,1,0,0,0, + 3058,3059,1,0,0,0,3059,3060,5,81,0,0,3060,351,1,0,0,0,3061,3063,5,152, + 0,0,3062,3064,5,187,0,0,3063,3062,1,0,0,0,3063,3064,1,0,0,0,3064,3065, + 1,0,0,0,3065,3067,3,266,133,0,3066,3068,5,187,0,0,3067,3066,1,0,0,0,3067, + 3068,1,0,0,0,3068,3069,1,0,0,0,3069,3071,5,141,0,0,3070,3072,5,187,0, + 0,3071,3070,1,0,0,0,3071,3072,1,0,0,0,3072,3073,1,0,0,0,3073,3074,3,266, + 133,0,3074,353,1,0,0,0,3075,3076,3,370,185,0,3076,355,1,0,0,0,3077,3080, + 3,366,183,0,3078,3080,3,364,182,0,3079,3077,1,0,0,0,3079,3078,1,0,0,0, + 3080,357,1,0,0,0,3081,3084,5,25,0,0,3082,3085,3,370,185,0,3083,3085,5, + 174,0,0,3084,3082,1,0,0,0,3084,3083,1,0,0,0,3085,359,1,0,0,0,3086,3088, + 3,312,156,0,3087,3089,5,187,0,0,3088,3087,1,0,0,0,3088,3089,1,0,0,0,3089, + 3090,1,0,0,0,3090,3091,3,348,174,0,3091,361,1,0,0,0,3092,3093,3,370,185, + 0,3093,363,1,0,0,0,3094,3095,5,174,0,0,3095,365,1,0,0,0,3096,3097,7,9, + 0,0,3097,367,1,0,0,0,3098,3101,3,370,185,0,3099,3100,5,5,0,0,3100,3102, + 3,370,185,0,3101,3099,1,0,0,0,3101,3102,1,0,0,0,3102,369,1,0,0,0,3103, + 3109,5,183,0,0,3104,3105,5,186,0,0,3105,3109,6,185,-1,0,3106,3109,5,175, + 0,0,3107,3109,3,372,186,0,3108,3103,1,0,0,0,3108,3104,1,0,0,0,3108,3106, + 1,0,0,0,3108,3107,1,0,0,0,3109,371,1,0,0,0,3110,3111,7,10,0,0,3111,373, + 1,0,0,0,3112,3113,7,11,0,0,3113,375,1,0,0,0,3114,3115,7,12,0,0,3115,377, + 1,0,0,0,3116,3117,7,13,0,0,3117,379,1,0,0,0,533,382,386,391,395,400,403, + 407,410,438,444,451,455,459,463,466,470,474,478,483,487,489,496,500,509, + 514,524,528,532,537,550,554,562,566,570,574,582,586,590,594,609,614,620, + 624,627,630,636,640,645,648,652,655,658,662,666,672,676,681,699,710,716, + 720,727,747,751,754,757,760,763,767,772,776,786,790,795,800,805,811,815, + 819,824,831,835,839,842,859,863,867,871,875,878,881,889,894,898,902,906, + 915,919,924,928,932,936,940,942,946,950,952,960,965,969,973,977,982,988, + 992,1005,1009,1012,1015,1018,1022,1026,1029,1032,1036,1040,1046,1050, + 1054,1058,1064,1068,1072,1076,1082,1086,1091,1103,1107,1111,1116,1134, + 1141,1154,1161,1177,1181,1190,1198,1201,1211,1214,1222,1225,1231,1234, + 1240,1255,1273,1280,1287,1298,1321,1330,1336,1340,1345,1354,1358,1363, + 1369,1375,1381,1385,1389,1395,1399,1403,1409,1413,1417,1423,1427,1431, + 1435,1439,1445,1449,1453,1457,1461,1471,1477,1484,1489,1495,1500,1517, + 1523,1529,1533,1537,1546,1560,1565,1570,1574,1579,1585,1590,1593,1597, + 1601,1605,1611,1615,1620,1625,1629,1632,1634,1638,1642,1648,1652,1657, + 1661,1670,1676,1684,1688,1692,1696,1703,1707,1711,1715,1718,1721,1728, + 1734,1738,1743,1750,1753,1756,1761,1765,1769,1774,1778,1787,1791,1796, + 1810,1812,1814,1819,1829,1835,1842,1855,1859,1863,1867,1872,1877,1881, + 1885,1889,1893,1897,1903,1907,1911,1915,1920,1926,1929,1935,1938,1944, + 1948,1952,1956,1960,1965,1970,1974,1979,1982,1991,2000,2005,2018,2021, + 2029,2033,2038,2043,2047,2052,2058,2063,2070,2074,2078,2080,2084,2086, + 2090,2092,2098,2104,2108,2111,2114,2120,2123,2126,2130,2136,2139,2142, + 2146,2150,2154,2156,2160,2162,2166,2168,2172,2174,2180,2184,2188,2192, + 2196,2200,2204,2208,2212,2215,2221,2225,2229,2232,2237,2242,2246,2250, + 2253,2256,2261,2266,2269,2272,2275,2278,2281,2285,2289,2293,2297,2307, + 2310,2313,2317,2320,2323,2327,2331,2335,2339,2343,2347,2349,2352,2356, + 2360,2364,2368,2370,2376,2379,2382,2393,2406,2416,2426,2431,2435,2442, + 2446,2450,2454,2458,2466,2470,2474,2478,2484,2488,2494,2498,2503,2508, + 2512,2517,2522,2526,2532,2539,2543,2549,2556,2560,2566,2573,2577,2582, + 2590,2593,2598,2607,2611,2614,2627,2630,2635,2649,2653,2657,2662,2665, + 2669,2674,2686,2690,2694,2698,2704,2708,2712,2718,2722,2726,2732,2736, + 2740,2744,2762,2768,2772,2776,2780,2783,2789,2792,2796,2800,2804,2808, + 2812,2819,2822,2826,2832,2836,2842,2846,2850,2855,2859,2863,2867,2872, + 2875,2878,2884,2888,2892,2894,2898,2902,2906,2910,2913,2917,2923,2928, + 2930,2934,2938,2943,2947,2952,2956,2960,2964,2968,2973,2977,2982,2986, + 2990,2994,2998,3001,3004,3007,3010,3016,3020,3024,3029,3033,3037,3042, + 3044,3047,3051,3054,3057,3063,3067,3071,3079,3084,3088,3101,3108 }; staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); @@ -1488,29 +1495,29 @@ CypherParser::IC_StatementsContext* CypherParser::iC_Statements() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(378); + setState(380); oC_Cypher(); - setState(389); + setState(391); _errHandler->sync(this); alt = getInterpreter()->adaptivePredict(_input, 2, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(380); + setState(382); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(379); + setState(381); match(CypherParser::SP); } - setState(382); - match(CypherParser::T__0); setState(384); + match(CypherParser::T__0); + setState(386); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 1, _ctx)) { case 1: { - setState(383); + setState(385); match(CypherParser::SP); break; } @@ -1518,22 +1525,22 @@ CypherParser::IC_StatementsContext* CypherParser::iC_Statements() { default: break; } - setState(386); + setState(388); oC_Cypher(); } - setState(391); + setState(393); _errHandler->sync(this); alt = getInterpreter()->adaptivePredict(_input, 2, _ctx); } - setState(393); + setState(395); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(392); + setState(394); match(CypherParser::SP); } - setState(395); + setState(397); match(CypherParser::EOF); } @@ -1588,41 +1595,41 @@ CypherParser::OC_CypherContext* CypherParser::oC_Cypher() { }); try { enterOuterAlt(_localctx, 1); - setState(398); + setState(400); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::EXPLAIN || _la == CypherParser::PROFILE) { - setState(397); + setState(399); oC_AnyCypherOption(); } - setState(401); + setState(403); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(400); + setState(402); match(CypherParser::SP); } - setState(403); + setState(405); oC_Statement(); - setState(408); + setState(410); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 7, _ctx)) { case 1: { - setState(405); + setState(407); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(404); + setState(406); match(CypherParser::SP); } - setState(407); + setState(409); match(CypherParser::T__0); break; } @@ -1769,187 +1776,187 @@ CypherParser::OC_StatementContext* CypherParser::oC_Statement() { exitRule(); }); try { - setState(436); + setState(438); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 8, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(410); + setState(412); oC_Query(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(411); + setState(413); iC_Analyze(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(412); + setState(414); iC_CreateUser(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(413); + setState(415); iC_CreateRole(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(414); + setState(416); iC_CreateNodeTable(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(415); + setState(417); iC_CreateRelTable(); break; } case 7: { enterOuterAlt(_localctx, 7); - setState(416); + setState(418); iC_CreateIndex(); break; } case 8: { enterOuterAlt(_localctx, 8); - setState(417); + setState(419); iC_CreateSequence(); break; } case 9: { enterOuterAlt(_localctx, 9); - setState(418); + setState(420); iC_CreateType(); break; } case 10: { enterOuterAlt(_localctx, 10); - setState(419); + setState(421); iC_Drop(); break; } case 11: { enterOuterAlt(_localctx, 11); - setState(420); + setState(422); iC_AlterTable(); break; } case 12: { enterOuterAlt(_localctx, 12); - setState(421); + setState(423); iC_CopyFrom(); break; } case 13: { enterOuterAlt(_localctx, 13); - setState(422); + setState(424); iC_CopyFromByColumn(); break; } case 14: { enterOuterAlt(_localctx, 14); - setState(423); + setState(425); iC_CopyTO(); break; } case 15: { enterOuterAlt(_localctx, 15); - setState(424); + setState(426); iC_StandaloneCall(); break; } case 16: { enterOuterAlt(_localctx, 16); - setState(425); + setState(427); iC_CreateMacro(); break; } case 17: { enterOuterAlt(_localctx, 17); - setState(426); + setState(428); iC_CommentOn(); break; } case 18: { enterOuterAlt(_localctx, 18); - setState(427); + setState(429); iC_Transaction(); break; } case 19: { enterOuterAlt(_localctx, 19); - setState(428); + setState(430); iC_Extension(); break; } case 20: { enterOuterAlt(_localctx, 20); - setState(429); + setState(431); iC_ExportDatabase(); break; } case 21: { enterOuterAlt(_localctx, 21); - setState(430); + setState(432); iC_ImportDatabase(); break; } case 22: { enterOuterAlt(_localctx, 22); - setState(431); + setState(433); iC_AttachDatabase(); break; } case 23: { enterOuterAlt(_localctx, 23); - setState(432); + setState(434); iC_DetachDatabase(); break; } case 24: { enterOuterAlt(_localctx, 24); - setState(433); + setState(435); iC_UseDatabase(); break; } case 25: { enterOuterAlt(_localctx, 25); - setState(434); + setState(436); iC_CreateGraph(); break; } case 26: { enterOuterAlt(_localctx, 26); - setState(435); + setState(437); iC_UseGraph(); break; } @@ -2026,18 +2033,18 @@ CypherParser::IC_CopyFromContext* CypherParser::iC_CopyFrom() { }); try { enterOuterAlt(_localctx, 1); - setState(438); + setState(440); match(CypherParser::COPY); - setState(439); + setState(441); match(CypherParser::SP); - setState(440); - oC_SchemaName(); setState(442); + oC_SchemaName(); + setState(444); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 9, _ctx)) { case 1: { - setState(441); + setState(443); iC_ColumnNames(); break; } @@ -2045,48 +2052,48 @@ CypherParser::IC_CopyFromContext* CypherParser::iC_CopyFrom() { default: break; } - setState(444); - match(CypherParser::SP); - setState(445); - match(CypherParser::FROM); setState(446); match(CypherParser::SP); setState(447); + match(CypherParser::FROM); + setState(448); + match(CypherParser::SP); + setState(449); iC_ScanSource(); - setState(461); + setState(463); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 13, _ctx)) { case 1: { - setState(449); + setState(451); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(448); + setState(450); match(CypherParser::SP); } - setState(451); - match(CypherParser::T__1); setState(453); + match(CypherParser::T__1); + setState(455); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(452); + setState(454); match(CypherParser::SP); } - setState(455); - iC_Options(); setState(457); + iC_Options(); + setState(459); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(456); + setState(458); match(CypherParser::SP); } - setState(459); + setState(461); match(CypherParser::T__2); break; } @@ -2148,25 +2155,25 @@ CypherParser::IC_ColumnNamesContext* CypherParser::iC_ColumnNames() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(464); + setState(466); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(463); + setState(465); match(CypherParser::SP); } - setState(466); - match(CypherParser::T__1); setState(468); + match(CypherParser::T__1); + setState(470); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(467); + setState(469); match(CypherParser::SP); } - setState(487); + setState(489); _errHandler->sync(this); _la = _input->LA(1); @@ -2174,48 +2181,48 @@ CypherParser::IC_ColumnNamesContext* CypherParser::iC_ColumnNames() { ((1ULL << _la) & -6370763885380632576) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9219449713480129315) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 324400320977652447) != 0)) { - setState(470); + setState(472); oC_SchemaName(); - setState(481); + setState(483); _errHandler->sync(this); alt = getInterpreter()->adaptivePredict(_input, 18, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(472); + setState(474); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(471); + setState(473); match(CypherParser::SP); } - setState(474); - match(CypherParser::T__3); setState(476); + match(CypherParser::T__3); + setState(478); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(475); + setState(477); match(CypherParser::SP); } - setState(478); + setState(480); oC_SchemaName(); } - setState(483); + setState(485); _errHandler->sync(this); alt = getInterpreter()->adaptivePredict(_input, 18, _ctx); } - setState(485); + setState(487); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(484); + setState(486); match(CypherParser::SP); } } - setState(489); + setState(491); match(CypherParser::T__2); } @@ -2285,79 +2292,79 @@ CypherParser::IC_ScanSourceContext* CypherParser::iC_ScanSource() { exitRule(); }); try { - setState(512); + setState(514); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 24, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(491); + setState(493); iC_FilePaths(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(492); - match(CypherParser::T__1); setState(494); + match(CypherParser::T__1); + setState(496); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(493); + setState(495); match(CypherParser::SP); } - setState(496); - oC_Query(); setState(498); + oC_Query(); + setState(500); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(497); + setState(499); match(CypherParser::SP); } - setState(500); + setState(502); match(CypherParser::T__2); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(502); + setState(504); oC_Parameter(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(503); + setState(505); oC_Variable(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(504); + setState(506); oC_Variable(); - setState(505); - match(CypherParser::T__4); setState(507); + match(CypherParser::T__4); + setState(509); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(506); + setState(508); match(CypherParser::SP); } - setState(509); + setState(511); oC_SchemaName(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(511); + setState(513); oC_FunctionInvocation(); break; } @@ -2438,67 +2445,67 @@ CypherParser::IC_CopyFromByColumnContext* CypherParser::iC_CopyFromByColumn() { }); try { enterOuterAlt(_localctx, 1); - setState(514); - match(CypherParser::COPY); - setState(515); - match(CypherParser::SP); setState(516); - oC_SchemaName(); + match(CypherParser::COPY); setState(517); match(CypherParser::SP); setState(518); - match(CypherParser::FROM); + oC_SchemaName(); setState(519); match(CypherParser::SP); setState(520); - match(CypherParser::T__1); + match(CypherParser::FROM); + setState(521); + match(CypherParser::SP); setState(522); + match(CypherParser::T__1); + setState(524); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(521); + setState(523); match(CypherParser::SP); } - setState(524); + setState(526); match(CypherParser::StringLiteral); - setState(535); + setState(537); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3 || _la == CypherParser::SP) { - setState(526); + setState(528); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(525); + setState(527); match(CypherParser::SP); } - setState(528); - match(CypherParser::T__3); setState(530); + match(CypherParser::T__3); + setState(532); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(529); + setState(531); match(CypherParser::SP); } - setState(532); + setState(534); match(CypherParser::StringLiteral); - setState(537); + setState(539); _errHandler->sync(this); _la = _input->LA(1); } - setState(538); - match(CypherParser::T__2); - setState(539); - match(CypherParser::SP); setState(540); - match(CypherParser::BY); + match(CypherParser::T__2); setState(541); match(CypherParser::SP); setState(542); + match(CypherParser::BY); + setState(543); + match(CypherParser::SP); + setState(544); match(CypherParser::COLUMN); } @@ -2565,74 +2572,74 @@ CypherParser::IC_CopyTOContext* CypherParser::iC_CopyTO() { }); try { enterOuterAlt(_localctx, 1); - setState(544); + setState(546); match(CypherParser::COPY); - setState(545); + setState(547); match(CypherParser::SP); - setState(546); - match(CypherParser::T__1); setState(548); + match(CypherParser::T__1); + setState(550); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(547); + setState(549); match(CypherParser::SP); } - setState(550); - oC_Query(); setState(552); + oC_Query(); + setState(554); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(551); + setState(553); match(CypherParser::SP); } - setState(554); - match(CypherParser::T__2); - setState(555); - match(CypherParser::SP); setState(556); - match(CypherParser::TO); + match(CypherParser::T__2); setState(557); match(CypherParser::SP); setState(558); + match(CypherParser::TO); + setState(559); + match(CypherParser::SP); + setState(560); match(CypherParser::StringLiteral); - setState(572); + setState(574); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 34, _ctx)) { case 1: { - setState(560); + setState(562); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(559); + setState(561); match(CypherParser::SP); } - setState(562); - match(CypherParser::T__1); setState(564); + match(CypherParser::T__1); + setState(566); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(563); + setState(565); match(CypherParser::SP); } - setState(566); - iC_Options(); setState(568); + iC_Options(); + setState(570); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(567); + setState(569); match(CypherParser::SP); } - setState(570); + setState(572); match(CypherParser::T__2); break; } @@ -2701,50 +2708,50 @@ CypherParser::IC_ExportDatabaseContext* CypherParser::iC_ExportDatabase() { }); try { enterOuterAlt(_localctx, 1); - setState(574); - match(CypherParser::EXPORT); - setState(575); - match(CypherParser::SP); setState(576); - match(CypherParser::DATABASE); + match(CypherParser::EXPORT); setState(577); match(CypherParser::SP); setState(578); + match(CypherParser::DATABASE); + setState(579); + match(CypherParser::SP); + setState(580); match(CypherParser::StringLiteral); - setState(592); + setState(594); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 38, _ctx)) { case 1: { - setState(580); + setState(582); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(579); + setState(581); match(CypherParser::SP); } - setState(582); - match(CypherParser::T__1); setState(584); + match(CypherParser::T__1); + setState(586); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(583); + setState(585); match(CypherParser::SP); } - setState(586); - iC_Options(); setState(588); + iC_Options(); + setState(590); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(587); + setState(589); match(CypherParser::SP); } - setState(590); + setState(592); match(CypherParser::T__2); break; } @@ -2808,15 +2815,15 @@ CypherParser::IC_ImportDatabaseContext* CypherParser::iC_ImportDatabase() { }); try { enterOuterAlt(_localctx, 1); - setState(594); - match(CypherParser::IMPORT); - setState(595); - match(CypherParser::SP); setState(596); - match(CypherParser::DATABASE); + match(CypherParser::IMPORT); setState(597); match(CypherParser::SP); setState(598); + match(CypherParser::DATABASE); + setState(599); + match(CypherParser::SP); + setState(600); match(CypherParser::StringLiteral); } @@ -2891,24 +2898,24 @@ CypherParser::IC_AttachDatabaseContext* CypherParser::iC_AttachDatabase() { }); try { enterOuterAlt(_localctx, 1); - setState(600); + setState(602); match(CypherParser::ATTACH); - setState(601); + setState(603); match(CypherParser::SP); - setState(602); + setState(604); match(CypherParser::StringLiteral); - setState(607); + setState(609); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 39, _ctx)) { case 1: { - setState(603); - match(CypherParser::SP); - setState(604); - match(CypherParser::AS); setState(605); match(CypherParser::SP); setState(606); + match(CypherParser::AS); + setState(607); + match(CypherParser::SP); + setState(608); oC_SchemaName(); break; } @@ -2916,48 +2923,48 @@ CypherParser::IC_AttachDatabaseContext* CypherParser::iC_AttachDatabase() { default: break; } - setState(609); + setState(611); match(CypherParser::SP); - setState(610); - match(CypherParser::T__1); setState(612); + match(CypherParser::T__1); + setState(614); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(611); + setState(613); match(CypherParser::SP); } - setState(614); + setState(616); match(CypherParser::DBTYPE); - setState(615); + setState(617); match(CypherParser::SP); - setState(616); + setState(618); oC_SymbolicName(); - setState(625); + setState(627); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 43, _ctx)) { case 1: { - setState(618); + setState(620); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(617); + setState(619); match(CypherParser::SP); } - setState(620); - match(CypherParser::T__3); setState(622); + match(CypherParser::T__3); + setState(624); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(621); + setState(623); match(CypherParser::SP); } - setState(624); + setState(626); iC_Options(); break; } @@ -2965,15 +2972,15 @@ CypherParser::IC_AttachDatabaseContext* CypherParser::iC_AttachDatabase() { default: break; } - setState(628); + setState(630); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(627); + setState(629); match(CypherParser::SP); } - setState(630); + setState(632); match(CypherParser::T__2); } @@ -3000,6 +3007,10 @@ CypherParser::OC_LiteralContext* CypherParser::IC_OptionContext::oC_Literal() { return getRuleContext(0); } +CypherParser::IC_OptionQualifierContext* CypherParser::IC_OptionContext::iC_OptionQualifier() { + return getRuleContext(0); +} + std::vector CypherParser::IC_OptionContext::SP() { return getTokens(CypherParser::SP); } @@ -3027,46 +3038,46 @@ CypherParser::IC_OptionContext* CypherParser::iC_Option() { exitRule(); }); try { - setState(651); + setState(658); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 49, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 51, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(632); + setState(634); oC_SymbolicName(); - setState(646); + setState(648); _errHandler->sync(this); switch (getInterpreter()->adaptivePredict(_input, 48, _ctx)) { case 1: { - setState(634); + setState(636); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(633); + setState(635); match(CypherParser::SP); } - setState(636); - match(CypherParser::T__5); setState(638); + match(CypherParser::T__5); + setState(640); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(637); + setState(639); match(CypherParser::SP); } break; } case 2: { - setState(643); + setState(645); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::SP) { - setState(640); + setState(642); match(CypherParser::SP); - setState(645); + setState(647); _errHandler->sync(this); _la = _input->LA(1); } @@ -3076,14 +3087,35 @@ CypherParser::IC_OptionContext* CypherParser::iC_Option() { default: break; } - setState(648); + setState(650); oC_Literal(); + setState(655); + _errHandler->sync(this); + + switch (getInterpreter()->adaptivePredict(_input, 50, _ctx)) { + case 1: { + setState(652); + _errHandler->sync(this); + + _la = _input->LA(1); + if (_la == CypherParser::SP) { + setState(651); + match(CypherParser::SP); + } + setState(654); + iC_OptionQualifier(); + break; + } + + default: + break; + } break; } case 2: { enterOuterAlt(_localctx, 2); - setState(650); + setState(657); oC_SymbolicName(); break; } @@ -3102,6 +3134,77 @@ CypherParser::IC_OptionContext* CypherParser::iC_Option() { return _localctx; } +//----------------- IC_OptionQualifierContext ------------------------------------------------------------------ + +CypherParser::IC_OptionQualifierContext::IC_OptionQualifierContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +CypherParser::OC_SymbolicNameContext* CypherParser::IC_OptionQualifierContext::oC_SymbolicName() { + return getRuleContext(0); +} + +std::vector CypherParser::IC_OptionQualifierContext::SP() { + return getTokens(CypherParser::SP); +} + +tree::TerminalNode* CypherParser::IC_OptionQualifierContext::SP(size_t i) { + return getToken(CypherParser::SP, i); +} + + +size_t CypherParser::IC_OptionQualifierContext::getRuleIndex() const { + return CypherParser::RuleIC_OptionQualifier; +} + + +CypherParser::IC_OptionQualifierContext* CypherParser::iC_OptionQualifier() { + IC_OptionQualifierContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 24, CypherParser::RuleIC_OptionQualifier); + size_t _la = 0; + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(660); + match(CypherParser::T__1); + setState(662); + _errHandler->sync(this); + + _la = _input->LA(1); + if (_la == CypherParser::SP) { + setState(661); + match(CypherParser::SP); + } + setState(664); + oC_SymbolicName(); + setState(666); + _errHandler->sync(this); + + _la = _input->LA(1); + if (_la == CypherParser::SP) { + setState(665); + match(CypherParser::SP); + } + setState(668); + match(CypherParser::T__2); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + //----------------- IC_OptionsContext ------------------------------------------------------------------ CypherParser::IC_OptionsContext::IC_OptionsContext(ParserRuleContext *parent, size_t invokingState) @@ -3132,7 +3235,7 @@ size_t CypherParser::IC_OptionsContext::getRuleIndex() const { CypherParser::IC_OptionsContext* CypherParser::iC_Options() { IC_OptionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 24, CypherParser::RuleIC_Options); + enterRule(_localctx, 26, CypherParser::RuleIC_Options); size_t _la = 0; #if __cplusplus > 201703L @@ -3145,37 +3248,37 @@ CypherParser::IC_OptionsContext* CypherParser::iC_Options() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(653); + setState(670); iC_Option(); - setState(664); + setState(681); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 52, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 56, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(655); + setState(672); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(654); + setState(671); match(CypherParser::SP); } - setState(657); + setState(674); match(CypherParser::T__3); - setState(659); + setState(676); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(658); + setState(675); match(CypherParser::SP); } - setState(661); + setState(678); iC_Option(); } - setState(666); + setState(683); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 52, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 56, _ctx); } } @@ -3214,7 +3317,7 @@ size_t CypherParser::IC_DetachDatabaseContext::getRuleIndex() const { CypherParser::IC_DetachDatabaseContext* CypherParser::iC_DetachDatabase() { IC_DetachDatabaseContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 26, CypherParser::RuleIC_DetachDatabase); + enterRule(_localctx, 28, CypherParser::RuleIC_DetachDatabase); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3225,11 +3328,11 @@ CypherParser::IC_DetachDatabaseContext* CypherParser::iC_DetachDatabase() { }); try { enterOuterAlt(_localctx, 1); - setState(667); + setState(684); match(CypherParser::DETACH); - setState(668); + setState(685); match(CypherParser::SP); - setState(669); + setState(686); oC_SchemaName(); } @@ -3268,7 +3371,7 @@ size_t CypherParser::IC_UseDatabaseContext::getRuleIndex() const { CypherParser::IC_UseDatabaseContext* CypherParser::iC_UseDatabase() { IC_UseDatabaseContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 28, CypherParser::RuleIC_UseDatabase); + enterRule(_localctx, 30, CypherParser::RuleIC_UseDatabase); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3279,11 +3382,11 @@ CypherParser::IC_UseDatabaseContext* CypherParser::iC_UseDatabase() { }); try { enterOuterAlt(_localctx, 1); - setState(671); + setState(688); match(CypherParser::USE); - setState(672); + setState(689); match(CypherParser::SP); - setState(673); + setState(690); oC_SchemaName(); } @@ -3334,7 +3437,7 @@ size_t CypherParser::IC_CreateGraphContext::getRuleIndex() const { CypherParser::IC_CreateGraphContext* CypherParser::iC_CreateGraph() { IC_CreateGraphContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 30, CypherParser::RuleIC_CreateGraph); + enterRule(_localctx, 32, CypherParser::RuleIC_CreateGraph); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3345,24 +3448,24 @@ CypherParser::IC_CreateGraphContext* CypherParser::iC_CreateGraph() { }); try { enterOuterAlt(_localctx, 1); - setState(675); + setState(692); match(CypherParser::CREATE); - setState(676); + setState(693); match(CypherParser::SP); - setState(677); + setState(694); match(CypherParser::GRAPH); - setState(678); + setState(695); match(CypherParser::SP); - setState(679); + setState(696); oC_SchemaName(); - setState(682); + setState(699); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 53, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 57, _ctx)) { case 1: { - setState(680); + setState(697); match(CypherParser::SP); - setState(681); + setState(698); match(CypherParser::ANY); break; } @@ -3415,7 +3518,7 @@ size_t CypherParser::IC_UseGraphContext::getRuleIndex() const { CypherParser::IC_UseGraphContext* CypherParser::iC_UseGraph() { IC_UseGraphContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 32, CypherParser::RuleIC_UseGraph); + enterRule(_localctx, 34, CypherParser::RuleIC_UseGraph); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3426,15 +3529,15 @@ CypherParser::IC_UseGraphContext* CypherParser::iC_UseGraph() { }); try { enterOuterAlt(_localctx, 1); - setState(684); + setState(701); match(CypherParser::USE); - setState(685); + setState(702); match(CypherParser::SP); - setState(686); + setState(703); match(CypherParser::GRAPH); - setState(687); + setState(704); match(CypherParser::SP); - setState(688); + setState(705); oC_SchemaName(); } @@ -3473,7 +3576,7 @@ size_t CypherParser::IC_AnalyzeContext::getRuleIndex() const { CypherParser::IC_AnalyzeContext* CypherParser::iC_Analyze() { IC_AnalyzeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 34, CypherParser::RuleIC_Analyze); + enterRule(_localctx, 36, CypherParser::RuleIC_Analyze); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3484,16 +3587,16 @@ CypherParser::IC_AnalyzeContext* CypherParser::iC_Analyze() { }); try { enterOuterAlt(_localctx, 1); - setState(690); + setState(707); match(CypherParser::ANALYZE); - setState(693); + setState(710); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 54, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 58, _ctx)) { case 1: { - setState(691); + setState(708); match(CypherParser::SP); - setState(692); + setState(709); oC_SchemaName(); break; } @@ -3550,7 +3653,7 @@ size_t CypherParser::IC_StandaloneCallContext::getRuleIndex() const { CypherParser::IC_StandaloneCallContext* CypherParser::iC_StandaloneCall() { IC_StandaloneCallContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 36, CypherParser::RuleIC_StandaloneCall); + enterRule(_localctx, 38, CypherParser::RuleIC_StandaloneCall); size_t _la = 0; #if __cplusplus > 201703L @@ -3561,47 +3664,47 @@ CypherParser::IC_StandaloneCallContext* CypherParser::iC_StandaloneCall() { exitRule(); }); try { - setState(710); + setState(727); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 57, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 61, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(695); + setState(712); match(CypherParser::CALL); - setState(696); + setState(713); match(CypherParser::SP); - setState(697); + setState(714); oC_SymbolicName(); - setState(699); + setState(716); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(698); + setState(715); match(CypherParser::SP); } - setState(701); + setState(718); match(CypherParser::T__5); - setState(703); + setState(720); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(702); + setState(719); match(CypherParser::SP); } - setState(705); + setState(722); oC_Expression(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(707); + setState(724); match(CypherParser::CALL); - setState(708); + setState(725); match(CypherParser::SP); - setState(709); + setState(726); oC_FunctionInvocation(); break; } @@ -3666,7 +3769,7 @@ size_t CypherParser::IC_CommentOnContext::getRuleIndex() const { CypherParser::IC_CommentOnContext* CypherParser::iC_CommentOn() { IC_CommentOnContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 38, CypherParser::RuleIC_CommentOn); + enterRule(_localctx, 40, CypherParser::RuleIC_CommentOn); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -3677,27 +3780,27 @@ CypherParser::IC_CommentOnContext* CypherParser::iC_CommentOn() { }); try { enterOuterAlt(_localctx, 1); - setState(712); + setState(729); match(CypherParser::COMMENT); - setState(713); + setState(730); match(CypherParser::SP); - setState(714); + setState(731); match(CypherParser::ON); - setState(715); + setState(732); match(CypherParser::SP); - setState(716); + setState(733); match(CypherParser::TABLE); - setState(717); + setState(734); match(CypherParser::SP); - setState(718); + setState(735); oC_SchemaName(); - setState(719); + setState(736); match(CypherParser::SP); - setState(720); + setState(737); match(CypherParser::IS); - setState(721); + setState(738); match(CypherParser::SP); - setState(722); + setState(739); match(CypherParser::StringLiteral); } @@ -3764,7 +3867,7 @@ size_t CypherParser::IC_CreateMacroContext::getRuleIndex() const { CypherParser::IC_CreateMacroContext* CypherParser::iC_CreateMacro() { IC_CreateMacroContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 40, CypherParser::RuleIC_CreateMacro); + enterRule(_localctx, 42, CypherParser::RuleIC_CreateMacro); size_t _la = 0; #if __cplusplus > 201703L @@ -3777,32 +3880,32 @@ CypherParser::IC_CreateMacroContext* CypherParser::iC_CreateMacro() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(724); + setState(741); match(CypherParser::CREATE); - setState(725); + setState(742); match(CypherParser::SP); - setState(726); + setState(743); match(CypherParser::MACRO); - setState(727); + setState(744); match(CypherParser::SP); - setState(728); + setState(745); oC_FunctionName(); - setState(730); + setState(747); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(729); + setState(746); match(CypherParser::SP); } - setState(732); + setState(749); match(CypherParser::T__1); - setState(734); + setState(751); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 59, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 63, _ctx)) { case 1: { - setState(733); + setState(750); match(CypherParser::SP); break; } @@ -3810,12 +3913,12 @@ CypherParser::IC_CreateMacroContext* CypherParser::iC_CreateMacro() { default: break; } - setState(737); + setState(754); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 60, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 64, _ctx)) { case 1: { - setState(736); + setState(753); iC_PositionalArgs(); break; } @@ -3823,12 +3926,12 @@ CypherParser::IC_CreateMacroContext* CypherParser::iC_CreateMacro() { default: break; } - setState(740); + setState(757); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 61, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 65, _ctx)) { case 1: { - setState(739); + setState(756); match(CypherParser::SP); break; } @@ -3836,7 +3939,7 @@ CypherParser::IC_CreateMacroContext* CypherParser::iC_CreateMacro() { default: break; } - setState(743); + setState(760); _errHandler->sync(this); _la = _input->LA(1); @@ -3844,56 +3947,56 @@ CypherParser::IC_CreateMacroContext* CypherParser::iC_CreateMacro() { ((1ULL << _la) & -6370763885380632576) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9219449713480129315) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 324400320977652447) != 0)) { - setState(742); + setState(759); iC_DefaultArg(); } - setState(755); + setState(772); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 65, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 69, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(746); + setState(763); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(745); + setState(762); match(CypherParser::SP); } - setState(748); + setState(765); match(CypherParser::T__3); - setState(750); + setState(767); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(749); + setState(766); match(CypherParser::SP); } - setState(752); + setState(769); iC_DefaultArg(); } - setState(757); + setState(774); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 65, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 69, _ctx); } - setState(759); + setState(776); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(758); + setState(775); match(CypherParser::SP); } - setState(761); + setState(778); match(CypherParser::T__2); - setState(762); + setState(779); match(CypherParser::SP); - setState(763); + setState(780); match(CypherParser::AS); - setState(764); + setState(781); match(CypherParser::SP); - setState(765); + setState(782); oC_Expression(); } @@ -3936,7 +4039,7 @@ size_t CypherParser::IC_PositionalArgsContext::getRuleIndex() const { CypherParser::IC_PositionalArgsContext* CypherParser::iC_PositionalArgs() { IC_PositionalArgsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 42, CypherParser::RuleIC_PositionalArgs); + enterRule(_localctx, 44, CypherParser::RuleIC_PositionalArgs); size_t _la = 0; #if __cplusplus > 201703L @@ -3949,37 +4052,37 @@ CypherParser::IC_PositionalArgsContext* CypherParser::iC_PositionalArgs() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(767); + setState(784); oC_SymbolicName(); - setState(778); + setState(795); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 69, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 73, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(769); + setState(786); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(768); + setState(785); match(CypherParser::SP); } - setState(771); + setState(788); match(CypherParser::T__3); - setState(773); + setState(790); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(772); + setState(789); match(CypherParser::SP); } - setState(775); + setState(792); oC_SymbolicName(); } - setState(780); + setState(797); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 69, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 73, _ctx); } } @@ -4026,7 +4129,7 @@ size_t CypherParser::IC_DefaultArgContext::getRuleIndex() const { CypherParser::IC_DefaultArgContext* CypherParser::iC_DefaultArg() { IC_DefaultArgContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 44, CypherParser::RuleIC_DefaultArg); + enterRule(_localctx, 46, CypherParser::RuleIC_DefaultArg); size_t _la = 0; #if __cplusplus > 201703L @@ -4038,29 +4141,29 @@ CypherParser::IC_DefaultArgContext* CypherParser::iC_DefaultArg() { }); try { enterOuterAlt(_localctx, 1); - setState(781); + setState(798); oC_SymbolicName(); - setState(783); + setState(800); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(782); + setState(799); match(CypherParser::SP); } - setState(785); + setState(802); match(CypherParser::COLON); - setState(786); + setState(803); match(CypherParser::T__5); - setState(788); + setState(805); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(787); + setState(804); match(CypherParser::SP); } - setState(790); + setState(807); oC_Literal(); } @@ -4107,7 +4210,7 @@ size_t CypherParser::IC_FilePathsContext::getRuleIndex() const { CypherParser::IC_FilePathsContext* CypherParser::iC_FilePaths() { IC_FilePathsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 46, CypherParser::RuleIC_FilePaths); + enterRule(_localctx, 48, CypherParser::RuleIC_FilePaths); size_t _la = 0; #if __cplusplus > 201703L @@ -4118,96 +4221,96 @@ CypherParser::IC_FilePathsContext* CypherParser::iC_FilePaths() { exitRule(); }); try { - setState(825); + setState(842); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::T__6: { enterOuterAlt(_localctx, 1); - setState(792); + setState(809); match(CypherParser::T__6); - setState(794); + setState(811); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(793); + setState(810); match(CypherParser::SP); } - setState(796); + setState(813); match(CypherParser::StringLiteral); - setState(807); + setState(824); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3 || _la == CypherParser::SP) { - setState(798); + setState(815); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(797); + setState(814); match(CypherParser::SP); } - setState(800); + setState(817); match(CypherParser::T__3); - setState(802); + setState(819); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(801); + setState(818); match(CypherParser::SP); } - setState(804); + setState(821); match(CypherParser::StringLiteral); - setState(809); + setState(826); _errHandler->sync(this); _la = _input->LA(1); } - setState(810); + setState(827); match(CypherParser::T__7); break; } case CypherParser::StringLiteral: { enterOuterAlt(_localctx, 2); - setState(811); + setState(828); match(CypherParser::StringLiteral); break; } case CypherParser::GLOB: { enterOuterAlt(_localctx, 3); - setState(812); + setState(829); match(CypherParser::GLOB); - setState(814); + setState(831); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(813); + setState(830); match(CypherParser::SP); } - setState(816); + setState(833); match(CypherParser::T__1); - setState(818); + setState(835); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(817); + setState(834); match(CypherParser::SP); } - setState(820); + setState(837); match(CypherParser::StringLiteral); - setState(822); + setState(839); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(821); + setState(838); match(CypherParser::SP); } - setState(824); + setState(841); match(CypherParser::T__2); break; } @@ -4260,7 +4363,7 @@ size_t CypherParser::IC_IfNotExistsContext::getRuleIndex() const { CypherParser::IC_IfNotExistsContext* CypherParser::iC_IfNotExists() { IC_IfNotExistsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 48, CypherParser::RuleIC_IfNotExists); + enterRule(_localctx, 50, CypherParser::RuleIC_IfNotExists); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -4271,15 +4374,15 @@ CypherParser::IC_IfNotExistsContext* CypherParser::iC_IfNotExists() { }); try { enterOuterAlt(_localctx, 1); - setState(827); + setState(844); match(CypherParser::IF); - setState(828); + setState(845); match(CypherParser::SP); - setState(829); + setState(846); match(CypherParser::NOT); - setState(830); + setState(847); match(CypherParser::SP); - setState(831); + setState(848); match(CypherParser::EXISTS); } @@ -4358,7 +4461,7 @@ size_t CypherParser::IC_CreateNodeTableContext::getRuleIndex() const { CypherParser::IC_CreateNodeTableContext* CypherParser::iC_CreateNodeTable() { IC_CreateNodeTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 50, CypherParser::RuleIC_CreateNodeTable); + enterRule(_localctx, 52, CypherParser::RuleIC_CreateNodeTable); size_t _la = 0; #if __cplusplus > 201703L @@ -4370,26 +4473,26 @@ CypherParser::IC_CreateNodeTableContext* CypherParser::iC_CreateNodeTable() { }); try { enterOuterAlt(_localctx, 1); - setState(833); + setState(850); match(CypherParser::CREATE); - setState(834); + setState(851); match(CypherParser::SP); - setState(835); + setState(852); match(CypherParser::NODE); - setState(836); + setState(853); match(CypherParser::SP); - setState(837); + setState(854); match(CypherParser::TABLE); - setState(838); + setState(855); match(CypherParser::SP); - setState(842); + setState(859); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 80, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 84, _ctx)) { case 1: { - setState(839); + setState(856); iC_IfNotExists(); - setState(840); + setState(857); match(CypherParser::SP); break; } @@ -4397,38 +4500,38 @@ CypherParser::IC_CreateNodeTableContext* CypherParser::iC_CreateNodeTable() { default: break; } - setState(844); + setState(861); oC_SchemaName(); - setState(872); + setState(889); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 87, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 91, _ctx)) { case 1: { - setState(846); + setState(863); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(845); + setState(862); match(CypherParser::SP); } - setState(848); + setState(865); match(CypherParser::T__1); - setState(850); + setState(867); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(849); + setState(866); match(CypherParser::SP); } - setState(852); + setState(869); iC_PropertyDefinitions(); - setState(854); + setState(871); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 83, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 87, _ctx)) { case 1: { - setState(853); + setState(870); match(CypherParser::SP); break; } @@ -4436,45 +4539,45 @@ CypherParser::IC_CreateNodeTableContext* CypherParser::iC_CreateNodeTable() { default: break; } - setState(861); + setState(878); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__3) { - setState(856); + setState(873); match(CypherParser::T__3); - setState(858); + setState(875); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(857); + setState(874); match(CypherParser::SP); } - setState(860); + setState(877); iC_CreateNodeConstraint(); } - setState(864); + setState(881); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(863); + setState(880); match(CypherParser::SP); } - setState(866); + setState(883); match(CypherParser::T__2); break; } case 2: { - setState(868); + setState(885); match(CypherParser::SP); - setState(869); + setState(886); match(CypherParser::AS); - setState(870); + setState(887); match(CypherParser::SP); - setState(871); + setState(888); oC_Query(); break; } @@ -4482,44 +4585,44 @@ CypherParser::IC_CreateNodeTableContext* CypherParser::iC_CreateNodeTable() { default: break; } - setState(889); + setState(906); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 91, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 95, _ctx)) { case 1: { - setState(874); + setState(891); match(CypherParser::SP); - setState(875); + setState(892); match(CypherParser::WITH); - setState(877); + setState(894); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(876); + setState(893); match(CypherParser::SP); } - setState(879); + setState(896); match(CypherParser::T__1); - setState(881); + setState(898); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(880); + setState(897); match(CypherParser::SP); } - setState(883); + setState(900); iC_Options(); - setState(885); + setState(902); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(884); + setState(901); match(CypherParser::SP); } - setState(887); + setState(904); match(CypherParser::T__2); break; } @@ -4612,7 +4715,7 @@ size_t CypherParser::IC_CreateRelTableContext::getRuleIndex() const { CypherParser::IC_CreateRelTableContext* CypherParser::iC_CreateRelTable() { IC_CreateRelTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 52, CypherParser::RuleIC_CreateRelTable); + enterRule(_localctx, 54, CypherParser::RuleIC_CreateRelTable); size_t _la = 0; #if __cplusplus > 201703L @@ -4624,24 +4727,24 @@ CypherParser::IC_CreateRelTableContext* CypherParser::iC_CreateRelTable() { }); try { enterOuterAlt(_localctx, 1); - setState(891); + setState(908); match(CypherParser::CREATE); - setState(892); + setState(909); match(CypherParser::SP); - setState(893); + setState(910); match(CypherParser::REL); - setState(894); + setState(911); match(CypherParser::SP); - setState(895); + setState(912); match(CypherParser::TABLE); - setState(898); + setState(915); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 92, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 96, _ctx)) { case 1: { - setState(896); + setState(913); match(CypherParser::SP); - setState(897); + setState(914); match(CypherParser::GROUP); break; } @@ -4649,14 +4752,14 @@ CypherParser::IC_CreateRelTableContext* CypherParser::iC_CreateRelTable() { default: break; } - setState(902); + setState(919); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 93, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 97, _ctx)) { case 1: { - setState(900); + setState(917); match(CypherParser::SP); - setState(901); + setState(918); iC_IfNotExists(); break; } @@ -4664,65 +4767,65 @@ CypherParser::IC_CreateRelTableContext* CypherParser::iC_CreateRelTable() { default: break; } - setState(904); + setState(921); match(CypherParser::SP); - setState(905); + setState(922); oC_SchemaName(); - setState(907); + setState(924); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(906); + setState(923); match(CypherParser::SP); } - setState(909); + setState(926); match(CypherParser::T__1); - setState(911); + setState(928); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(910); + setState(927); match(CypherParser::SP); } - setState(913); + setState(930); iC_CreateFromToConnections(); - setState(915); + setState(932); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(914); + setState(931); match(CypherParser::SP); } - setState(943); + setState(960); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 103, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 107, _ctx)) { case 1: { - setState(925); + setState(942); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 99, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 103, _ctx)) { case 1: { - setState(917); + setState(934); match(CypherParser::T__3); - setState(919); + setState(936); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(918); + setState(935); match(CypherParser::SP); } - setState(921); + setState(938); iC_PropertyDefinitions(); - setState(923); + setState(940); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(922); + setState(939); match(CypherParser::SP); } break; @@ -4731,47 +4834,47 @@ CypherParser::IC_CreateRelTableContext* CypherParser::iC_CreateRelTable() { default: break; } - setState(935); + setState(952); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__3) { - setState(927); + setState(944); match(CypherParser::T__3); - setState(929); + setState(946); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(928); + setState(945); match(CypherParser::SP); } - setState(931); + setState(948); oC_SymbolicName(); - setState(933); + setState(950); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(932); + setState(949); match(CypherParser::SP); } } - setState(937); + setState(954); match(CypherParser::T__2); break; } case 2: { - setState(938); + setState(955); match(CypherParser::T__2); - setState(939); + setState(956); match(CypherParser::SP); - setState(940); + setState(957); match(CypherParser::AS); - setState(941); + setState(958); match(CypherParser::SP); - setState(942); + setState(959); oC_Query(); break; } @@ -4779,44 +4882,44 @@ CypherParser::IC_CreateRelTableContext* CypherParser::iC_CreateRelTable() { default: break; } - setState(960); + setState(977); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 107, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 111, _ctx)) { case 1: { - setState(945); + setState(962); match(CypherParser::SP); - setState(946); + setState(963); match(CypherParser::WITH); - setState(948); + setState(965); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(947); + setState(964); match(CypherParser::SP); } - setState(950); + setState(967); match(CypherParser::T__1); - setState(952); + setState(969); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(951); + setState(968); match(CypherParser::SP); } - setState(954); + setState(971); iC_Options(); - setState(956); + setState(973); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(955); + setState(972); match(CypherParser::SP); } - setState(958); + setState(975); match(CypherParser::T__2); break; } @@ -4901,7 +5004,7 @@ size_t CypherParser::IC_CreateIndexContext::getRuleIndex() const { CypherParser::IC_CreateIndexContext* CypherParser::iC_CreateIndex() { IC_CreateIndexContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 54, CypherParser::RuleIC_CreateIndex); + enterRule(_localctx, 56, CypherParser::RuleIC_CreateIndex); size_t _la = 0; #if __cplusplus > 201703L @@ -4913,16 +5016,16 @@ CypherParser::IC_CreateIndexContext* CypherParser::iC_CreateIndex() { }); try { enterOuterAlt(_localctx, 1); - setState(962); + setState(979); match(CypherParser::CREATE); - setState(965); + setState(982); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 108, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 112, _ctx)) { case 1: { - setState(963); + setState(980); match(CypherParser::SP); - setState(964); + setState(981); oC_SymbolicName(); break; } @@ -4930,18 +5033,18 @@ CypherParser::IC_CreateIndexContext* CypherParser::iC_CreateIndex() { default: break; } - setState(967); + setState(984); match(CypherParser::SP); - setState(968); + setState(985); match(CypherParser::INDEX); - setState(971); + setState(988); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 109, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 113, _ctx)) { case 1: { - setState(969); + setState(986); match(CypherParser::SP); - setState(970); + setState(987); oC_SchemaName(); break; } @@ -4949,14 +5052,14 @@ CypherParser::IC_CreateIndexContext* CypherParser::iC_CreateIndex() { default: break; } - setState(975); + setState(992); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 110, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 114, _ctx)) { case 1: { - setState(973); + setState(990); match(CypherParser::SP); - setState(974); + setState(991); iC_IfNotExists(); break; } @@ -4964,47 +5067,47 @@ CypherParser::IC_CreateIndexContext* CypherParser::iC_CreateIndex() { default: break; } - setState(977); + setState(994); match(CypherParser::SP); - setState(978); + setState(995); match(CypherParser::FOR); - setState(979); + setState(996); match(CypherParser::SP); - setState(980); + setState(997); iC_IndexPattern(); - setState(981); + setState(998); match(CypherParser::SP); - setState(982); + setState(999); match(CypherParser::ON); - setState(983); + setState(1000); match(CypherParser::SP); - setState(984); - iC_IndexPropertyPattern(); setState(1001); + iC_IndexPropertyPattern(); + setState(1018); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 115, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 119, _ctx)) { case 1: { - setState(985); + setState(1002); match(CypherParser::SP); - setState(986); + setState(1003); match(CypherParser::OPTIONS); - setState(988); + setState(1005); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(987); + setState(1004); match(CypherParser::SP); } - setState(990); + setState(1007); match(CypherParser::T__8); - setState(992); + setState(1009); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 112, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 116, _ctx)) { case 1: { - setState(991); + setState(1008); match(CypherParser::SP); break; } @@ -5012,7 +5115,7 @@ CypherParser::IC_CreateIndexContext* CypherParser::iC_CreateIndex() { default: break; } - setState(995); + setState(1012); _errHandler->sync(this); _la = _input->LA(1); @@ -5020,18 +5123,18 @@ CypherParser::IC_CreateIndexContext* CypherParser::iC_CreateIndex() { ((1ULL << _la) & -6370763885380632576) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9219449713480129315) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 324400320977652447) != 0)) { - setState(994); + setState(1011); iC_Options(); } - setState(998); + setState(1015); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(997); + setState(1014); match(CypherParser::SP); } - setState(1000); + setState(1017); match(CypherParser::T__9); break; } @@ -5072,7 +5175,7 @@ size_t CypherParser::IC_IndexPatternContext::getRuleIndex() const { CypherParser::IC_IndexPatternContext* CypherParser::iC_IndexPattern() { IC_IndexPatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 56, CypherParser::RuleIC_IndexPattern); + enterRule(_localctx, 58, CypherParser::RuleIC_IndexPattern); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5082,19 +5185,19 @@ CypherParser::IC_IndexPatternContext* CypherParser::iC_IndexPattern() { exitRule(); }); try { - setState(1005); + setState(1022); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 116, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 120, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1003); + setState(1020); iC_IndexNodePattern(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1004); + setState(1021); iC_IndexRelationshipPattern(); break; } @@ -5147,7 +5250,7 @@ size_t CypherParser::IC_IndexNodePatternContext::getRuleIndex() const { CypherParser::IC_IndexNodePatternContext* CypherParser::iC_IndexNodePattern() { IC_IndexNodePatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 58, CypherParser::RuleIC_IndexNodePattern); + enterRule(_localctx, 60, CypherParser::RuleIC_IndexNodePattern); size_t _la = 0; #if __cplusplus > 201703L @@ -5159,14 +5262,14 @@ CypherParser::IC_IndexNodePatternContext* CypherParser::iC_IndexNodePattern() { }); try { enterOuterAlt(_localctx, 1); - setState(1007); + setState(1024); match(CypherParser::T__1); - setState(1009); + setState(1026); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 117, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 121, _ctx)) { case 1: { - setState(1008); + setState(1025); match(CypherParser::SP); break; } @@ -5174,7 +5277,7 @@ CypherParser::IC_IndexNodePatternContext* CypherParser::iC_IndexNodePattern() { default: break; } - setState(1012); + setState(1029); _errHandler->sync(this); _la = _input->LA(1); @@ -5182,38 +5285,38 @@ CypherParser::IC_IndexNodePatternContext* CypherParser::iC_IndexNodePattern() { ((1ULL << _la) & -6370763885380632576) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9219449713480129315) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 324400320977652447) != 0)) { - setState(1011); + setState(1028); oC_Variable(); } - setState(1015); + setState(1032); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1014); + setState(1031); match(CypherParser::SP); } - setState(1017); + setState(1034); match(CypherParser::COLON); - setState(1019); + setState(1036); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1018); + setState(1035); match(CypherParser::SP); } - setState(1021); + setState(1038); oC_LabelName(); - setState(1023); + setState(1040); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1022); + setState(1039); match(CypherParser::SP); } - setState(1025); + setState(1042); match(CypherParser::T__2); } @@ -5252,7 +5355,7 @@ size_t CypherParser::IC_IndexRelationshipPatternContext::getRuleIndex() const { CypherParser::IC_IndexRelationshipPatternContext* CypherParser::iC_IndexRelationshipPattern() { IC_IndexRelationshipPatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 60, CypherParser::RuleIC_IndexRelationshipPattern); + enterRule(_localctx, 62, CypherParser::RuleIC_IndexRelationshipPattern); size_t _la = 0; #if __cplusplus > 201703L @@ -5264,47 +5367,47 @@ CypherParser::IC_IndexRelationshipPatternContext* CypherParser::iC_IndexRelation }); try { enterOuterAlt(_localctx, 1); - setState(1027); + setState(1044); match(CypherParser::T__1); - setState(1029); + setState(1046); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1028); + setState(1045); match(CypherParser::SP); } - setState(1031); + setState(1048); match(CypherParser::T__2); - setState(1033); + setState(1050); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1032); + setState(1049); match(CypherParser::SP); } - setState(1035); + setState(1052); oC_RelationshipPattern(); - setState(1037); + setState(1054); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1036); + setState(1053); match(CypherParser::SP); } - setState(1039); + setState(1056); match(CypherParser::T__1); - setState(1041); + setState(1058); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1040); + setState(1057); match(CypherParser::SP); } - setState(1043); + setState(1060); match(CypherParser::T__2); } @@ -5347,7 +5450,7 @@ size_t CypherParser::IC_IndexPropertyPatternContext::getRuleIndex() const { CypherParser::IC_IndexPropertyPatternContext* CypherParser::iC_IndexPropertyPattern() { IC_IndexPropertyPatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 62, CypherParser::RuleIC_IndexPropertyPattern); + enterRule(_localctx, 64, CypherParser::RuleIC_IndexPropertyPattern); size_t _la = 0; #if __cplusplus > 201703L @@ -5359,47 +5462,47 @@ CypherParser::IC_IndexPropertyPatternContext* CypherParser::iC_IndexPropertyPatt }); try { enterOuterAlt(_localctx, 1); - setState(1045); + setState(1062); match(CypherParser::T__1); - setState(1047); + setState(1064); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1046); + setState(1063); match(CypherParser::SP); } - setState(1049); + setState(1066); oC_Variable(); - setState(1051); + setState(1068); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1050); + setState(1067); match(CypherParser::SP); } - setState(1053); + setState(1070); match(CypherParser::T__4); - setState(1055); + setState(1072); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1054); + setState(1071); match(CypherParser::SP); } - setState(1057); + setState(1074); oC_PropertyKeyName(); - setState(1059); + setState(1076); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1058); + setState(1075); match(CypherParser::SP); } - setState(1061); + setState(1078); match(CypherParser::T__2); } @@ -5442,7 +5545,7 @@ size_t CypherParser::IC_CreateFromToConnectionsContext::getRuleIndex() const { CypherParser::IC_CreateFromToConnectionsContext* CypherParser::iC_CreateFromToConnections() { IC_CreateFromToConnectionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 64, CypherParser::RuleIC_CreateFromToConnections); + enterRule(_localctx, 66, CypherParser::RuleIC_CreateFromToConnections); size_t _la = 0; #if __cplusplus > 201703L @@ -5455,37 +5558,37 @@ CypherParser::IC_CreateFromToConnectionsContext* CypherParser::iC_CreateFromToCo try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1063); + setState(1080); iC_CreateFromToConnection(); - setState(1074); + setState(1091); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 132, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 136, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1065); + setState(1082); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1064); + setState(1081); match(CypherParser::SP); } - setState(1067); + setState(1084); match(CypherParser::T__3); - setState(1069); + setState(1086); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1068); + setState(1085); match(CypherParser::SP); } - setState(1071); + setState(1088); iC_CreateFromToConnection(); } - setState(1076); + setState(1093); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 132, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 136, _ctx); } } @@ -5540,7 +5643,7 @@ size_t CypherParser::IC_CreateFromToConnectionContext::getRuleIndex() const { CypherParser::IC_CreateFromToConnectionContext* CypherParser::iC_CreateFromToConnection() { IC_CreateFromToConnectionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 66, CypherParser::RuleIC_CreateFromToConnection); + enterRule(_localctx, 68, CypherParser::RuleIC_CreateFromToConnection); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5551,28 +5654,28 @@ CypherParser::IC_CreateFromToConnectionContext* CypherParser::iC_CreateFromToCon }); try { enterOuterAlt(_localctx, 1); - setState(1077); + setState(1094); match(CypherParser::FROM); - setState(1078); + setState(1095); match(CypherParser::SP); - setState(1079); + setState(1096); oC_SchemaName(); - setState(1080); + setState(1097); match(CypherParser::SP); - setState(1081); + setState(1098); match(CypherParser::TO); - setState(1082); + setState(1099); match(CypherParser::SP); - setState(1083); + setState(1100); oC_SchemaName(); - setState(1086); + setState(1103); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 133, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 137, _ctx)) { case 1: { - setState(1084); + setState(1101); match(CypherParser::SP); - setState(1085); + setState(1102); oC_SymbolicName(); break; } @@ -5621,7 +5724,7 @@ size_t CypherParser::IC_FromToConnectionsContext::getRuleIndex() const { CypherParser::IC_FromToConnectionsContext* CypherParser::iC_FromToConnections() { IC_FromToConnectionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 68, CypherParser::RuleIC_FromToConnections); + enterRule(_localctx, 70, CypherParser::RuleIC_FromToConnections); size_t _la = 0; #if __cplusplus > 201703L @@ -5633,33 +5736,33 @@ CypherParser::IC_FromToConnectionsContext* CypherParser::iC_FromToConnections() }); try { enterOuterAlt(_localctx, 1); - setState(1088); + setState(1105); iC_FromToConnection(); - setState(1099); + setState(1116); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3 || _la == CypherParser::SP) { - setState(1090); + setState(1107); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1089); + setState(1106); match(CypherParser::SP); } - setState(1092); + setState(1109); match(CypherParser::T__3); - setState(1094); + setState(1111); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1093); + setState(1110); match(CypherParser::SP); } - setState(1096); + setState(1113); iC_FromToConnection(); - setState(1101); + setState(1118); _errHandler->sync(this); _la = _input->LA(1); } @@ -5712,7 +5815,7 @@ size_t CypherParser::IC_FromToConnectionContext::getRuleIndex() const { CypherParser::IC_FromToConnectionContext* CypherParser::iC_FromToConnection() { IC_FromToConnectionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 70, CypherParser::RuleIC_FromToConnection); + enterRule(_localctx, 72, CypherParser::RuleIC_FromToConnection); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5723,19 +5826,19 @@ CypherParser::IC_FromToConnectionContext* CypherParser::iC_FromToConnection() { }); try { enterOuterAlt(_localctx, 1); - setState(1102); + setState(1119); match(CypherParser::FROM); - setState(1103); + setState(1120); match(CypherParser::SP); - setState(1104); + setState(1121); oC_SchemaName(); - setState(1105); + setState(1122); match(CypherParser::SP); - setState(1106); + setState(1123); match(CypherParser::TO); - setState(1107); + setState(1124); match(CypherParser::SP); - setState(1108); + setState(1125); oC_SchemaName(); } @@ -5794,7 +5897,7 @@ size_t CypherParser::IC_CreateSequenceContext::getRuleIndex() const { CypherParser::IC_CreateSequenceContext* CypherParser::iC_CreateSequence() { IC_CreateSequenceContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 72, CypherParser::RuleIC_CreateSequence); + enterRule(_localctx, 74, CypherParser::RuleIC_CreateSequence); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5806,22 +5909,22 @@ CypherParser::IC_CreateSequenceContext* CypherParser::iC_CreateSequence() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1110); + setState(1127); match(CypherParser::CREATE); - setState(1111); + setState(1128); match(CypherParser::SP); - setState(1112); + setState(1129); match(CypherParser::SEQUENCE); - setState(1113); + setState(1130); match(CypherParser::SP); - setState(1117); + setState(1134); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 137, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 141, _ctx)) { case 1: { - setState(1114); + setState(1131); iC_IfNotExists(); - setState(1115); + setState(1132); match(CypherParser::SP); break; } @@ -5829,21 +5932,21 @@ CypherParser::IC_CreateSequenceContext* CypherParser::iC_CreateSequence() { default: break; } - setState(1119); + setState(1136); oC_SchemaName(); - setState(1124); + setState(1141); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 138, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 142, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1120); + setState(1137); match(CypherParser::SP); - setState(1121); + setState(1138); iC_SequenceOptions(); } - setState(1126); + setState(1143); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 138, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 142, _ctx); } } @@ -5898,7 +6001,7 @@ size_t CypherParser::IC_CreateTypeContext::getRuleIndex() const { CypherParser::IC_CreateTypeContext* CypherParser::iC_CreateType() { IC_CreateTypeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 74, CypherParser::RuleIC_CreateType); + enterRule(_localctx, 76, CypherParser::RuleIC_CreateType); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5909,30 +6012,30 @@ CypherParser::IC_CreateTypeContext* CypherParser::iC_CreateType() { }); try { enterOuterAlt(_localctx, 1); - setState(1127); + setState(1144); match(CypherParser::CREATE); - setState(1128); + setState(1145); match(CypherParser::SP); - setState(1129); + setState(1146); match(CypherParser::TYPE); - setState(1130); + setState(1147); match(CypherParser::SP); - setState(1131); + setState(1148); oC_SchemaName(); - setState(1132); + setState(1149); match(CypherParser::SP); - setState(1133); + setState(1150); match(CypherParser::AS); - setState(1134); + setState(1151); match(CypherParser::SP); - setState(1135); + setState(1152); iC_DataType(0); - setState(1137); + setState(1154); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 139, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 143, _ctx)) { case 1: { - setState(1136); + setState(1153); match(CypherParser::SP); break; } @@ -5985,7 +6088,7 @@ size_t CypherParser::IC_SequenceOptionsContext::getRuleIndex() const { CypherParser::IC_SequenceOptionsContext* CypherParser::iC_SequenceOptions() { IC_SequenceOptionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 76, CypherParser::RuleIC_SequenceOptions); + enterRule(_localctx, 78, CypherParser::RuleIC_SequenceOptions); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -5995,40 +6098,40 @@ CypherParser::IC_SequenceOptionsContext* CypherParser::iC_SequenceOptions() { exitRule(); }); try { - setState(1144); + setState(1161); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 140, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 144, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1139); + setState(1156); iC_IncrementBy(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1140); + setState(1157); iC_MinValue(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(1141); + setState(1158); iC_MaxValue(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(1142); + setState(1159); iC_StartWith(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(1143); + setState(1160); iC_Cycle(); break; } @@ -6081,7 +6184,7 @@ size_t CypherParser::IC_WithPasswdContext::getRuleIndex() const { CypherParser::IC_WithPasswdContext* CypherParser::iC_WithPasswd() { IC_WithPasswdContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 78, CypherParser::RuleIC_WithPasswd); + enterRule(_localctx, 80, CypherParser::RuleIC_WithPasswd); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6092,17 +6195,17 @@ CypherParser::IC_WithPasswdContext* CypherParser::iC_WithPasswd() { }); try { enterOuterAlt(_localctx, 1); - setState(1146); + setState(1163); match(CypherParser::SP); - setState(1147); + setState(1164); match(CypherParser::WITH); - setState(1148); + setState(1165); match(CypherParser::SP); - setState(1149); + setState(1166); match(CypherParser::PASSWORD); - setState(1150); + setState(1167); match(CypherParser::SP); - setState(1151); + setState(1168); match(CypherParser::StringLiteral); } @@ -6157,7 +6260,7 @@ size_t CypherParser::IC_CreateUserContext::getRuleIndex() const { CypherParser::IC_CreateUserContext* CypherParser::iC_CreateUser() { IC_CreateUserContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 80, CypherParser::RuleIC_CreateUser); + enterRule(_localctx, 82, CypherParser::RuleIC_CreateUser); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6168,22 +6271,22 @@ CypherParser::IC_CreateUserContext* CypherParser::iC_CreateUser() { }); try { enterOuterAlt(_localctx, 1); - setState(1153); + setState(1170); match(CypherParser::CREATE); - setState(1154); + setState(1171); match(CypherParser::SP); - setState(1155); + setState(1172); match(CypherParser::USER); - setState(1156); + setState(1173); match(CypherParser::SP); - setState(1160); + setState(1177); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 141, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 145, _ctx)) { case 1: { - setState(1157); + setState(1174); iC_IfNotExists(); - setState(1158); + setState(1175); match(CypherParser::SP); break; } @@ -6191,14 +6294,14 @@ CypherParser::IC_CreateUserContext* CypherParser::iC_CreateUser() { default: break; } - setState(1162); + setState(1179); oC_Variable(); - setState(1164); + setState(1181); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 142, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 146, _ctx)) { case 1: { - setState(1163); + setState(1180); iC_WithPasswd(); break; } @@ -6255,7 +6358,7 @@ size_t CypherParser::IC_CreateRoleContext::getRuleIndex() const { CypherParser::IC_CreateRoleContext* CypherParser::iC_CreateRole() { IC_CreateRoleContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 82, CypherParser::RuleIC_CreateRole); + enterRule(_localctx, 84, CypherParser::RuleIC_CreateRole); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6266,22 +6369,22 @@ CypherParser::IC_CreateRoleContext* CypherParser::iC_CreateRole() { }); try { enterOuterAlt(_localctx, 1); - setState(1166); + setState(1183); match(CypherParser::CREATE); - setState(1167); + setState(1184); match(CypherParser::SP); - setState(1168); + setState(1185); match(CypherParser::ROLE); - setState(1169); + setState(1186); match(CypherParser::SP); - setState(1173); + setState(1190); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 143, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 147, _ctx)) { case 1: { - setState(1170); + setState(1187); iC_IfNotExists(); - setState(1171); + setState(1188); match(CypherParser::SP); break; } @@ -6289,7 +6392,7 @@ CypherParser::IC_CreateRoleContext* CypherParser::iC_CreateRole() { default: break; } - setState(1175); + setState(1192); oC_Variable(); } @@ -6340,7 +6443,7 @@ size_t CypherParser::IC_IncrementByContext::getRuleIndex() const { CypherParser::IC_IncrementByContext* CypherParser::iC_IncrementBy() { IC_IncrementByContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 84, CypherParser::RuleIC_IncrementBy); + enterRule(_localctx, 86, CypherParser::RuleIC_IncrementBy); size_t _la = 0; #if __cplusplus > 201703L @@ -6352,29 +6455,29 @@ CypherParser::IC_IncrementByContext* CypherParser::iC_IncrementBy() { }); try { enterOuterAlt(_localctx, 1); - setState(1177); + setState(1194); match(CypherParser::INCREMENT); - setState(1178); + setState(1195); match(CypherParser::SP); - setState(1181); + setState(1198); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::BY) { - setState(1179); + setState(1196); match(CypherParser::BY); - setState(1180); + setState(1197); match(CypherParser::SP); } - setState(1184); + setState(1201); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::MINUS) { - setState(1183); + setState(1200); match(CypherParser::MINUS); } - setState(1186); + setState(1203); oC_IntegerLiteral(); } @@ -6421,7 +6524,7 @@ size_t CypherParser::IC_MinValueContext::getRuleIndex() const { CypherParser::IC_MinValueContext* CypherParser::iC_MinValue() { IC_MinValueContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 86, CypherParser::RuleIC_MinValue); + enterRule(_localctx, 88, CypherParser::RuleIC_MinValue); size_t _la = 0; #if __cplusplus > 201703L @@ -6432,35 +6535,35 @@ CypherParser::IC_MinValueContext* CypherParser::iC_MinValue() { exitRule(); }); try { - setState(1197); + setState(1214); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::NO: { enterOuterAlt(_localctx, 1); - setState(1188); + setState(1205); match(CypherParser::NO); - setState(1189); + setState(1206); match(CypherParser::SP); - setState(1190); + setState(1207); match(CypherParser::MINVALUE); break; } case CypherParser::MINVALUE: { enterOuterAlt(_localctx, 2); - setState(1191); + setState(1208); match(CypherParser::MINVALUE); - setState(1192); + setState(1209); match(CypherParser::SP); - setState(1194); + setState(1211); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::MINUS) { - setState(1193); + setState(1210); match(CypherParser::MINUS); } - setState(1196); + setState(1213); oC_IntegerLiteral(); break; } @@ -6513,7 +6616,7 @@ size_t CypherParser::IC_MaxValueContext::getRuleIndex() const { CypherParser::IC_MaxValueContext* CypherParser::iC_MaxValue() { IC_MaxValueContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 88, CypherParser::RuleIC_MaxValue); + enterRule(_localctx, 90, CypherParser::RuleIC_MaxValue); size_t _la = 0; #if __cplusplus > 201703L @@ -6524,35 +6627,35 @@ CypherParser::IC_MaxValueContext* CypherParser::iC_MaxValue() { exitRule(); }); try { - setState(1208); + setState(1225); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::NO: { enterOuterAlt(_localctx, 1); - setState(1199); + setState(1216); match(CypherParser::NO); - setState(1200); + setState(1217); match(CypherParser::SP); - setState(1201); + setState(1218); match(CypherParser::MAXVALUE); break; } case CypherParser::MAXVALUE: { enterOuterAlt(_localctx, 2); - setState(1202); + setState(1219); match(CypherParser::MAXVALUE); - setState(1203); + setState(1220); match(CypherParser::SP); - setState(1205); + setState(1222); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::MINUS) { - setState(1204); + setState(1221); match(CypherParser::MINUS); } - setState(1207); + setState(1224); oC_IntegerLiteral(); break; } @@ -6609,7 +6712,7 @@ size_t CypherParser::IC_StartWithContext::getRuleIndex() const { CypherParser::IC_StartWithContext* CypherParser::iC_StartWith() { IC_StartWithContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 90, CypherParser::RuleIC_StartWith); + enterRule(_localctx, 92, CypherParser::RuleIC_StartWith); size_t _la = 0; #if __cplusplus > 201703L @@ -6621,29 +6724,29 @@ CypherParser::IC_StartWithContext* CypherParser::iC_StartWith() { }); try { enterOuterAlt(_localctx, 1); - setState(1210); + setState(1227); match(CypherParser::START); - setState(1211); + setState(1228); match(CypherParser::SP); - setState(1214); + setState(1231); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::WITH) { - setState(1212); + setState(1229); match(CypherParser::WITH); - setState(1213); + setState(1230); match(CypherParser::SP); } - setState(1217); + setState(1234); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::MINUS) { - setState(1216); + setState(1233); match(CypherParser::MINUS); } - setState(1219); + setState(1236); oC_IntegerLiteral(); } @@ -6682,7 +6785,7 @@ size_t CypherParser::IC_CycleContext::getRuleIndex() const { CypherParser::IC_CycleContext* CypherParser::iC_Cycle() { IC_CycleContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 92, CypherParser::RuleIC_Cycle); + enterRule(_localctx, 94, CypherParser::RuleIC_Cycle); size_t _la = 0; #if __cplusplus > 201703L @@ -6694,17 +6797,17 @@ CypherParser::IC_CycleContext* CypherParser::iC_Cycle() { }); try { enterOuterAlt(_localctx, 1); - setState(1223); + setState(1240); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::NO) { - setState(1221); + setState(1238); match(CypherParser::NO); - setState(1222); + setState(1239); match(CypherParser::SP); } - setState(1225); + setState(1242); match(CypherParser::CYCLE); } @@ -6743,7 +6846,7 @@ size_t CypherParser::IC_IfExistsContext::getRuleIndex() const { CypherParser::IC_IfExistsContext* CypherParser::iC_IfExists() { IC_IfExistsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 94, CypherParser::RuleIC_IfExists); + enterRule(_localctx, 96, CypherParser::RuleIC_IfExists); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6754,11 +6857,11 @@ CypherParser::IC_IfExistsContext* CypherParser::iC_IfExists() { }); try { enterOuterAlt(_localctx, 1); - setState(1227); + setState(1244); match(CypherParser::IF); - setState(1228); + setState(1245); match(CypherParser::SP); - setState(1229); + setState(1246); match(CypherParser::EXISTS); } @@ -6821,7 +6924,7 @@ size_t CypherParser::IC_DropContext::getRuleIndex() const { CypherParser::IC_DropContext* CypherParser::iC_Drop() { IC_DropContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 96, CypherParser::RuleIC_Drop); + enterRule(_localctx, 98, CypherParser::RuleIC_Drop); size_t _la = 0; #if __cplusplus > 201703L @@ -6833,11 +6936,11 @@ CypherParser::IC_DropContext* CypherParser::iC_Drop() { }); try { enterOuterAlt(_localctx, 1); - setState(1231); + setState(1248); match(CypherParser::DROP); - setState(1232); + setState(1249); match(CypherParser::SP); - setState(1233); + setState(1250); _la = _input->LA(1); if (!(((((_la - 92) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 92)) & 285873023287297) != 0))) { @@ -6847,16 +6950,16 @@ CypherParser::IC_DropContext* CypherParser::iC_Drop() { _errHandler->reportMatch(this); consume(); } - setState(1234); + setState(1251); match(CypherParser::SP); - setState(1238); + setState(1255); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 153, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 157, _ctx)) { case 1: { - setState(1235); + setState(1252); iC_IfExists(); - setState(1236); + setState(1253); match(CypherParser::SP); break; } @@ -6864,7 +6967,7 @@ CypherParser::IC_DropContext* CypherParser::iC_Drop() { default: break; } - setState(1240); + setState(1257); oC_SchemaName(); } @@ -6915,7 +7018,7 @@ size_t CypherParser::IC_AlterTableContext::getRuleIndex() const { CypherParser::IC_AlterTableContext* CypherParser::iC_AlterTable() { IC_AlterTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 98, CypherParser::RuleIC_AlterTable); + enterRule(_localctx, 100, CypherParser::RuleIC_AlterTable); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6926,19 +7029,19 @@ CypherParser::IC_AlterTableContext* CypherParser::iC_AlterTable() { }); try { enterOuterAlt(_localctx, 1); - setState(1242); + setState(1259); match(CypherParser::ALTER); - setState(1243); + setState(1260); match(CypherParser::SP); - setState(1244); + setState(1261); match(CypherParser::TABLE); - setState(1245); + setState(1262); match(CypherParser::SP); - setState(1246); + setState(1263); oC_SchemaName(); - setState(1247); + setState(1264); match(CypherParser::SP); - setState(1248); + setState(1265); iC_AlterOptions(); } @@ -6989,7 +7092,7 @@ size_t CypherParser::IC_AlterOptionsContext::getRuleIndex() const { CypherParser::IC_AlterOptionsContext* CypherParser::iC_AlterOptions() { IC_AlterOptionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 100, CypherParser::RuleIC_AlterOptions); + enterRule(_localctx, 102, CypherParser::RuleIC_AlterOptions); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -6999,47 +7102,47 @@ CypherParser::IC_AlterOptionsContext* CypherParser::iC_AlterOptions() { exitRule(); }); try { - setState(1256); + setState(1273); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 154, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 158, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1250); + setState(1267); iC_AddProperty(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1251); + setState(1268); iC_DropProperty(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(1252); + setState(1269); iC_RenameTable(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(1253); + setState(1270); iC_RenameProperty(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(1254); + setState(1271); iC_AddFromToConnection(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(1255); + setState(1272); iC_DropFromToConnection(); break; } @@ -7100,7 +7203,7 @@ size_t CypherParser::IC_AddPropertyContext::getRuleIndex() const { CypherParser::IC_AddPropertyContext* CypherParser::iC_AddProperty() { IC_AddPropertyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 102, CypherParser::RuleIC_AddProperty); + enterRule(_localctx, 104, CypherParser::RuleIC_AddProperty); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7111,18 +7214,18 @@ CypherParser::IC_AddPropertyContext* CypherParser::iC_AddProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(1258); + setState(1275); match(CypherParser::ADD); - setState(1259); + setState(1276); match(CypherParser::SP); - setState(1263); + setState(1280); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 155, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 159, _ctx)) { case 1: { - setState(1260); + setState(1277); iC_IfNotExists(); - setState(1261); + setState(1278); match(CypherParser::SP); break; } @@ -7130,20 +7233,20 @@ CypherParser::IC_AddPropertyContext* CypherParser::iC_AddProperty() { default: break; } - setState(1265); + setState(1282); oC_PropertyKeyName(); - setState(1266); + setState(1283); match(CypherParser::SP); - setState(1267); + setState(1284); iC_DataType(0); - setState(1270); + setState(1287); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 156, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 160, _ctx)) { case 1: { - setState(1268); + setState(1285); match(CypherParser::SP); - setState(1269); + setState(1286); iC_Default(); break; } @@ -7188,7 +7291,7 @@ size_t CypherParser::IC_DefaultContext::getRuleIndex() const { CypherParser::IC_DefaultContext* CypherParser::iC_Default() { IC_DefaultContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 104, CypherParser::RuleIC_Default); + enterRule(_localctx, 106, CypherParser::RuleIC_Default); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7199,11 +7302,11 @@ CypherParser::IC_DefaultContext* CypherParser::iC_Default() { }); try { enterOuterAlt(_localctx, 1); - setState(1272); + setState(1289); match(CypherParser::DEFAULT); - setState(1273); + setState(1290); match(CypherParser::SP); - setState(1274); + setState(1291); oC_Expression(); } @@ -7250,7 +7353,7 @@ size_t CypherParser::IC_DropPropertyContext::getRuleIndex() const { CypherParser::IC_DropPropertyContext* CypherParser::iC_DropProperty() { IC_DropPropertyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 106, CypherParser::RuleIC_DropProperty); + enterRule(_localctx, 108, CypherParser::RuleIC_DropProperty); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7261,18 +7364,18 @@ CypherParser::IC_DropPropertyContext* CypherParser::iC_DropProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(1276); + setState(1293); match(CypherParser::DROP); - setState(1277); + setState(1294); match(CypherParser::SP); - setState(1281); + setState(1298); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 157, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 161, _ctx)) { case 1: { - setState(1278); + setState(1295); iC_IfExists(); - setState(1279); + setState(1296); match(CypherParser::SP); break; } @@ -7280,7 +7383,7 @@ CypherParser::IC_DropPropertyContext* CypherParser::iC_DropProperty() { default: break; } - setState(1283); + setState(1300); oC_PropertyKeyName(); } @@ -7327,7 +7430,7 @@ size_t CypherParser::IC_RenameTableContext::getRuleIndex() const { CypherParser::IC_RenameTableContext* CypherParser::iC_RenameTable() { IC_RenameTableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 108, CypherParser::RuleIC_RenameTable); + enterRule(_localctx, 110, CypherParser::RuleIC_RenameTable); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7338,15 +7441,15 @@ CypherParser::IC_RenameTableContext* CypherParser::iC_RenameTable() { }); try { enterOuterAlt(_localctx, 1); - setState(1285); + setState(1302); match(CypherParser::RENAME); - setState(1286); + setState(1303); match(CypherParser::SP); - setState(1287); + setState(1304); match(CypherParser::TO); - setState(1288); + setState(1305); match(CypherParser::SP); - setState(1289); + setState(1306); oC_SchemaName(); } @@ -7397,7 +7500,7 @@ size_t CypherParser::IC_RenamePropertyContext::getRuleIndex() const { CypherParser::IC_RenamePropertyContext* CypherParser::iC_RenameProperty() { IC_RenamePropertyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 110, CypherParser::RuleIC_RenameProperty); + enterRule(_localctx, 112, CypherParser::RuleIC_RenameProperty); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7408,19 +7511,19 @@ CypherParser::IC_RenamePropertyContext* CypherParser::iC_RenameProperty() { }); try { enterOuterAlt(_localctx, 1); - setState(1291); + setState(1308); match(CypherParser::RENAME); - setState(1292); + setState(1309); match(CypherParser::SP); - setState(1293); + setState(1310); oC_PropertyKeyName(); - setState(1294); + setState(1311); match(CypherParser::SP); - setState(1295); + setState(1312); match(CypherParser::TO); - setState(1296); + setState(1313); match(CypherParser::SP); - setState(1297); + setState(1314); oC_PropertyKeyName(); } @@ -7467,7 +7570,7 @@ size_t CypherParser::IC_AddFromToConnectionContext::getRuleIndex() const { CypherParser::IC_AddFromToConnectionContext* CypherParser::iC_AddFromToConnection() { IC_AddFromToConnectionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 112, CypherParser::RuleIC_AddFromToConnection); + enterRule(_localctx, 114, CypherParser::RuleIC_AddFromToConnection); size_t _la = 0; #if __cplusplus > 201703L @@ -7479,21 +7582,21 @@ CypherParser::IC_AddFromToConnectionContext* CypherParser::iC_AddFromToConnectio }); try { enterOuterAlt(_localctx, 1); - setState(1299); + setState(1316); match(CypherParser::ADD); - setState(1300); + setState(1317); match(CypherParser::SP); - setState(1304); + setState(1321); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::IF) { - setState(1301); + setState(1318); iC_IfNotExists(); - setState(1302); + setState(1319); match(CypherParser::SP); } - setState(1306); + setState(1323); iC_FromToConnection(); } @@ -7540,7 +7643,7 @@ size_t CypherParser::IC_DropFromToConnectionContext::getRuleIndex() const { CypherParser::IC_DropFromToConnectionContext* CypherParser::iC_DropFromToConnection() { IC_DropFromToConnectionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 114, CypherParser::RuleIC_DropFromToConnection); + enterRule(_localctx, 116, CypherParser::RuleIC_DropFromToConnection); size_t _la = 0; #if __cplusplus > 201703L @@ -7552,21 +7655,21 @@ CypherParser::IC_DropFromToConnectionContext* CypherParser::iC_DropFromToConnect }); try { enterOuterAlt(_localctx, 1); - setState(1308); + setState(1325); match(CypherParser::DROP); - setState(1309); + setState(1326); match(CypherParser::SP); - setState(1313); + setState(1330); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::IF) { - setState(1310); + setState(1327); iC_IfExists(); - setState(1311); + setState(1328); match(CypherParser::SP); } - setState(1315); + setState(1332); iC_FromToConnection(); } @@ -7609,7 +7712,7 @@ size_t CypherParser::IC_ColumnDefinitionsContext::getRuleIndex() const { CypherParser::IC_ColumnDefinitionsContext* CypherParser::iC_ColumnDefinitions() { IC_ColumnDefinitionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 116, CypherParser::RuleIC_ColumnDefinitions); + enterRule(_localctx, 118, CypherParser::RuleIC_ColumnDefinitions); size_t _la = 0; #if __cplusplus > 201703L @@ -7622,37 +7725,37 @@ CypherParser::IC_ColumnDefinitionsContext* CypherParser::iC_ColumnDefinitions() try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1317); + setState(1334); iC_ColumnDefinition(); - setState(1328); + setState(1345); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 162, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 166, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1319); + setState(1336); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1318); + setState(1335); match(CypherParser::SP); } - setState(1321); + setState(1338); match(CypherParser::T__3); - setState(1323); + setState(1340); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1322); + setState(1339); match(CypherParser::SP); } - setState(1325); + setState(1342); iC_ColumnDefinition(); } - setState(1330); + setState(1347); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 162, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 166, _ctx); } } @@ -7691,7 +7794,7 @@ size_t CypherParser::IC_ColumnDefinitionContext::getRuleIndex() const { CypherParser::IC_ColumnDefinitionContext* CypherParser::iC_ColumnDefinition() { IC_ColumnDefinitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 118, CypherParser::RuleIC_ColumnDefinition); + enterRule(_localctx, 120, CypherParser::RuleIC_ColumnDefinition); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7702,11 +7805,11 @@ CypherParser::IC_ColumnDefinitionContext* CypherParser::iC_ColumnDefinition() { }); try { enterOuterAlt(_localctx, 1); - setState(1331); + setState(1348); oC_PropertyKeyName(); - setState(1332); + setState(1349); match(CypherParser::SP); - setState(1333); + setState(1350); iC_DataType(0); } @@ -7749,7 +7852,7 @@ size_t CypherParser::IC_PropertyDefinitionsContext::getRuleIndex() const { CypherParser::IC_PropertyDefinitionsContext* CypherParser::iC_PropertyDefinitions() { IC_PropertyDefinitionsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 120, CypherParser::RuleIC_PropertyDefinitions); + enterRule(_localctx, 122, CypherParser::RuleIC_PropertyDefinitions); size_t _la = 0; #if __cplusplus > 201703L @@ -7762,37 +7865,37 @@ CypherParser::IC_PropertyDefinitionsContext* CypherParser::iC_PropertyDefinition try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1335); + setState(1352); iC_PropertyDefinition(); - setState(1346); + setState(1363); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 165, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 169, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1337); + setState(1354); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1336); + setState(1353); match(CypherParser::SP); } - setState(1339); + setState(1356); match(CypherParser::T__3); - setState(1341); + setState(1358); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1340); + setState(1357); match(CypherParser::SP); } - setState(1343); + setState(1360); iC_PropertyDefinition(); } - setState(1348); + setState(1365); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 165, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 169, _ctx); } } @@ -7843,7 +7946,7 @@ size_t CypherParser::IC_PropertyDefinitionContext::getRuleIndex() const { CypherParser::IC_PropertyDefinitionContext* CypherParser::iC_PropertyDefinition() { IC_PropertyDefinitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 122, CypherParser::RuleIC_PropertyDefinition); + enterRule(_localctx, 124, CypherParser::RuleIC_PropertyDefinition); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -7854,16 +7957,16 @@ CypherParser::IC_PropertyDefinitionContext* CypherParser::iC_PropertyDefinition( }); try { enterOuterAlt(_localctx, 1); - setState(1349); + setState(1366); iC_ColumnDefinition(); - setState(1352); + setState(1369); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 166, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 170, _ctx)) { case 1: { - setState(1350); + setState(1367); match(CypherParser::SP); - setState(1351); + setState(1368); iC_Default(); break; } @@ -7871,18 +7974,18 @@ CypherParser::IC_PropertyDefinitionContext* CypherParser::iC_PropertyDefinition( default: break; } - setState(1358); + setState(1375); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 167, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 171, _ctx)) { case 1: { - setState(1354); + setState(1371); match(CypherParser::SP); - setState(1355); + setState(1372); match(CypherParser::PRIMARY); - setState(1356); + setState(1373); match(CypherParser::SP); - setState(1357); + setState(1374); match(CypherParser::KEY); break; } @@ -7935,7 +8038,7 @@ size_t CypherParser::IC_CreateNodeConstraintContext::getRuleIndex() const { CypherParser::IC_CreateNodeConstraintContext* CypherParser::iC_CreateNodeConstraint() { IC_CreateNodeConstraintContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 124, CypherParser::RuleIC_CreateNodeConstraint); + enterRule(_localctx, 126, CypherParser::RuleIC_CreateNodeConstraint); size_t _la = 0; #if __cplusplus > 201703L @@ -7947,41 +8050,41 @@ CypherParser::IC_CreateNodeConstraintContext* CypherParser::iC_CreateNodeConstra }); try { enterOuterAlt(_localctx, 1); - setState(1360); + setState(1377); match(CypherParser::PRIMARY); - setState(1361); + setState(1378); match(CypherParser::SP); - setState(1362); + setState(1379); match(CypherParser::KEY); - setState(1364); + setState(1381); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1363); + setState(1380); match(CypherParser::SP); } - setState(1366); + setState(1383); match(CypherParser::T__1); - setState(1368); + setState(1385); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1367); + setState(1384); match(CypherParser::SP); } - setState(1370); + setState(1387); oC_PropertyKeyName(); - setState(1372); + setState(1389); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1371); + setState(1388); match(CypherParser::SP); } - setState(1374); + setState(1391); match(CypherParser::T__2); } @@ -8024,7 +8127,7 @@ size_t CypherParser::IC_UnionTypeContext::getRuleIndex() const { CypherParser::IC_UnionTypeContext* CypherParser::iC_UnionType() { IC_UnionTypeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 126, CypherParser::RuleIC_UnionType); + enterRule(_localctx, 128, CypherParser::RuleIC_UnionType); size_t _la = 0; #if __cplusplus > 201703L @@ -8036,37 +8139,37 @@ CypherParser::IC_UnionTypeContext* CypherParser::iC_UnionType() { }); try { enterOuterAlt(_localctx, 1); - setState(1376); + setState(1393); match(CypherParser::UNION); - setState(1378); + setState(1395); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1377); + setState(1394); match(CypherParser::SP); } - setState(1380); + setState(1397); match(CypherParser::T__1); - setState(1382); + setState(1399); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1381); + setState(1398); match(CypherParser::SP); } - setState(1384); + setState(1401); iC_ColumnDefinitions(); - setState(1386); + setState(1403); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1385); + setState(1402); match(CypherParser::SP); } - setState(1388); + setState(1405); match(CypherParser::T__2); } @@ -8109,7 +8212,7 @@ size_t CypherParser::IC_StructTypeContext::getRuleIndex() const { CypherParser::IC_StructTypeContext* CypherParser::iC_StructType() { IC_StructTypeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 128, CypherParser::RuleIC_StructType); + enterRule(_localctx, 130, CypherParser::RuleIC_StructType); size_t _la = 0; #if __cplusplus > 201703L @@ -8121,37 +8224,37 @@ CypherParser::IC_StructTypeContext* CypherParser::iC_StructType() { }); try { enterOuterAlt(_localctx, 1); - setState(1390); + setState(1407); match(CypherParser::STRUCT); - setState(1392); + setState(1409); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1391); + setState(1408); match(CypherParser::SP); } - setState(1394); + setState(1411); match(CypherParser::T__1); - setState(1396); + setState(1413); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1395); + setState(1412); match(CypherParser::SP); } - setState(1398); + setState(1415); iC_ColumnDefinitions(); - setState(1400); + setState(1417); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1399); + setState(1416); match(CypherParser::SP); } - setState(1402); + setState(1419); match(CypherParser::T__2); } @@ -8198,7 +8301,7 @@ size_t CypherParser::IC_MapTypeContext::getRuleIndex() const { CypherParser::IC_MapTypeContext* CypherParser::iC_MapType() { IC_MapTypeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 130, CypherParser::RuleIC_MapType); + enterRule(_localctx, 132, CypherParser::RuleIC_MapType); size_t _la = 0; #if __cplusplus > 201703L @@ -8210,57 +8313,57 @@ CypherParser::IC_MapTypeContext* CypherParser::iC_MapType() { }); try { enterOuterAlt(_localctx, 1); - setState(1404); + setState(1421); match(CypherParser::MAP); - setState(1406); + setState(1423); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1405); + setState(1422); match(CypherParser::SP); } - setState(1408); + setState(1425); match(CypherParser::T__1); - setState(1410); + setState(1427); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1409); + setState(1426); match(CypherParser::SP); } - setState(1412); + setState(1429); iC_DataType(0); - setState(1414); + setState(1431); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1413); + setState(1430); match(CypherParser::SP); } - setState(1416); + setState(1433); match(CypherParser::T__3); - setState(1418); + setState(1435); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1417); + setState(1434); match(CypherParser::SP); } - setState(1420); + setState(1437); iC_DataType(0); - setState(1422); + setState(1439); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1421); + setState(1438); match(CypherParser::SP); } - setState(1424); + setState(1441); match(CypherParser::T__2); } @@ -8307,7 +8410,7 @@ size_t CypherParser::IC_DecimalTypeContext::getRuleIndex() const { CypherParser::IC_DecimalTypeContext* CypherParser::iC_DecimalType() { IC_DecimalTypeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 132, CypherParser::RuleIC_DecimalType); + enterRule(_localctx, 134, CypherParser::RuleIC_DecimalType); size_t _la = 0; #if __cplusplus > 201703L @@ -8319,57 +8422,57 @@ CypherParser::IC_DecimalTypeContext* CypherParser::iC_DecimalType() { }); try { enterOuterAlt(_localctx, 1); - setState(1426); + setState(1443); match(CypherParser::DECIMAL); - setState(1428); + setState(1445); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1427); + setState(1444); match(CypherParser::SP); } - setState(1430); + setState(1447); match(CypherParser::T__1); - setState(1432); + setState(1449); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1431); + setState(1448); match(CypherParser::SP); } - setState(1434); + setState(1451); oC_IntegerLiteral(); - setState(1436); + setState(1453); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1435); + setState(1452); match(CypherParser::SP); } - setState(1438); + setState(1455); match(CypherParser::T__3); - setState(1440); + setState(1457); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1439); + setState(1456); match(CypherParser::SP); } - setState(1442); + setState(1459); oC_IntegerLiteral(); - setState(1444); + setState(1461); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1443); + setState(1460); match(CypherParser::SP); } - setState(1446); + setState(1463); match(CypherParser::T__2); } @@ -8433,8 +8536,8 @@ CypherParser::IC_DataTypeContext* CypherParser::iC_DataType(int precedence) { CypherParser::IC_DataTypeContext *_localctx = _tracker.createInstance(_ctx, parentState); CypherParser::IC_DataTypeContext *previousContext = _localctx; (void)previousContext; // Silence compiler, in case the context is not used by generated code. - size_t startState = 134; - enterRecursionRule(_localctx, 134, CypherParser::RuleIC_DataType, precedence); + size_t startState = 136; + enterRecursionRule(_localctx, 136, CypherParser::RuleIC_DataType, precedence); @@ -8448,35 +8551,35 @@ CypherParser::IC_DataTypeContext* CypherParser::iC_DataType(int precedence) { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1454); + setState(1471); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 187, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 191, _ctx)) { case 1: { - setState(1449); + setState(1466); oC_SymbolicName(); break; } case 2: { - setState(1450); + setState(1467); iC_UnionType(); break; } case 3: { - setState(1451); + setState(1468); iC_StructType(); break; } case 4: { - setState(1452); + setState(1469); iC_MapType(); break; } case 5: { - setState(1453); + setState(1470); iC_DecimalType(); break; } @@ -8485,9 +8588,9 @@ CypherParser::IC_DataTypeContext* CypherParser::iC_DataType(int precedence) { break; } _ctx->stop = _input->LT(-1); - setState(1460); + setState(1477); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 188, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 192, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { if (!_parseListeners.empty()) @@ -8495,15 +8598,15 @@ CypherParser::IC_DataTypeContext* CypherParser::iC_DataType(int precedence) { previousContext = _localctx; _localctx = _tracker.createInstance(parentContext, parentState); pushNewRecursionContext(_localctx, startState, RuleIC_DataType); - setState(1456); + setState(1473); if (!(precpred(_ctx, 5))) throw FailedPredicateException(this, "precpred(_ctx, 5)"); - setState(1457); + setState(1474); iC_ListIdentifiers(); } - setState(1462); + setState(1479); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 188, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 192, _ctx); } } catch (RecognitionException &e) { @@ -8536,7 +8639,7 @@ size_t CypherParser::IC_ListIdentifiersContext::getRuleIndex() const { CypherParser::IC_ListIdentifiersContext* CypherParser::iC_ListIdentifiers() { IC_ListIdentifiersContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 136, CypherParser::RuleIC_ListIdentifiers); + enterRule(_localctx, 138, CypherParser::RuleIC_ListIdentifiers); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -8548,19 +8651,19 @@ CypherParser::IC_ListIdentifiersContext* CypherParser::iC_ListIdentifiers() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1463); + setState(1480); iC_ListIdentifier(); - setState(1467); + setState(1484); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 189, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 193, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1464); + setState(1481); iC_ListIdentifier(); } - setState(1469); + setState(1486); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 189, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 193, _ctx); } } @@ -8591,7 +8694,7 @@ size_t CypherParser::IC_ListIdentifierContext::getRuleIndex() const { CypherParser::IC_ListIdentifierContext* CypherParser::iC_ListIdentifier() { IC_ListIdentifierContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 138, CypherParser::RuleIC_ListIdentifier); + enterRule(_localctx, 140, CypherParser::RuleIC_ListIdentifier); size_t _la = 0; #if __cplusplus > 201703L @@ -8603,17 +8706,17 @@ CypherParser::IC_ListIdentifierContext* CypherParser::iC_ListIdentifier() { }); try { enterOuterAlt(_localctx, 1); - setState(1470); + setState(1487); match(CypherParser::T__6); - setState(1472); + setState(1489); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(1471); + setState(1488); oC_IntegerLiteral(); } - setState(1474); + setState(1491); match(CypherParser::T__7); } @@ -8648,7 +8751,7 @@ size_t CypherParser::OC_AnyCypherOptionContext::getRuleIndex() const { CypherParser::OC_AnyCypherOptionContext* CypherParser::oC_AnyCypherOption() { OC_AnyCypherOptionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 140, CypherParser::RuleOC_AnyCypherOption); + enterRule(_localctx, 142, CypherParser::RuleOC_AnyCypherOption); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -8658,19 +8761,19 @@ CypherParser::OC_AnyCypherOptionContext* CypherParser::oC_AnyCypherOption() { exitRule(); }); try { - setState(1478); + setState(1495); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::EXPLAIN: { enterOuterAlt(_localctx, 1); - setState(1476); + setState(1493); oC_Explain(); break; } case CypherParser::PROFILE: { enterOuterAlt(_localctx, 2); - setState(1477); + setState(1494); oC_Profile(); break; } @@ -8715,7 +8818,7 @@ size_t CypherParser::OC_ExplainContext::getRuleIndex() const { CypherParser::OC_ExplainContext* CypherParser::oC_Explain() { OC_ExplainContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 142, CypherParser::RuleOC_Explain); + enterRule(_localctx, 144, CypherParser::RuleOC_Explain); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -8726,16 +8829,16 @@ CypherParser::OC_ExplainContext* CypherParser::oC_Explain() { }); try { enterOuterAlt(_localctx, 1); - setState(1480); + setState(1497); match(CypherParser::EXPLAIN); - setState(1483); + setState(1500); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 192, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 196, _ctx)) { case 1: { - setState(1481); + setState(1498); match(CypherParser::SP); - setState(1482); + setState(1499); match(CypherParser::LOGICAL); break; } @@ -8772,7 +8875,7 @@ size_t CypherParser::OC_ProfileContext::getRuleIndex() const { CypherParser::OC_ProfileContext* CypherParser::oC_Profile() { OC_ProfileContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 144, CypherParser::RuleOC_Profile); + enterRule(_localctx, 146, CypherParser::RuleOC_Profile); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -8783,7 +8886,7 @@ CypherParser::OC_ProfileContext* CypherParser::oC_Profile() { }); try { enterOuterAlt(_localctx, 1); - setState(1485); + setState(1502); match(CypherParser::PROFILE); } @@ -8846,7 +8949,7 @@ size_t CypherParser::IC_TransactionContext::getRuleIndex() const { CypherParser::IC_TransactionContext* CypherParser::iC_Transaction() { IC_TransactionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 146, CypherParser::RuleIC_Transaction); + enterRule(_localctx, 148, CypherParser::RuleIC_Transaction); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -8856,56 +8959,56 @@ CypherParser::IC_TransactionContext* CypherParser::iC_Transaction() { exitRule(); }); try { - setState(1500); + setState(1517); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 193, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 197, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1487); + setState(1504); match(CypherParser::BEGIN); - setState(1488); + setState(1505); match(CypherParser::SP); - setState(1489); + setState(1506); match(CypherParser::TRANSACTION); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1490); + setState(1507); match(CypherParser::BEGIN); - setState(1491); + setState(1508); match(CypherParser::SP); - setState(1492); + setState(1509); match(CypherParser::TRANSACTION); - setState(1493); + setState(1510); match(CypherParser::SP); - setState(1494); + setState(1511); match(CypherParser::READ); - setState(1495); + setState(1512); match(CypherParser::SP); - setState(1496); + setState(1513); match(CypherParser::ONLY); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(1497); + setState(1514); match(CypherParser::COMMIT); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(1498); + setState(1515); match(CypherParser::ROLLBACK); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(1499); + setState(1516); match(CypherParser::CHECKPOINT); break; } @@ -8954,7 +9057,7 @@ size_t CypherParser::IC_ExtensionContext::getRuleIndex() const { CypherParser::IC_ExtensionContext* CypherParser::iC_Extension() { IC_ExtensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 148, CypherParser::RuleIC_Extension); + enterRule(_localctx, 150, CypherParser::RuleIC_Extension); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -8964,12 +9067,12 @@ CypherParser::IC_ExtensionContext* CypherParser::iC_Extension() { exitRule(); }); try { - setState(1506); + setState(1523); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::LOAD: { enterOuterAlt(_localctx, 1); - setState(1502); + setState(1519); iC_LoadExtension(); break; } @@ -8977,21 +9080,21 @@ CypherParser::IC_ExtensionContext* CypherParser::iC_Extension() { case CypherParser::FORCE: case CypherParser::INSTALL: { enterOuterAlt(_localctx, 2); - setState(1503); + setState(1520); iC_InstallExtension(); break; } case CypherParser::UNINSTALL: { enterOuterAlt(_localctx, 3); - setState(1504); + setState(1521); iC_UninstallExtension(); break; } case CypherParser::UPDATE: { enterOuterAlt(_localctx, 4); - setState(1505); + setState(1522); iC_UpdateExtension(); break; } @@ -9048,7 +9151,7 @@ size_t CypherParser::IC_LoadExtensionContext::getRuleIndex() const { CypherParser::IC_LoadExtensionContext* CypherParser::iC_LoadExtension() { IC_LoadExtensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 150, CypherParser::RuleIC_LoadExtension); + enterRule(_localctx, 152, CypherParser::RuleIC_LoadExtension); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -9059,18 +9162,18 @@ CypherParser::IC_LoadExtensionContext* CypherParser::iC_LoadExtension() { }); try { enterOuterAlt(_localctx, 1); - setState(1508); + setState(1525); match(CypherParser::LOAD); - setState(1509); + setState(1526); match(CypherParser::SP); - setState(1512); + setState(1529); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 195, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 199, _ctx)) { case 1: { - setState(1510); + setState(1527); match(CypherParser::EXTENSION); - setState(1511); + setState(1528); match(CypherParser::SP); break; } @@ -9078,11 +9181,11 @@ CypherParser::IC_LoadExtensionContext* CypherParser::iC_LoadExtension() { default: break; } - setState(1516); + setState(1533); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::StringLiteral: { - setState(1514); + setState(1531); match(CypherParser::StringLiteral); break; } @@ -9153,7 +9256,7 @@ CypherParser::IC_LoadExtensionContext* CypherParser::iC_LoadExtension() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(1515); + setState(1532); oC_Variable(); break; } @@ -9214,7 +9317,7 @@ size_t CypherParser::IC_InstallExtensionContext::getRuleIndex() const { CypherParser::IC_InstallExtensionContext* CypherParser::iC_InstallExtension() { IC_InstallExtensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 152, CypherParser::RuleIC_InstallExtension); + enterRule(_localctx, 154, CypherParser::RuleIC_InstallExtension); size_t _la = 0; #if __cplusplus > 201703L @@ -9226,34 +9329,34 @@ CypherParser::IC_InstallExtensionContext* CypherParser::iC_InstallExtension() { }); try { enterOuterAlt(_localctx, 1); - setState(1520); + setState(1537); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::FORCE) { - setState(1518); + setState(1535); match(CypherParser::FORCE); - setState(1519); + setState(1536); match(CypherParser::SP); } - setState(1522); + setState(1539); match(CypherParser::INSTALL); - setState(1523); + setState(1540); match(CypherParser::SP); - setState(1524); + setState(1541); oC_Variable(); - setState(1529); + setState(1546); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 198, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 202, _ctx)) { case 1: { - setState(1525); + setState(1542); match(CypherParser::SP); - setState(1526); + setState(1543); match(CypherParser::FROM); - setState(1527); + setState(1544); match(CypherParser::SP); - setState(1528); + setState(1545); match(CypherParser::StringLiteral); break; } @@ -9298,7 +9401,7 @@ size_t CypherParser::IC_UninstallExtensionContext::getRuleIndex() const { CypherParser::IC_UninstallExtensionContext* CypherParser::iC_UninstallExtension() { IC_UninstallExtensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 154, CypherParser::RuleIC_UninstallExtension); + enterRule(_localctx, 156, CypherParser::RuleIC_UninstallExtension); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -9309,11 +9412,11 @@ CypherParser::IC_UninstallExtensionContext* CypherParser::iC_UninstallExtension( }); try { enterOuterAlt(_localctx, 1); - setState(1531); + setState(1548); match(CypherParser::UNINSTALL); - setState(1532); + setState(1549); match(CypherParser::SP); - setState(1533); + setState(1550); oC_Variable(); } @@ -9352,7 +9455,7 @@ size_t CypherParser::IC_UpdateExtensionContext::getRuleIndex() const { CypherParser::IC_UpdateExtensionContext* CypherParser::iC_UpdateExtension() { IC_UpdateExtensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 156, CypherParser::RuleIC_UpdateExtension); + enterRule(_localctx, 158, CypherParser::RuleIC_UpdateExtension); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -9363,11 +9466,11 @@ CypherParser::IC_UpdateExtensionContext* CypherParser::iC_UpdateExtension() { }); try { enterOuterAlt(_localctx, 1); - setState(1535); + setState(1552); match(CypherParser::UPDATE); - setState(1536); + setState(1553); match(CypherParser::SP); - setState(1537); + setState(1554); oC_Variable(); } @@ -9398,7 +9501,7 @@ size_t CypherParser::OC_QueryContext::getRuleIndex() const { CypherParser::OC_QueryContext* CypherParser::oC_Query() { OC_QueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 158, CypherParser::RuleOC_Query); + enterRule(_localctx, 160, CypherParser::RuleOC_Query); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -9409,7 +9512,7 @@ CypherParser::OC_QueryContext* CypherParser::oC_Query() { }); try { enterOuterAlt(_localctx, 1); - setState(1539); + setState(1556); oC_RegularQuery(); } @@ -9464,7 +9567,7 @@ size_t CypherParser::OC_RegularQueryContext::getRuleIndex() const { CypherParser::OC_RegularQueryContext* CypherParser::oC_RegularQuery() { OC_RegularQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 160, CypherParser::RuleOC_RegularQuery); + enterRule(_localctx, 162, CypherParser::RuleOC_RegularQuery); size_t _la = 0; #if __cplusplus > 201703L @@ -9476,52 +9579,52 @@ CypherParser::OC_RegularQueryContext* CypherParser::oC_RegularQuery() { }); try { size_t alt; - setState(1562); + setState(1579); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 203, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 207, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1541); + setState(1558); oC_SingleQuery(); - setState(1548); + setState(1565); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 200, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 204, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1543); + setState(1560); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1542); + setState(1559); match(CypherParser::SP); } - setState(1545); + setState(1562); oC_Union(); } - setState(1550); + setState(1567); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 200, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 204, _ctx); } break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1555); + setState(1572); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1551); + setState(1568); oC_Return(); - setState(1553); + setState(1570); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1552); + setState(1569); match(CypherParser::SP); } break; @@ -9530,11 +9633,11 @@ CypherParser::OC_RegularQueryContext* CypherParser::oC_RegularQuery() { default: throw NoViableAltException(this); } - setState(1557); + setState(1574); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 202, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 206, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - setState(1559); + setState(1576); oC_SingleQuery(); notifyReturnNotAtEnd(_localctx->start); break; @@ -9588,7 +9691,7 @@ size_t CypherParser::OC_UnionContext::getRuleIndex() const { CypherParser::OC_UnionContext* CypherParser::oC_Union() { OC_UnionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 162, CypherParser::RuleOC_Union); + enterRule(_localctx, 164, CypherParser::RuleOC_Union); size_t _la = 0; #if __cplusplus > 201703L @@ -9599,43 +9702,43 @@ CypherParser::OC_UnionContext* CypherParser::oC_Union() { exitRule(); }); try { - setState(1576); + setState(1593); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 206, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 210, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1564); + setState(1581); match(CypherParser::UNION); - setState(1565); + setState(1582); match(CypherParser::SP); - setState(1566); + setState(1583); match(CypherParser::ALL); - setState(1568); + setState(1585); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1567); + setState(1584); match(CypherParser::SP); } - setState(1570); + setState(1587); oC_SingleQuery(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1571); + setState(1588); match(CypherParser::UNION); - setState(1573); + setState(1590); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1572); + setState(1589); match(CypherParser::SP); } - setState(1575); + setState(1592); oC_SingleQuery(); break; } @@ -9676,7 +9779,7 @@ size_t CypherParser::OC_SingleQueryContext::getRuleIndex() const { CypherParser::OC_SingleQueryContext* CypherParser::oC_SingleQuery() { OC_SingleQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 164, CypherParser::RuleOC_SingleQuery); + enterRule(_localctx, 166, CypherParser::RuleOC_SingleQuery); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -9686,19 +9789,19 @@ CypherParser::OC_SingleQueryContext* CypherParser::oC_SingleQuery() { exitRule(); }); try { - setState(1580); + setState(1597); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 207, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 211, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1578); + setState(1595); oC_SinglePartQuery(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1579); + setState(1596); oC_MultiPartQuery(); break; } @@ -9759,7 +9862,7 @@ size_t CypherParser::OC_SinglePartQueryContext::getRuleIndex() const { CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { OC_SinglePartQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 166, CypherParser::RuleOC_SinglePartQuery); + enterRule(_localctx, 168, CypherParser::RuleOC_SinglePartQuery); size_t _la = 0; #if __cplusplus > 201703L @@ -9771,92 +9874,92 @@ CypherParser::OC_SinglePartQueryContext* CypherParser::oC_SinglePartQuery() { }); try { size_t alt; - setState(1617); + setState(1634); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 216, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 220, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1588); + setState(1605); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::CALL || ((((_la - 106) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 106)) & 4398046576649) != 0)) { - setState(1582); + setState(1599); oC_ReadingClause(); - setState(1584); + setState(1601); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1583); + setState(1600); match(CypherParser::SP); } - setState(1590); + setState(1607); _errHandler->sync(this); _la = _input->LA(1); } - setState(1591); + setState(1608); oC_Return(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1598); + setState(1615); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::CALL || ((((_la - 106) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 106)) & 4398046576649) != 0)) { - setState(1592); + setState(1609); oC_ReadingClause(); - setState(1594); + setState(1611); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1593); + setState(1610); match(CypherParser::SP); } - setState(1600); + setState(1617); _errHandler->sync(this); _la = _input->LA(1); } - setState(1601); + setState(1618); oC_UpdatingClause(); - setState(1608); + setState(1625); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 213, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 217, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1603); + setState(1620); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1602); + setState(1619); match(CypherParser::SP); } - setState(1605); + setState(1622); oC_UpdatingClause(); } - setState(1610); + setState(1627); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 213, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 217, _ctx); } - setState(1615); + setState(1632); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 215, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 219, _ctx)) { case 1: { - setState(1612); + setState(1629); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1611); + setState(1628); match(CypherParser::SP); } - setState(1614); + setState(1631); oC_Return(); break; } @@ -9915,7 +10018,7 @@ size_t CypherParser::OC_MultiPartQueryContext::getRuleIndex() const { CypherParser::OC_MultiPartQueryContext* CypherParser::oC_MultiPartQuery() { OC_MultiPartQueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 168, CypherParser::RuleOC_MultiPartQuery); + enterRule(_localctx, 170, CypherParser::RuleOC_MultiPartQuery); size_t _la = 0; #if __cplusplus > 201703L @@ -9928,20 +10031,20 @@ CypherParser::OC_MultiPartQueryContext* CypherParser::oC_MultiPartQuery() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1623); + setState(1640); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1619); + setState(1636); iC_QueryPart(); - setState(1621); + setState(1638); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1620); + setState(1637); match(CypherParser::SP); } break; @@ -9950,11 +10053,11 @@ CypherParser::OC_MultiPartQueryContext* CypherParser::oC_MultiPartQuery() { default: throw NoViableAltException(this); } - setState(1625); + setState(1642); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 218, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 222, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - setState(1627); + setState(1644); oC_SinglePartQuery(); } @@ -10009,7 +10112,7 @@ size_t CypherParser::IC_QueryPartContext::getRuleIndex() const { CypherParser::IC_QueryPartContext* CypherParser::iC_QueryPart() { IC_QueryPartContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 170, CypherParser::RuleIC_QueryPart); + enterRule(_localctx, 172, CypherParser::RuleIC_QueryPart); size_t _la = 0; #if __cplusplus > 201703L @@ -10021,45 +10124,45 @@ CypherParser::IC_QueryPartContext* CypherParser::iC_QueryPart() { }); try { enterOuterAlt(_localctx, 1); - setState(1635); + setState(1652); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::CALL || ((((_la - 106) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 106)) & 4398046576649) != 0)) { - setState(1629); + setState(1646); oC_ReadingClause(); - setState(1631); + setState(1648); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1630); + setState(1647); match(CypherParser::SP); } - setState(1637); + setState(1654); _errHandler->sync(this); _la = _input->LA(1); } - setState(1644); + setState(1661); _errHandler->sync(this); _la = _input->LA(1); while (((((_la - 69) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 69)) & 4398046511393) != 0) || _la == CypherParser::SET) { - setState(1638); + setState(1655); oC_UpdatingClause(); - setState(1640); + setState(1657); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1639); + setState(1656); match(CypherParser::SP); } - setState(1646); + setState(1663); _errHandler->sync(this); _la = _input->LA(1); } - setState(1647); + setState(1664); oC_With(); } @@ -10102,7 +10205,7 @@ size_t CypherParser::OC_UpdatingClauseContext::getRuleIndex() const { CypherParser::OC_UpdatingClauseContext* CypherParser::oC_UpdatingClause() { OC_UpdatingClauseContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 172, CypherParser::RuleOC_UpdatingClause); + enterRule(_localctx, 174, CypherParser::RuleOC_UpdatingClause); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10112,26 +10215,26 @@ CypherParser::OC_UpdatingClauseContext* CypherParser::oC_UpdatingClause() { exitRule(); }); try { - setState(1653); + setState(1670); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::CREATE: { enterOuterAlt(_localctx, 1); - setState(1649); + setState(1666); oC_Create(); break; } case CypherParser::MERGE: { enterOuterAlt(_localctx, 2); - setState(1650); + setState(1667); oC_Merge(); break; } case CypherParser::SET: { enterOuterAlt(_localctx, 3); - setState(1651); + setState(1668); oC_Set(); break; } @@ -10139,7 +10242,7 @@ CypherParser::OC_UpdatingClauseContext* CypherParser::oC_UpdatingClause() { case CypherParser::DELETE: case CypherParser::DETACH: { enterOuterAlt(_localctx, 4); - setState(1652); + setState(1669); oC_Delete(); break; } @@ -10188,7 +10291,7 @@ size_t CypherParser::OC_ReadingClauseContext::getRuleIndex() const { CypherParser::OC_ReadingClauseContext* CypherParser::oC_ReadingClause() { OC_ReadingClauseContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 174, CypherParser::RuleOC_ReadingClause); + enterRule(_localctx, 176, CypherParser::RuleOC_ReadingClause); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10198,34 +10301,34 @@ CypherParser::OC_ReadingClauseContext* CypherParser::oC_ReadingClause() { exitRule(); }); try { - setState(1659); + setState(1676); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::MATCH: case CypherParser::OPTIONAL: { enterOuterAlt(_localctx, 1); - setState(1655); + setState(1672); oC_Match(); break; } case CypherParser::UNWIND: { enterOuterAlt(_localctx, 2); - setState(1656); + setState(1673); oC_Unwind(); break; } case CypherParser::CALL: { enterOuterAlt(_localctx, 3); - setState(1657); + setState(1674); iC_InQueryCall(); break; } case CypherParser::LOAD: { enterOuterAlt(_localctx, 4); - setState(1658); + setState(1675); iC_LoadFrom(); break; } @@ -10298,7 +10401,7 @@ size_t CypherParser::IC_LoadFromContext::getRuleIndex() const { CypherParser::IC_LoadFromContext* CypherParser::iC_LoadFrom() { IC_LoadFromContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 176, CypherParser::RuleIC_LoadFrom); + enterRule(_localctx, 178, CypherParser::RuleIC_LoadFrom); size_t _la = 0; #if __cplusplus > 201703L @@ -10310,50 +10413,50 @@ CypherParser::IC_LoadFromContext* CypherParser::iC_LoadFrom() { }); try { enterOuterAlt(_localctx, 1); - setState(1661); + setState(1678); match(CypherParser::LOAD); - setState(1679); + setState(1696); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 228, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 232, _ctx)) { case 1: { - setState(1662); + setState(1679); match(CypherParser::SP); - setState(1663); + setState(1680); match(CypherParser::WITH); - setState(1664); + setState(1681); match(CypherParser::SP); - setState(1665); + setState(1682); match(CypherParser::HEADERS); - setState(1667); + setState(1684); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1666); + setState(1683); match(CypherParser::SP); } - setState(1669); + setState(1686); match(CypherParser::T__1); - setState(1671); + setState(1688); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1670); + setState(1687); match(CypherParser::SP); } - setState(1673); + setState(1690); iC_ColumnDefinitions(); - setState(1675); + setState(1692); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1674); + setState(1691); match(CypherParser::SP); } - setState(1677); + setState(1694); match(CypherParser::T__2); break; } @@ -10361,48 +10464,48 @@ CypherParser::IC_LoadFromContext* CypherParser::iC_LoadFrom() { default: break; } - setState(1681); + setState(1698); match(CypherParser::SP); - setState(1682); + setState(1699); match(CypherParser::FROM); - setState(1683); + setState(1700); match(CypherParser::SP); - setState(1684); + setState(1701); iC_ScanSource(); - setState(1698); + setState(1715); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 232, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 236, _ctx)) { case 1: { - setState(1686); + setState(1703); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1685); + setState(1702); match(CypherParser::SP); } - setState(1688); + setState(1705); match(CypherParser::T__1); - setState(1690); + setState(1707); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1689); + setState(1706); match(CypherParser::SP); } - setState(1692); + setState(1709); iC_Options(); - setState(1694); + setState(1711); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1693); + setState(1710); match(CypherParser::SP); } - setState(1696); + setState(1713); match(CypherParser::T__2); break; } @@ -10410,20 +10513,20 @@ CypherParser::IC_LoadFromContext* CypherParser::iC_LoadFrom() { default: break; } - setState(1704); + setState(1721); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 234, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 238, _ctx)) { case 1: { - setState(1701); + setState(1718); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1700); + setState(1717); match(CypherParser::SP); } - setState(1703); + setState(1720); oC_Where(); break; } @@ -10476,7 +10579,7 @@ size_t CypherParser::OC_YieldItemContext::getRuleIndex() const { CypherParser::OC_YieldItemContext* CypherParser::oC_YieldItem() { OC_YieldItemContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 178, CypherParser::RuleOC_YieldItem); + enterRule(_localctx, 180, CypherParser::RuleOC_YieldItem); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10487,18 +10590,18 @@ CypherParser::OC_YieldItemContext* CypherParser::oC_YieldItem() { }); try { enterOuterAlt(_localctx, 1); - setState(1711); + setState(1728); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 235, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 239, _ctx)) { case 1: { - setState(1706); + setState(1723); oC_Variable(); - setState(1707); + setState(1724); match(CypherParser::SP); - setState(1708); + setState(1725); match(CypherParser::AS); - setState(1709); + setState(1726); match(CypherParser::SP); break; } @@ -10506,7 +10609,7 @@ CypherParser::OC_YieldItemContext* CypherParser::oC_YieldItem() { default: break; } - setState(1713); + setState(1730); oC_Variable(); } @@ -10549,7 +10652,7 @@ size_t CypherParser::OC_YieldItemsContext::getRuleIndex() const { CypherParser::OC_YieldItemsContext* CypherParser::oC_YieldItems() { OC_YieldItemsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 180, CypherParser::RuleOC_YieldItems); + enterRule(_localctx, 182, CypherParser::RuleOC_YieldItems); size_t _la = 0; #if __cplusplus > 201703L @@ -10562,37 +10665,37 @@ CypherParser::OC_YieldItemsContext* CypherParser::oC_YieldItems() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1715); + setState(1732); oC_YieldItem(); - setState(1726); + setState(1743); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 238, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 242, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1717); + setState(1734); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1716); + setState(1733); match(CypherParser::SP); } - setState(1719); + setState(1736); match(CypherParser::T__3); - setState(1721); + setState(1738); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1720); + setState(1737); match(CypherParser::SP); } - setState(1723); + setState(1740); oC_YieldItem(); } - setState(1728); + setState(1745); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 238, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 242, _ctx); } } @@ -10647,7 +10750,7 @@ size_t CypherParser::IC_InQueryCallContext::getRuleIndex() const { CypherParser::IC_InQueryCallContext* CypherParser::iC_InQueryCall() { IC_InQueryCallContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 182, CypherParser::RuleIC_InQueryCall); + enterRule(_localctx, 184, CypherParser::RuleIC_InQueryCall); size_t _la = 0; #if __cplusplus > 201703L @@ -10659,26 +10762,26 @@ CypherParser::IC_InQueryCallContext* CypherParser::iC_InQueryCall() { }); try { enterOuterAlt(_localctx, 1); - setState(1729); + setState(1746); match(CypherParser::CALL); - setState(1730); + setState(1747); match(CypherParser::SP); - setState(1731); + setState(1748); oC_FunctionInvocation(); - setState(1736); + setState(1753); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 240, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 244, _ctx)) { case 1: { - setState(1733); + setState(1750); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1732); + setState(1749); match(CypherParser::SP); } - setState(1735); + setState(1752); oC_Where(); break; } @@ -10686,24 +10789,24 @@ CypherParser::IC_InQueryCallContext* CypherParser::iC_InQueryCall() { default: break; } - setState(1744); + setState(1761); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 242, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 246, _ctx)) { case 1: { - setState(1739); + setState(1756); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1738); + setState(1755); match(CypherParser::SP); } - setState(1741); + setState(1758); match(CypherParser::YIELD); - setState(1742); + setState(1759); match(CypherParser::SP); - setState(1743); + setState(1760); oC_YieldItems(); break; } @@ -10764,7 +10867,7 @@ size_t CypherParser::OC_MatchContext::getRuleIndex() const { CypherParser::OC_MatchContext* CypherParser::oC_Match() { OC_MatchContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 184, CypherParser::RuleOC_Match); + enterRule(_localctx, 186, CypherParser::RuleOC_Match); size_t _la = 0; #if __cplusplus > 201703L @@ -10776,36 +10879,36 @@ CypherParser::OC_MatchContext* CypherParser::oC_Match() { }); try { enterOuterAlt(_localctx, 1); - setState(1748); + setState(1765); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::OPTIONAL) { - setState(1746); + setState(1763); match(CypherParser::OPTIONAL); - setState(1747); + setState(1764); match(CypherParser::SP); } - setState(1750); + setState(1767); match(CypherParser::MATCH); - setState(1752); + setState(1769); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1751); + setState(1768); match(CypherParser::SP); } - setState(1754); + setState(1771); oC_Pattern(); - setState(1757); + setState(1774); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 245, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 249, _ctx)) { case 1: { - setState(1755); + setState(1772); match(CypherParser::SP); - setState(1756); + setState(1773); oC_Where(); break; } @@ -10813,14 +10916,14 @@ CypherParser::OC_MatchContext* CypherParser::oC_Match() { default: break; } - setState(1761); + setState(1778); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 246, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 250, _ctx)) { case 1: { - setState(1759); + setState(1776); match(CypherParser::SP); - setState(1760); + setState(1777); iC_Hint(); break; } @@ -10865,7 +10968,7 @@ size_t CypherParser::IC_HintContext::getRuleIndex() const { CypherParser::IC_HintContext* CypherParser::iC_Hint() { IC_HintContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 186, CypherParser::RuleIC_Hint); + enterRule(_localctx, 188, CypherParser::RuleIC_Hint); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -10876,11 +10979,11 @@ CypherParser::IC_HintContext* CypherParser::iC_Hint() { }); try { enterOuterAlt(_localctx, 1); - setState(1763); + setState(1780); match(CypherParser::HINT); - setState(1764); + setState(1781); match(CypherParser::SP); - setState(1765); + setState(1782); iC_JoinNode(0); } @@ -10952,8 +11055,8 @@ CypherParser::IC_JoinNodeContext* CypherParser::iC_JoinNode(int precedence) { CypherParser::IC_JoinNodeContext *_localctx = _tracker.createInstance(_ctx, parentState); CypherParser::IC_JoinNodeContext *previousContext = _localctx; (void)previousContext; // Silence compiler, in case the context is not used by generated code. - size_t startState = 188; - enterRecursionRule(_localctx, 188, CypherParser::RuleIC_JoinNode, precedence); + size_t startState = 190; + enterRecursionRule(_localctx, 190, CypherParser::RuleIC_JoinNode, precedence); size_t _la = 0; @@ -10967,31 +11070,31 @@ CypherParser::IC_JoinNodeContext* CypherParser::iC_JoinNode(int precedence) { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1779); + setState(1796); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::T__1: { - setState(1768); + setState(1785); match(CypherParser::T__1); - setState(1770); + setState(1787); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1769); + setState(1786); match(CypherParser::SP); } - setState(1772); + setState(1789); iC_JoinNode(0); - setState(1774); + setState(1791); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1773); + setState(1790); match(CypherParser::SP); } - setState(1776); + setState(1793); match(CypherParser::T__2); break; } @@ -11062,7 +11165,7 @@ CypherParser::IC_JoinNodeContext* CypherParser::iC_JoinNode(int precedence) { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(1778); + setState(1795); oC_SchemaName(); break; } @@ -11071,30 +11174,30 @@ CypherParser::IC_JoinNodeContext* CypherParser::iC_JoinNode(int precedence) { throw NoViableAltException(this); } _ctx->stop = _input->LT(-1); - setState(1797); + setState(1814); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 252, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 256, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { if (!_parseListeners.empty()) triggerExitRuleEvent(); previousContext = _localctx; - setState(1795); + setState(1812); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 251, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 255, _ctx)) { case 1: { _localctx = _tracker.createInstance(parentContext, parentState); pushNewRecursionContext(_localctx, startState, RuleIC_JoinNode); - setState(1781); + setState(1798); if (!(precpred(_ctx, 4))) throw FailedPredicateException(this, "precpred(_ctx, 4)"); - setState(1782); + setState(1799); match(CypherParser::SP); - setState(1783); + setState(1800); match(CypherParser::JOIN); - setState(1784); + setState(1801); match(CypherParser::SP); - setState(1785); + setState(1802); iC_JoinNode(5); break; } @@ -11102,22 +11205,22 @@ CypherParser::IC_JoinNodeContext* CypherParser::iC_JoinNode(int precedence) { case 2: { _localctx = _tracker.createInstance(parentContext, parentState); pushNewRecursionContext(_localctx, startState, RuleIC_JoinNode); - setState(1786); + setState(1803); if (!(precpred(_ctx, 3))) throw FailedPredicateException(this, "precpred(_ctx, 3)"); - setState(1791); + setState(1808); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(1787); + setState(1804); match(CypherParser::SP); - setState(1788); + setState(1805); match(CypherParser::MULTI_JOIN); - setState(1789); + setState(1806); match(CypherParser::SP); - setState(1790); + setState(1807); oC_SchemaName(); break; } @@ -11125,9 +11228,9 @@ CypherParser::IC_JoinNodeContext* CypherParser::iC_JoinNode(int precedence) { default: throw NoViableAltException(this); } - setState(1793); + setState(1810); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 250, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 254, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } @@ -11136,9 +11239,9 @@ CypherParser::IC_JoinNodeContext* CypherParser::iC_JoinNode(int precedence) { break; } } - setState(1799); + setState(1816); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 252, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 256, _ctx); } } catch (RecognitionException &e) { @@ -11187,7 +11290,7 @@ size_t CypherParser::OC_UnwindContext::getRuleIndex() const { CypherParser::OC_UnwindContext* CypherParser::oC_Unwind() { OC_UnwindContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 190, CypherParser::RuleOC_Unwind); + enterRule(_localctx, 192, CypherParser::RuleOC_Unwind); size_t _la = 0; #if __cplusplus > 201703L @@ -11199,25 +11302,25 @@ CypherParser::OC_UnwindContext* CypherParser::oC_Unwind() { }); try { enterOuterAlt(_localctx, 1); - setState(1800); + setState(1817); match(CypherParser::UNWIND); - setState(1802); + setState(1819); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1801); + setState(1818); match(CypherParser::SP); } - setState(1804); + setState(1821); oC_Expression(); - setState(1805); + setState(1822); match(CypherParser::SP); - setState(1806); + setState(1823); match(CypherParser::AS); - setState(1807); + setState(1824); match(CypherParser::SP); - setState(1808); + setState(1825); oC_Variable(); } @@ -11256,7 +11359,7 @@ size_t CypherParser::OC_CreateContext::getRuleIndex() const { CypherParser::OC_CreateContext* CypherParser::oC_Create() { OC_CreateContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 192, CypherParser::RuleOC_Create); + enterRule(_localctx, 194, CypherParser::RuleOC_Create); size_t _la = 0; #if __cplusplus > 201703L @@ -11268,17 +11371,17 @@ CypherParser::OC_CreateContext* CypherParser::oC_Create() { }); try { enterOuterAlt(_localctx, 1); - setState(1810); + setState(1827); match(CypherParser::CREATE); - setState(1812); + setState(1829); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1811); + setState(1828); match(CypherParser::SP); } - setState(1814); + setState(1831); oC_Pattern(); } @@ -11329,7 +11432,7 @@ size_t CypherParser::OC_MergeContext::getRuleIndex() const { CypherParser::OC_MergeContext* CypherParser::oC_Merge() { OC_MergeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 194, CypherParser::RuleOC_Merge); + enterRule(_localctx, 196, CypherParser::RuleOC_Merge); size_t _la = 0; #if __cplusplus > 201703L @@ -11342,31 +11445,31 @@ CypherParser::OC_MergeContext* CypherParser::oC_Merge() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1816); + setState(1833); match(CypherParser::MERGE); - setState(1818); + setState(1835); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1817); + setState(1834); match(CypherParser::SP); } - setState(1820); + setState(1837); oC_Pattern(); - setState(1825); + setState(1842); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 256, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 260, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1821); + setState(1838); match(CypherParser::SP); - setState(1822); + setState(1839); oC_MergeAction(); } - setState(1827); + setState(1844); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 256, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 260, _ctx); } } @@ -11417,7 +11520,7 @@ size_t CypherParser::OC_MergeActionContext::getRuleIndex() const { CypherParser::OC_MergeActionContext* CypherParser::oC_MergeAction() { OC_MergeActionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 196, CypherParser::RuleOC_MergeAction); + enterRule(_localctx, 198, CypherParser::RuleOC_MergeAction); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -11427,35 +11530,35 @@ CypherParser::OC_MergeActionContext* CypherParser::oC_MergeAction() { exitRule(); }); try { - setState(1838); + setState(1855); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 257, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 261, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1828); + setState(1845); match(CypherParser::ON); - setState(1829); + setState(1846); match(CypherParser::SP); - setState(1830); + setState(1847); match(CypherParser::MATCH); - setState(1831); + setState(1848); match(CypherParser::SP); - setState(1832); + setState(1849); oC_Set(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1833); + setState(1850); match(CypherParser::ON); - setState(1834); + setState(1851); match(CypherParser::SP); - setState(1835); + setState(1852); match(CypherParser::CREATE); - setState(1836); + setState(1853); match(CypherParser::SP); - setState(1837); + setState(1854); oC_Set(); break; } @@ -11516,7 +11619,7 @@ size_t CypherParser::OC_SetContext::getRuleIndex() const { CypherParser::OC_SetContext* CypherParser::oC_Set() { OC_SetContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 198, CypherParser::RuleOC_Set); + enterRule(_localctx, 200, CypherParser::RuleOC_Set); size_t _la = 0; #if __cplusplus > 201703L @@ -11528,89 +11631,89 @@ CypherParser::OC_SetContext* CypherParser::oC_Set() { }); try { size_t alt; - setState(1872); + setState(1889); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 265, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 269, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1840); + setState(1857); match(CypherParser::SET); - setState(1842); + setState(1859); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1841); + setState(1858); match(CypherParser::SP); } - setState(1844); + setState(1861); oC_SetItem(); - setState(1855); + setState(1872); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 261, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 265, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1846); + setState(1863); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1845); + setState(1862); match(CypherParser::SP); } - setState(1848); + setState(1865); match(CypherParser::T__3); - setState(1850); + setState(1867); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1849); + setState(1866); match(CypherParser::SP); } - setState(1852); + setState(1869); oC_SetItem(); } - setState(1857); + setState(1874); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 261, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 265, _ctx); } break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1858); + setState(1875); match(CypherParser::SET); - setState(1860); + setState(1877); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1859); + setState(1876); match(CypherParser::SP); } - setState(1862); + setState(1879); oC_Atom(); - setState(1864); + setState(1881); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1863); + setState(1880); match(CypherParser::SP); } - setState(1866); + setState(1883); match(CypherParser::T__5); - setState(1868); + setState(1885); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1867); + setState(1884); match(CypherParser::SP); } - setState(1870); + setState(1887); iC_Properties(); break; } @@ -11659,7 +11762,7 @@ size_t CypherParser::OC_SetItemContext::getRuleIndex() const { CypherParser::OC_SetItemContext* CypherParser::oC_SetItem() { OC_SetItemContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 200, CypherParser::RuleOC_SetItem); + enterRule(_localctx, 202, CypherParser::RuleOC_SetItem); size_t _la = 0; #if __cplusplus > 201703L @@ -11671,27 +11774,27 @@ CypherParser::OC_SetItemContext* CypherParser::oC_SetItem() { }); try { enterOuterAlt(_localctx, 1); - setState(1874); + setState(1891); oC_PropertyExpression(); - setState(1876); + setState(1893); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1875); + setState(1892); match(CypherParser::SP); } - setState(1878); + setState(1895); match(CypherParser::T__5); - setState(1880); + setState(1897); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1879); + setState(1896); match(CypherParser::SP); } - setState(1882); + setState(1899); oC_Expression(); } @@ -11742,7 +11845,7 @@ size_t CypherParser::OC_DeleteContext::getRuleIndex() const { CypherParser::OC_DeleteContext* CypherParser::oC_Delete() { OC_DeleteContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 202, CypherParser::RuleOC_Delete); + enterRule(_localctx, 204, CypherParser::RuleOC_Delete); size_t _la = 0; #if __cplusplus > 201703L @@ -11755,57 +11858,57 @@ CypherParser::OC_DeleteContext* CypherParser::oC_Delete() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(1886); + setState(1903); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DETACH) { - setState(1884); + setState(1901); match(CypherParser::DETACH); - setState(1885); + setState(1902); match(CypherParser::SP); } - setState(1888); + setState(1905); match(CypherParser::DELETE); - setState(1890); + setState(1907); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1889); + setState(1906); match(CypherParser::SP); } - setState(1892); + setState(1909); oC_Expression(); - setState(1903); + setState(1920); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 272, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 276, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1894); + setState(1911); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1893); + setState(1910); match(CypherParser::SP); } - setState(1896); + setState(1913); match(CypherParser::T__3); - setState(1898); + setState(1915); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1897); + setState(1914); match(CypherParser::SP); } - setState(1900); + setState(1917); oC_Expression(); } - setState(1905); + setState(1922); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 272, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 276, _ctx); } } @@ -11848,7 +11951,7 @@ size_t CypherParser::OC_WithContext::getRuleIndex() const { CypherParser::OC_WithContext* CypherParser::oC_With() { OC_WithContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 204, CypherParser::RuleOC_With); + enterRule(_localctx, 206, CypherParser::RuleOC_With); size_t _la = 0; #if __cplusplus > 201703L @@ -11860,24 +11963,24 @@ CypherParser::OC_WithContext* CypherParser::oC_With() { }); try { enterOuterAlt(_localctx, 1); - setState(1906); + setState(1923); match(CypherParser::WITH); - setState(1907); + setState(1924); oC_ProjectionBody(); - setState(1912); + setState(1929); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 274, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 278, _ctx)) { case 1: { - setState(1909); + setState(1926); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1908); + setState(1925); match(CypherParser::SP); } - setState(1911); + setState(1928); oC_Where(); break; } @@ -11918,7 +12021,7 @@ size_t CypherParser::OC_ReturnContext::getRuleIndex() const { CypherParser::OC_ReturnContext* CypherParser::oC_Return() { OC_ReturnContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 206, CypherParser::RuleOC_Return); + enterRule(_localctx, 208, CypherParser::RuleOC_Return); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -11929,9 +12032,9 @@ CypherParser::OC_ReturnContext* CypherParser::oC_Return() { }); try { enterOuterAlt(_localctx, 1); - setState(1914); + setState(1931); match(CypherParser::RETURN); - setState(1915); + setState(1932); oC_ProjectionBody(); } @@ -11986,7 +12089,7 @@ size_t CypherParser::OC_ProjectionBodyContext::getRuleIndex() const { CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { OC_ProjectionBodyContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 208, CypherParser::RuleOC_ProjectionBody); + enterRule(_localctx, 210, CypherParser::RuleOC_ProjectionBody); size_t _la = 0; #if __cplusplus > 201703L @@ -11998,20 +12101,20 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { }); try { enterOuterAlt(_localctx, 1); - setState(1921); + setState(1938); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 276, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 280, _ctx)) { case 1: { - setState(1918); + setState(1935); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1917); + setState(1934); match(CypherParser::SP); } - setState(1920); + setState(1937); match(CypherParser::DISTINCT); break; } @@ -12019,18 +12122,18 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1923); + setState(1940); match(CypherParser::SP); - setState(1924); + setState(1941); oC_ProjectionItems(); - setState(1927); + setState(1944); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 277, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 281, _ctx)) { case 1: { - setState(1925); + setState(1942); match(CypherParser::SP); - setState(1926); + setState(1943); oC_Order(); break; } @@ -12038,14 +12141,14 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1931); + setState(1948); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 278, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 282, _ctx)) { case 1: { - setState(1929); + setState(1946); match(CypherParser::SP); - setState(1930); + setState(1947); oC_Skip(); break; } @@ -12053,14 +12156,14 @@ CypherParser::OC_ProjectionBodyContext* CypherParser::oC_ProjectionBody() { default: break; } - setState(1935); + setState(1952); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 279, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 283, _ctx)) { case 1: { - setState(1933); + setState(1950); match(CypherParser::SP); - setState(1934); + setState(1951); oC_Limit(); break; } @@ -12113,7 +12216,7 @@ size_t CypherParser::OC_ProjectionItemsContext::getRuleIndex() const { CypherParser::OC_ProjectionItemsContext* CypherParser::oC_ProjectionItems() { OC_ProjectionItemsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 210, CypherParser::RuleOC_ProjectionItems); + enterRule(_localctx, 212, CypherParser::RuleOC_ProjectionItems); size_t _la = 0; #if __cplusplus > 201703L @@ -12125,42 +12228,42 @@ CypherParser::OC_ProjectionItemsContext* CypherParser::oC_ProjectionItems() { }); try { size_t alt; - setState(1965); + setState(1982); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::STAR: { enterOuterAlt(_localctx, 1); - setState(1937); + setState(1954); match(CypherParser::STAR); - setState(1948); + setState(1965); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 282, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 286, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1939); + setState(1956); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1938); + setState(1955); match(CypherParser::SP); } - setState(1941); + setState(1958); match(CypherParser::T__3); - setState(1943); + setState(1960); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1942); + setState(1959); match(CypherParser::SP); } - setState(1945); + setState(1962); oC_ProjectionItem(); } - setState(1950); + setState(1967); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 282, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 286, _ctx); } break; } @@ -12252,37 +12355,37 @@ CypherParser::OC_ProjectionItemsContext* CypherParser::oC_ProjectionItems() { case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 2); - setState(1951); + setState(1968); oC_ProjectionItem(); - setState(1962); + setState(1979); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 285, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 289, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(1953); + setState(1970); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1952); + setState(1969); match(CypherParser::SP); } - setState(1955); + setState(1972); match(CypherParser::T__3); - setState(1957); + setState(1974); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1956); + setState(1973); match(CypherParser::SP); } - setState(1959); + setState(1976); oC_ProjectionItem(); } - setState(1964); + setState(1981); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 285, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 289, _ctx); } break; } @@ -12335,7 +12438,7 @@ size_t CypherParser::OC_ProjectionItemContext::getRuleIndex() const { CypherParser::OC_ProjectionItemContext* CypherParser::oC_ProjectionItem() { OC_ProjectionItemContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 212, CypherParser::RuleOC_ProjectionItem); + enterRule(_localctx, 214, CypherParser::RuleOC_ProjectionItem); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -12345,27 +12448,27 @@ CypherParser::OC_ProjectionItemContext* CypherParser::oC_ProjectionItem() { exitRule(); }); try { - setState(1974); + setState(1991); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 287, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 291, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(1967); + setState(1984); oC_Expression(); - setState(1968); + setState(1985); match(CypherParser::SP); - setState(1969); + setState(1986); match(CypherParser::AS); - setState(1970); + setState(1987); match(CypherParser::SP); - setState(1971); + setState(1988); oC_Variable(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(1973); + setState(1990); oC_Expression(); break; } @@ -12422,7 +12525,7 @@ size_t CypherParser::OC_OrderContext::getRuleIndex() const { CypherParser::OC_OrderContext* CypherParser::oC_Order() { OC_OrderContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 214, CypherParser::RuleOC_Order); + enterRule(_localctx, 216, CypherParser::RuleOC_Order); size_t _la = 0; #if __cplusplus > 201703L @@ -12434,33 +12537,33 @@ CypherParser::OC_OrderContext* CypherParser::oC_Order() { }); try { enterOuterAlt(_localctx, 1); - setState(1976); + setState(1993); match(CypherParser::ORDER); - setState(1977); + setState(1994); match(CypherParser::SP); - setState(1978); + setState(1995); match(CypherParser::BY); - setState(1979); + setState(1996); match(CypherParser::SP); - setState(1980); + setState(1997); oC_SortItem(); - setState(1988); + setState(2005); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(1981); + setState(1998); match(CypherParser::T__3); - setState(1983); + setState(2000); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(1982); + setState(1999); match(CypherParser::SP); } - setState(1985); + setState(2002); oC_SortItem(); - setState(1990); + setState(2007); _errHandler->sync(this); _la = _input->LA(1); } @@ -12501,7 +12604,7 @@ size_t CypherParser::OC_SkipContext::getRuleIndex() const { CypherParser::OC_SkipContext* CypherParser::oC_Skip() { OC_SkipContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 216, CypherParser::RuleOC_Skip); + enterRule(_localctx, 218, CypherParser::RuleOC_Skip); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -12512,11 +12615,11 @@ CypherParser::OC_SkipContext* CypherParser::oC_Skip() { }); try { enterOuterAlt(_localctx, 1); - setState(1991); + setState(2008); match(CypherParser::L_SKIP); - setState(1992); + setState(2009); match(CypherParser::SP); - setState(1993); + setState(2010); oC_Expression(); } @@ -12555,7 +12658,7 @@ size_t CypherParser::OC_LimitContext::getRuleIndex() const { CypherParser::OC_LimitContext* CypherParser::oC_Limit() { OC_LimitContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 218, CypherParser::RuleOC_Limit); + enterRule(_localctx, 220, CypherParser::RuleOC_Limit); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -12566,11 +12669,11 @@ CypherParser::OC_LimitContext* CypherParser::oC_Limit() { }); try { enterOuterAlt(_localctx, 1); - setState(1995); + setState(2012); match(CypherParser::LIMIT); - setState(1996); + setState(2013); match(CypherParser::SP); - setState(1997); + setState(2014); oC_Expression(); } @@ -12621,7 +12724,7 @@ size_t CypherParser::OC_SortItemContext::getRuleIndex() const { CypherParser::OC_SortItemContext* CypherParser::oC_SortItem() { OC_SortItemContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 220, CypherParser::RuleOC_SortItem); + enterRule(_localctx, 222, CypherParser::RuleOC_SortItem); size_t _la = 0; #if __cplusplus > 201703L @@ -12633,22 +12736,22 @@ CypherParser::OC_SortItemContext* CypherParser::oC_SortItem() { }); try { enterOuterAlt(_localctx, 1); - setState(1999); + setState(2016); oC_Expression(); - setState(2004); + setState(2021); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 291, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 295, _ctx)) { case 1: { - setState(2001); + setState(2018); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2000); + setState(2017); match(CypherParser::SP); } - setState(2003); + setState(2020); _la = _input->LA(1); if (!(((((_la - 53) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 53)) & 12582915) != 0))) { @@ -12701,7 +12804,7 @@ size_t CypherParser::OC_WhereContext::getRuleIndex() const { CypherParser::OC_WhereContext* CypherParser::oC_Where() { OC_WhereContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 222, CypherParser::RuleOC_Where); + enterRule(_localctx, 224, CypherParser::RuleOC_Where); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -12712,11 +12815,11 @@ CypherParser::OC_WhereContext* CypherParser::oC_Where() { }); try { enterOuterAlt(_localctx, 1); - setState(2006); + setState(2023); match(CypherParser::WHERE); - setState(2007); + setState(2024); match(CypherParser::SP); - setState(2008); + setState(2025); oC_Expression(); } @@ -12759,7 +12862,7 @@ size_t CypherParser::OC_PatternContext::getRuleIndex() const { CypherParser::OC_PatternContext* CypherParser::oC_Pattern() { OC_PatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 224, CypherParser::RuleOC_Pattern); + enterRule(_localctx, 226, CypherParser::RuleOC_Pattern); size_t _la = 0; #if __cplusplus > 201703L @@ -12772,37 +12875,37 @@ CypherParser::OC_PatternContext* CypherParser::oC_Pattern() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2010); + setState(2027); oC_PatternPart(); - setState(2021); + setState(2038); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 294, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 298, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2012); + setState(2029); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2011); + setState(2028); match(CypherParser::SP); } - setState(2014); + setState(2031); match(CypherParser::T__3); - setState(2016); + setState(2033); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2015); + setState(2032); match(CypherParser::SP); } - setState(2018); + setState(2035); oC_PatternPart(); } - setState(2023); + setState(2040); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 294, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 298, _ctx); } } @@ -12845,7 +12948,7 @@ size_t CypherParser::OC_PatternPartContext::getRuleIndex() const { CypherParser::OC_PatternPartContext* CypherParser::oC_PatternPart() { OC_PatternPartContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 226, CypherParser::RuleOC_PatternPart); + enterRule(_localctx, 228, CypherParser::RuleOC_PatternPart); size_t _la = 0; #if __cplusplus > 201703L @@ -12856,7 +12959,7 @@ CypherParser::OC_PatternPartContext* CypherParser::oC_PatternPart() { exitRule(); }); try { - setState(2035); + setState(2052); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::ADD: @@ -12926,34 +13029,34 @@ CypherParser::OC_PatternPartContext* CypherParser::oC_PatternPart() { case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 1); - setState(2024); + setState(2041); oC_Variable(); - setState(2026); + setState(2043); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2025); + setState(2042); match(CypherParser::SP); } - setState(2028); + setState(2045); match(CypherParser::T__5); - setState(2030); + setState(2047); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2029); + setState(2046); match(CypherParser::SP); } - setState(2032); + setState(2049); oC_AnonymousPatternPart(); break; } case CypherParser::T__1: { enterOuterAlt(_localctx, 2); - setState(2034); + setState(2051); oC_AnonymousPatternPart(); break; } @@ -12990,7 +13093,7 @@ size_t CypherParser::OC_AnonymousPatternPartContext::getRuleIndex() const { CypherParser::OC_AnonymousPatternPartContext* CypherParser::oC_AnonymousPatternPart() { OC_AnonymousPatternPartContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 228, CypherParser::RuleOC_AnonymousPatternPart); + enterRule(_localctx, 230, CypherParser::RuleOC_AnonymousPatternPart); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -13001,7 +13104,7 @@ CypherParser::OC_AnonymousPatternPartContext* CypherParser::oC_AnonymousPatternP }); try { enterOuterAlt(_localctx, 1); - setState(2037); + setState(2054); oC_PatternElement(); } @@ -13052,7 +13155,7 @@ size_t CypherParser::OC_PatternElementContext::getRuleIndex() const { CypherParser::OC_PatternElementContext* CypherParser::oC_PatternElement() { OC_PatternElementContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 230, CypherParser::RuleOC_PatternElement); + enterRule(_localctx, 232, CypherParser::RuleOC_PatternElement); size_t _la = 0; #if __cplusplus > 201703L @@ -13064,43 +13167,43 @@ CypherParser::OC_PatternElementContext* CypherParser::oC_PatternElement() { }); try { size_t alt; - setState(2053); + setState(2070); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 300, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 304, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2039); + setState(2056); oC_NodePattern(); - setState(2046); + setState(2063); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 299, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 303, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2041); + setState(2058); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2040); + setState(2057); match(CypherParser::SP); } - setState(2043); + setState(2060); oC_PatternElementChain(); } - setState(2048); + setState(2065); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 299, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 303, _ctx); } break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2049); + setState(2066); match(CypherParser::T__1); - setState(2050); + setState(2067); oC_PatternElement(); - setState(2051); + setState(2068); match(CypherParser::T__2); break; } @@ -13153,7 +13256,7 @@ size_t CypherParser::OC_NodePatternContext::getRuleIndex() const { CypherParser::OC_NodePatternContext* CypherParser::oC_NodePattern() { OC_NodePatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 232, CypherParser::RuleOC_NodePattern); + enterRule(_localctx, 234, CypherParser::RuleOC_NodePattern); size_t _la = 0; #if __cplusplus > 201703L @@ -13165,17 +13268,17 @@ CypherParser::OC_NodePatternContext* CypherParser::oC_NodePattern() { }); try { enterOuterAlt(_localctx, 1); - setState(2055); + setState(2072); match(CypherParser::T__1); - setState(2057); + setState(2074); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2056); + setState(2073); match(CypherParser::SP); } - setState(2063); + setState(2080); _errHandler->sync(this); _la = _input->LA(1); @@ -13183,50 +13286,50 @@ CypherParser::OC_NodePatternContext* CypherParser::oC_NodePattern() { ((1ULL << _la) & -6370763885380632576) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9219449713480129315) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 324400320977652447) != 0)) { - setState(2059); + setState(2076); oC_Variable(); - setState(2061); + setState(2078); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2060); + setState(2077); match(CypherParser::SP); } } - setState(2069); + setState(2086); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COLON) { - setState(2065); + setState(2082); oC_NodeLabels(); - setState(2067); + setState(2084); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2066); + setState(2083); match(CypherParser::SP); } } - setState(2075); + setState(2092); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__8) { - setState(2071); + setState(2088); iC_Properties(); - setState(2073); + setState(2090); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2072); + setState(2089); match(CypherParser::SP); } } - setState(2077); + setState(2094); match(CypherParser::T__2); } @@ -13265,7 +13368,7 @@ size_t CypherParser::OC_PatternElementChainContext::getRuleIndex() const { CypherParser::OC_PatternElementChainContext* CypherParser::oC_PatternElementChain() { OC_PatternElementChainContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 234, CypherParser::RuleOC_PatternElementChain); + enterRule(_localctx, 236, CypherParser::RuleOC_PatternElementChain); size_t _la = 0; #if __cplusplus > 201703L @@ -13277,17 +13380,17 @@ CypherParser::OC_PatternElementChainContext* CypherParser::oC_PatternElementChai }); try { enterOuterAlt(_localctx, 1); - setState(2079); + setState(2096); oC_RelationshipPattern(); - setState(2081); + setState(2098); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2080); + setState(2097); match(CypherParser::SP); } - setState(2083); + setState(2100); oC_NodePattern(); } @@ -13342,7 +13445,7 @@ size_t CypherParser::OC_RelationshipPatternContext::getRuleIndex() const { CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPattern() { OC_RelationshipPatternContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 236, CypherParser::RuleOC_RelationshipPattern); + enterRule(_localctx, 238, CypherParser::RuleOC_RelationshipPattern); size_t _la = 0; #if __cplusplus > 201703L @@ -13353,29 +13456,29 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter exitRule(); }); try { - setState(2129); + setState(2146); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 320, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 324, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2085); + setState(2102); oC_LeftArrowHead(); - setState(2087); + setState(2104); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2086); + setState(2103); match(CypherParser::SP); } - setState(2089); + setState(2106); oC_Dash(); - setState(2091); + setState(2108); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 310, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 314, _ctx)) { case 1: { - setState(2090); + setState(2107); match(CypherParser::SP); break; } @@ -13383,37 +13486,37 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(2094); + setState(2111); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__6) { - setState(2093); + setState(2110); oC_RelationshipDetail(); } - setState(2097); + setState(2114); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2096); + setState(2113); match(CypherParser::SP); } - setState(2099); + setState(2116); oC_Dash(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2101); + setState(2118); oC_Dash(); - setState(2103); + setState(2120); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 313, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 317, _ctx)) { case 1: { - setState(2102); + setState(2119); match(CypherParser::SP); break; } @@ -13421,47 +13524,47 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(2106); + setState(2123); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__6) { - setState(2105); + setState(2122); oC_RelationshipDetail(); } - setState(2109); + setState(2126); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2108); + setState(2125); match(CypherParser::SP); } - setState(2111); + setState(2128); oC_Dash(); - setState(2113); + setState(2130); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2112); + setState(2129); match(CypherParser::SP); } - setState(2115); + setState(2132); oC_RightArrowHead(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(2117); + setState(2134); oC_Dash(); - setState(2119); + setState(2136); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 317, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 321, _ctx)) { case 1: { - setState(2118); + setState(2135); match(CypherParser::SP); break; } @@ -13469,23 +13572,23 @@ CypherParser::OC_RelationshipPatternContext* CypherParser::oC_RelationshipPatter default: break; } - setState(2122); + setState(2139); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__6) { - setState(2121); + setState(2138); oC_RelationshipDetail(); } - setState(2125); + setState(2142); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2124); + setState(2141); match(CypherParser::SP); } - setState(2127); + setState(2144); oC_Dash(); break; } @@ -13542,7 +13645,7 @@ size_t CypherParser::OC_RelationshipDetailContext::getRuleIndex() const { CypherParser::OC_RelationshipDetailContext* CypherParser::oC_RelationshipDetail() { OC_RelationshipDetailContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 238, CypherParser::RuleOC_RelationshipDetail); + enterRule(_localctx, 240, CypherParser::RuleOC_RelationshipDetail); size_t _la = 0; #if __cplusplus > 201703L @@ -13554,17 +13657,17 @@ CypherParser::OC_RelationshipDetailContext* CypherParser::oC_RelationshipDetail( }); try { enterOuterAlt(_localctx, 1); - setState(2131); + setState(2148); match(CypherParser::T__6); - setState(2133); + setState(2150); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2132); + setState(2149); match(CypherParser::SP); } - setState(2139); + setState(2156); _errHandler->sync(this); _la = _input->LA(1); @@ -13572,66 +13675,66 @@ CypherParser::OC_RelationshipDetailContext* CypherParser::oC_RelationshipDetail( ((1ULL << _la) & -6370763885380632576) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9219449713480129315) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 324400320977652447) != 0)) { - setState(2135); + setState(2152); oC_Variable(); - setState(2137); + setState(2154); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2136); + setState(2153); match(CypherParser::SP); } } - setState(2145); + setState(2162); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COLON) { - setState(2141); + setState(2158); oC_RelationshipTypes(); - setState(2143); + setState(2160); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2142); + setState(2159); match(CypherParser::SP); } } - setState(2151); + setState(2168); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::STAR) { - setState(2147); + setState(2164); iC_RecursiveDetail(); - setState(2149); + setState(2166); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2148); + setState(2165); match(CypherParser::SP); } } - setState(2157); + setState(2174); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__8) { - setState(2153); + setState(2170); iC_Properties(); - setState(2155); + setState(2172); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2154); + setState(2171); match(CypherParser::SP); } } - setState(2159); + setState(2176); match(CypherParser::T__7); } @@ -13690,7 +13793,7 @@ size_t CypherParser::IC_PropertiesContext::getRuleIndex() const { CypherParser::IC_PropertiesContext* CypherParser::iC_Properties() { IC_PropertiesContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 240, CypherParser::RuleIC_Properties); + enterRule(_localctx, 242, CypherParser::RuleIC_Properties); size_t _la = 0; #if __cplusplus > 201703L @@ -13702,17 +13805,17 @@ CypherParser::IC_PropertiesContext* CypherParser::iC_Properties() { }); try { enterOuterAlt(_localctx, 1); - setState(2161); + setState(2178); match(CypherParser::T__8); - setState(2163); + setState(2180); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2162); + setState(2179); match(CypherParser::SP); } - setState(2198); + setState(2215); _errHandler->sync(this); _la = _input->LA(1); @@ -13720,86 +13823,86 @@ CypherParser::IC_PropertiesContext* CypherParser::iC_Properties() { ((1ULL << _la) & -6370763885380632576) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9219449713480129315) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 324400320977652447) != 0)) { - setState(2165); + setState(2182); oC_PropertyKeyName(); - setState(2167); + setState(2184); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2166); + setState(2183); match(CypherParser::SP); } - setState(2169); + setState(2186); match(CypherParser::COLON); - setState(2171); + setState(2188); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2170); + setState(2187); match(CypherParser::SP); } - setState(2173); + setState(2190); oC_Expression(); - setState(2175); + setState(2192); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2174); + setState(2191); match(CypherParser::SP); } - setState(2195); + setState(2212); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(2177); + setState(2194); match(CypherParser::T__3); - setState(2179); + setState(2196); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2178); + setState(2195); match(CypherParser::SP); } - setState(2181); + setState(2198); oC_PropertyKeyName(); - setState(2183); + setState(2200); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2182); + setState(2199); match(CypherParser::SP); } - setState(2185); + setState(2202); match(CypherParser::COLON); - setState(2187); + setState(2204); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2186); + setState(2203); match(CypherParser::SP); } - setState(2189); + setState(2206); oC_Expression(); - setState(2191); + setState(2208); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2190); + setState(2207); match(CypherParser::SP); } - setState(2197); + setState(2214); _errHandler->sync(this); _la = _input->LA(1); } } - setState(2200); + setState(2217); match(CypherParser::T__9); } @@ -13850,7 +13953,7 @@ size_t CypherParser::OC_RelationshipTypesContext::getRuleIndex() const { CypherParser::OC_RelationshipTypesContext* CypherParser::oC_RelationshipTypes() { OC_RelationshipTypesContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 242, CypherParser::RuleOC_RelationshipTypes); + enterRule(_localctx, 244, CypherParser::RuleOC_RelationshipTypes); size_t _la = 0; #if __cplusplus > 201703L @@ -13863,55 +13966,55 @@ CypherParser::OC_RelationshipTypesContext* CypherParser::oC_RelationshipTypes() try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2202); + setState(2219); match(CypherParser::COLON); - setState(2204); + setState(2221); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2203); + setState(2220); match(CypherParser::SP); } - setState(2206); + setState(2223); oC_RelTypeName(); - setState(2220); + setState(2237); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 344, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 348, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2208); + setState(2225); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2207); + setState(2224); match(CypherParser::SP); } - setState(2210); + setState(2227); match(CypherParser::T__10); - setState(2212); + setState(2229); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COLON) { - setState(2211); + setState(2228); match(CypherParser::COLON); } - setState(2215); + setState(2232); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2214); + setState(2231); match(CypherParser::SP); } - setState(2217); + setState(2234); oC_RelTypeName(); } - setState(2222); + setState(2239); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 344, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 348, _ctx); } } @@ -13962,7 +14065,7 @@ size_t CypherParser::OC_NodeLabelsContext::getRuleIndex() const { CypherParser::OC_NodeLabelsContext* CypherParser::oC_NodeLabels() { OC_NodeLabelsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 244, CypherParser::RuleOC_NodeLabels); + enterRule(_localctx, 246, CypherParser::RuleOC_NodeLabels); size_t _la = 0; #if __cplusplus > 201703L @@ -13975,50 +14078,50 @@ CypherParser::OC_NodeLabelsContext* CypherParser::oC_NodeLabels() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2223); + setState(2240); match(CypherParser::COLON); - setState(2225); + setState(2242); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2224); + setState(2241); match(CypherParser::SP); } - setState(2227); - oC_LabelName(); setState(2244); + oC_LabelName(); + setState(2261); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 350, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 354, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2229); + setState(2246); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2228); + setState(2245); match(CypherParser::SP); } - setState(2236); + setState(2253); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::T__10: { - setState(2231); + setState(2248); match(CypherParser::T__10); - setState(2233); + setState(2250); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::COLON) { - setState(2232); + setState(2249); match(CypherParser::COLON); } break; } case CypherParser::COLON: { - setState(2235); + setState(2252); match(CypherParser::COLON); break; } @@ -14026,20 +14129,20 @@ CypherParser::OC_NodeLabelsContext* CypherParser::oC_NodeLabels() { default: throw NoViableAltException(this); } - setState(2239); + setState(2256); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2238); + setState(2255); match(CypherParser::SP); } - setState(2241); + setState(2258); oC_LabelName(); } - setState(2246); + setState(2263); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 350, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 354, _ctx); } } @@ -14090,7 +14193,7 @@ size_t CypherParser::IC_RecursiveDetailContext::getRuleIndex() const { CypherParser::IC_RecursiveDetailContext* CypherParser::iC_RecursiveDetail() { IC_RecursiveDetailContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 246, CypherParser::RuleIC_RecursiveDetail); + enterRule(_localctx, 248, CypherParser::RuleIC_RecursiveDetail); size_t _la = 0; #if __cplusplus > 201703L @@ -14102,22 +14205,22 @@ CypherParser::IC_RecursiveDetailContext* CypherParser::iC_RecursiveDetail() { }); try { enterOuterAlt(_localctx, 1); - setState(2247); + setState(2264); match(CypherParser::STAR); - setState(2252); + setState(2269); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 352, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 356, _ctx)) { case 1: { - setState(2249); + setState(2266); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2248); + setState(2265); match(CypherParser::SP); } - setState(2251); + setState(2268); iC_RecursiveType(); break; } @@ -14125,17 +14228,17 @@ CypherParser::IC_RecursiveDetailContext* CypherParser::iC_RecursiveDetail() { default: break; } - setState(2258); + setState(2275); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 354, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 358, _ctx)) { case 1: { - setState(2255); + setState(2272); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 353, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 357, _ctx)) { case 1: { - setState(2254); + setState(2271); match(CypherParser::SP); break; } @@ -14143,7 +14246,7 @@ CypherParser::IC_RecursiveDetailContext* CypherParser::iC_RecursiveDetail() { default: break; } - setState(2257); + setState(2274); oC_RangeLiteral(); break; } @@ -14151,20 +14254,20 @@ CypherParser::IC_RecursiveDetailContext* CypherParser::iC_RecursiveDetail() { default: break; } - setState(2264); + setState(2281); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 356, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 360, _ctx)) { case 1: { - setState(2261); + setState(2278); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2260); + setState(2277); match(CypherParser::SP); } - setState(2263); + setState(2280); iC_RecursiveComprehension(); break; } @@ -14229,7 +14332,7 @@ size_t CypherParser::IC_RecursiveTypeContext::getRuleIndex() const { CypherParser::IC_RecursiveTypeContext* CypherParser::iC_RecursiveType() { IC_RecursiveTypeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 248, CypherParser::RuleIC_RecursiveType); + enterRule(_localctx, 250, CypherParser::RuleIC_RecursiveType); size_t _la = 0; #if __cplusplus > 201703L @@ -14240,84 +14343,84 @@ CypherParser::IC_RecursiveTypeContext* CypherParser::iC_RecursiveType() { exitRule(); }); try { - setState(2290); + setState(2307); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 361, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 365, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2268); + setState(2285); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::ALL) { - setState(2266); + setState(2283); match(CypherParser::ALL); - setState(2267); + setState(2284); match(CypherParser::SP); } - setState(2270); + setState(2287); match(CypherParser::WSHORTEST); - setState(2272); + setState(2289); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2271); + setState(2288); match(CypherParser::SP); } - setState(2274); + setState(2291); match(CypherParser::T__1); - setState(2276); + setState(2293); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2275); + setState(2292); match(CypherParser::SP); } - setState(2278); + setState(2295); oC_PropertyKeyName(); - setState(2280); + setState(2297); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2279); + setState(2296); match(CypherParser::SP); } - setState(2282); + setState(2299); match(CypherParser::T__2); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2284); + setState(2301); match(CypherParser::SHORTEST); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(2285); + setState(2302); match(CypherParser::ALL); - setState(2286); + setState(2303); match(CypherParser::SP); - setState(2287); + setState(2304); match(CypherParser::SHORTEST); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(2288); + setState(2305); match(CypherParser::TRAIL); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(2289); + setState(2306); match(CypherParser::ACYCLIC); break; } @@ -14374,7 +14477,7 @@ size_t CypherParser::OC_RangeLiteralContext::getRuleIndex() const { CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { OC_RangeLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 250, CypherParser::RuleOC_RangeLiteral); + enterRule(_localctx, 252, CypherParser::RuleOC_RangeLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -14385,35 +14488,35 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { exitRule(); }); try { - setState(2306); + setState(2323); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 366, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 370, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2293); + setState(2310); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(2292); + setState(2309); oC_LowerBound(); } - setState(2296); + setState(2313); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2295); + setState(2312); match(CypherParser::SP); } - setState(2298); + setState(2315); match(CypherParser::DOTDOT); - setState(2300); + setState(2317); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 364, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 368, _ctx)) { case 1: { - setState(2299); + setState(2316); match(CypherParser::SP); break; } @@ -14421,12 +14524,12 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { default: break; } - setState(2303); + setState(2320); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DecimalInteger) { - setState(2302); + setState(2319); oC_UpperBound(); } break; @@ -14434,7 +14537,7 @@ CypherParser::OC_RangeLiteralContext* CypherParser::oC_RangeLiteral() { case 2: { enterOuterAlt(_localctx, 2); - setState(2305); + setState(2322); oC_IntegerLiteral(); break; } @@ -14495,7 +14598,7 @@ size_t CypherParser::IC_RecursiveComprehensionContext::getRuleIndex() const { CypherParser::IC_RecursiveComprehensionContext* CypherParser::iC_RecursiveComprehension() { IC_RecursiveComprehensionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 252, CypherParser::RuleIC_RecursiveComprehension); + enterRule(_localctx, 254, CypherParser::RuleIC_RecursiveComprehension); size_t _la = 0; #if __cplusplus > 201703L @@ -14507,69 +14610,69 @@ CypherParser::IC_RecursiveComprehensionContext* CypherParser::iC_RecursiveCompre }); try { enterOuterAlt(_localctx, 1); - setState(2308); + setState(2325); match(CypherParser::T__1); - setState(2310); + setState(2327); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2309); + setState(2326); match(CypherParser::SP); } - setState(2312); + setState(2329); oC_Variable(); - setState(2314); + setState(2331); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2313); + setState(2330); match(CypherParser::SP); } - setState(2316); + setState(2333); match(CypherParser::T__3); - setState(2318); + setState(2335); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2317); + setState(2334); match(CypherParser::SP); } - setState(2320); + setState(2337); oC_Variable(); - setState(2332); + setState(2349); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 373, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 377, _ctx)) { case 1: { - setState(2322); + setState(2339); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2321); + setState(2338); match(CypherParser::SP); } - setState(2324); + setState(2341); match(CypherParser::T__10); - setState(2326); + setState(2343); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2325); + setState(2342); match(CypherParser::SP); } - setState(2328); + setState(2345); oC_Where(); - setState(2330); + setState(2347); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 372, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 376, _ctx)) { case 1: { - setState(2329); + setState(2346); match(CypherParser::SP); break; } @@ -14583,61 +14686,61 @@ CypherParser::IC_RecursiveComprehensionContext* CypherParser::iC_RecursiveCompre default: break; } - setState(2353); + setState(2370); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__10 || _la == CypherParser::SP) { - setState(2335); + setState(2352); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2334); + setState(2351); match(CypherParser::SP); } - setState(2337); + setState(2354); match(CypherParser::T__10); - setState(2339); + setState(2356); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2338); + setState(2355); match(CypherParser::SP); } - setState(2341); + setState(2358); iC_RecursiveProjectionItems(); - setState(2343); + setState(2360); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2342); + setState(2359); match(CypherParser::SP); } - setState(2345); + setState(2362); match(CypherParser::T__3); - setState(2347); + setState(2364); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2346); + setState(2363); match(CypherParser::SP); } - setState(2349); + setState(2366); iC_RecursiveProjectionItems(); - setState(2351); + setState(2368); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2350); + setState(2367); match(CypherParser::SP); } } - setState(2355); + setState(2372); match(CypherParser::T__2); } @@ -14676,7 +14779,7 @@ size_t CypherParser::IC_RecursiveProjectionItemsContext::getRuleIndex() const { CypherParser::IC_RecursiveProjectionItemsContext* CypherParser::iC_RecursiveProjectionItems() { IC_RecursiveProjectionItemsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 254, CypherParser::RuleIC_RecursiveProjectionItems); + enterRule(_localctx, 256, CypherParser::RuleIC_RecursiveProjectionItems); size_t _la = 0; #if __cplusplus > 201703L @@ -14688,14 +14791,14 @@ CypherParser::IC_RecursiveProjectionItemsContext* CypherParser::iC_RecursiveProj }); try { enterOuterAlt(_localctx, 1); - setState(2357); + setState(2374); match(CypherParser::T__8); - setState(2359); + setState(2376); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 380, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 384, _ctx)) { case 1: { - setState(2358); + setState(2375); match(CypherParser::SP); break; } @@ -14703,7 +14806,7 @@ CypherParser::IC_RecursiveProjectionItemsContext* CypherParser::iC_RecursiveProj default: break; } - setState(2362); + setState(2379); _errHandler->sync(this); _la = _input->LA(1); @@ -14711,18 +14814,18 @@ CypherParser::IC_RecursiveProjectionItemsContext* CypherParser::iC_RecursiveProj ((1ULL << _la) & -4641029784715918716) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9187924516079622947) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 351514416231434975) != 0)) { - setState(2361); + setState(2378); oC_ProjectionItems(); } - setState(2365); + setState(2382); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2364); + setState(2381); match(CypherParser::SP); } - setState(2367); + setState(2384); match(CypherParser::T__9); } @@ -14753,7 +14856,7 @@ size_t CypherParser::OC_LowerBoundContext::getRuleIndex() const { CypherParser::OC_LowerBoundContext* CypherParser::oC_LowerBound() { OC_LowerBoundContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 256, CypherParser::RuleOC_LowerBound); + enterRule(_localctx, 258, CypherParser::RuleOC_LowerBound); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14764,7 +14867,7 @@ CypherParser::OC_LowerBoundContext* CypherParser::oC_LowerBound() { }); try { enterOuterAlt(_localctx, 1); - setState(2369); + setState(2386); match(CypherParser::DecimalInteger); } @@ -14795,7 +14898,7 @@ size_t CypherParser::OC_UpperBoundContext::getRuleIndex() const { CypherParser::OC_UpperBoundContext* CypherParser::oC_UpperBound() { OC_UpperBoundContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 258, CypherParser::RuleOC_UpperBound); + enterRule(_localctx, 260, CypherParser::RuleOC_UpperBound); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14806,7 +14909,7 @@ CypherParser::OC_UpperBoundContext* CypherParser::oC_UpperBound() { }); try { enterOuterAlt(_localctx, 1); - setState(2371); + setState(2388); match(CypherParser::DecimalInteger); } @@ -14841,7 +14944,7 @@ size_t CypherParser::OC_LabelNameContext::getRuleIndex() const { CypherParser::OC_LabelNameContext* CypherParser::oC_LabelName() { OC_LabelNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 260, CypherParser::RuleOC_LabelName); + enterRule(_localctx, 262, CypherParser::RuleOC_LabelName); size_t _la = 0; #if __cplusplus > 201703L @@ -14853,16 +14956,16 @@ CypherParser::OC_LabelNameContext* CypherParser::oC_LabelName() { }); try { enterOuterAlt(_localctx, 1); - setState(2373); + setState(2390); oC_SchemaName(); - setState(2376); + setState(2393); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::T__4) { - setState(2374); + setState(2391); match(CypherParser::T__4); - setState(2375); + setState(2392); oC_SchemaName(); } @@ -14894,7 +14997,7 @@ size_t CypherParser::OC_RelTypeNameContext::getRuleIndex() const { CypherParser::OC_RelTypeNameContext* CypherParser::oC_RelTypeName() { OC_RelTypeNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 262, CypherParser::RuleOC_RelTypeName); + enterRule(_localctx, 264, CypherParser::RuleOC_RelTypeName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14905,7 +15008,7 @@ CypherParser::OC_RelTypeNameContext* CypherParser::oC_RelTypeName() { }); try { enterOuterAlt(_localctx, 1); - setState(2378); + setState(2395); oC_SchemaName(); } @@ -14936,7 +15039,7 @@ size_t CypherParser::OC_ExpressionContext::getRuleIndex() const { CypherParser::OC_ExpressionContext* CypherParser::oC_Expression() { OC_ExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 264, CypherParser::RuleOC_Expression); + enterRule(_localctx, 266, CypherParser::RuleOC_Expression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -14947,7 +15050,7 @@ CypherParser::OC_ExpressionContext* CypherParser::oC_Expression() { }); try { enterOuterAlt(_localctx, 1); - setState(2380); + setState(2397); oC_OrExpression(); } @@ -14998,7 +15101,7 @@ size_t CypherParser::OC_OrExpressionContext::getRuleIndex() const { CypherParser::OC_OrExpressionContext* CypherParser::oC_OrExpression() { OC_OrExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 266, CypherParser::RuleOC_OrExpression); + enterRule(_localctx, 268, CypherParser::RuleOC_OrExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -15010,25 +15113,25 @@ CypherParser::OC_OrExpressionContext* CypherParser::oC_OrExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2382); + setState(2399); oC_XorExpression(); - setState(2389); + setState(2406); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 384, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 388, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2383); + setState(2400); match(CypherParser::SP); - setState(2384); + setState(2401); match(CypherParser::OR); - setState(2385); + setState(2402); match(CypherParser::SP); - setState(2386); + setState(2403); oC_XorExpression(); } - setState(2391); + setState(2408); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 384, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 388, _ctx); } } @@ -15079,7 +15182,7 @@ size_t CypherParser::OC_XorExpressionContext::getRuleIndex() const { CypherParser::OC_XorExpressionContext* CypherParser::oC_XorExpression() { OC_XorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 268, CypherParser::RuleOC_XorExpression); + enterRule(_localctx, 270, CypherParser::RuleOC_XorExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -15091,25 +15194,25 @@ CypherParser::OC_XorExpressionContext* CypherParser::oC_XorExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2392); + setState(2409); oC_AndExpression(); - setState(2399); + setState(2416); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 385, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 389, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2393); + setState(2410); match(CypherParser::SP); - setState(2394); + setState(2411); match(CypherParser::XOR); - setState(2395); + setState(2412); match(CypherParser::SP); - setState(2396); + setState(2413); oC_AndExpression(); } - setState(2401); + setState(2418); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 385, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 389, _ctx); } } @@ -15160,7 +15263,7 @@ size_t CypherParser::OC_AndExpressionContext::getRuleIndex() const { CypherParser::OC_AndExpressionContext* CypherParser::oC_AndExpression() { OC_AndExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 270, CypherParser::RuleOC_AndExpression); + enterRule(_localctx, 272, CypherParser::RuleOC_AndExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -15172,25 +15275,25 @@ CypherParser::OC_AndExpressionContext* CypherParser::oC_AndExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2402); + setState(2419); oC_NotExpression(); - setState(2409); + setState(2426); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 386, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 390, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2403); + setState(2420); match(CypherParser::SP); - setState(2404); + setState(2421); match(CypherParser::AND); - setState(2405); + setState(2422); match(CypherParser::SP); - setState(2406); + setState(2423); oC_NotExpression(); } - setState(2411); + setState(2428); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 386, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 390, _ctx); } } @@ -15237,7 +15340,7 @@ size_t CypherParser::OC_NotExpressionContext::getRuleIndex() const { CypherParser::OC_NotExpressionContext* CypherParser::oC_NotExpression() { OC_NotExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 272, CypherParser::RuleOC_NotExpression); + enterRule(_localctx, 274, CypherParser::RuleOC_NotExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -15249,25 +15352,25 @@ CypherParser::OC_NotExpressionContext* CypherParser::oC_NotExpression() { }); try { enterOuterAlt(_localctx, 1); - setState(2418); + setState(2435); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::NOT) { - setState(2412); + setState(2429); match(CypherParser::NOT); - setState(2414); + setState(2431); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2413); + setState(2430); match(CypherParser::SP); } - setState(2420); + setState(2437); _errHandler->sync(this); _la = _input->LA(1); } - setState(2421); + setState(2438); oC_ComparisonExpression(); } @@ -15322,7 +15425,7 @@ size_t CypherParser::OC_ComparisonExpressionContext::getRuleIndex() const { CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpression() { OC_ComparisonExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 274, CypherParser::RuleOC_ComparisonExpression); + enterRule(_localctx, 276, CypherParser::RuleOC_ComparisonExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -15334,37 +15437,37 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress }); try { size_t alt; - setState(2471); + setState(2488); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 399, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 403, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2423); + setState(2440); iC_BitwiseOrOperatorExpression(); - setState(2433); + setState(2450); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 391, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 395, _ctx)) { case 1: { - setState(2425); + setState(2442); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2424); + setState(2441); match(CypherParser::SP); } - setState(2427); + setState(2444); iC_ComparisonOperator(); - setState(2429); + setState(2446); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2428); + setState(2445); match(CypherParser::SP); } - setState(2431); + setState(2448); iC_BitwiseOrOperatorExpression(); break; } @@ -15377,28 +15480,28 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress case 2: { enterOuterAlt(_localctx, 2); - setState(2435); + setState(2452); iC_BitwiseOrOperatorExpression(); - setState(2437); + setState(2454); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2436); + setState(2453); match(CypherParser::SP); } - setState(2439); + setState(2456); antlrcpp::downCast(_localctx)->invalid_not_equalToken = match(CypherParser::INVALID_NOT_EQUAL); - setState(2441); + setState(2458); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2440); + setState(2457); match(CypherParser::SP); } - setState(2443); + setState(2460); iC_BitwiseOrOperatorExpression(); notifyInvalidNotEqualOperator(antlrcpp::downCast(_localctx)->invalid_not_equalToken); break; @@ -15406,53 +15509,53 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress case 3: { enterOuterAlt(_localctx, 3); - setState(2447); + setState(2464); iC_BitwiseOrOperatorExpression(); - setState(2449); + setState(2466); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2448); + setState(2465); match(CypherParser::SP); } - setState(2451); + setState(2468); iC_ComparisonOperator(); - setState(2453); + setState(2470); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2452); + setState(2469); match(CypherParser::SP); } - setState(2455); + setState(2472); iC_BitwiseOrOperatorExpression(); - setState(2465); + setState(2482); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(2457); + setState(2474); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2456); + setState(2473); match(CypherParser::SP); } - setState(2459); + setState(2476); iC_ComparisonOperator(); - setState(2461); + setState(2478); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2460); + setState(2477); match(CypherParser::SP); } - setState(2463); + setState(2480); iC_BitwiseOrOperatorExpression(); break; } @@ -15460,9 +15563,9 @@ CypherParser::OC_ComparisonExpressionContext* CypherParser::oC_ComparisonExpress default: throw NoViableAltException(this); } - setState(2467); + setState(2484); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 398, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 402, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); notifyNonBinaryComparison(_localctx->start); break; @@ -15496,7 +15599,7 @@ size_t CypherParser::IC_ComparisonOperatorContext::getRuleIndex() const { CypherParser::IC_ComparisonOperatorContext* CypherParser::iC_ComparisonOperator() { IC_ComparisonOperatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 276, CypherParser::RuleIC_ComparisonOperator); + enterRule(_localctx, 278, CypherParser::RuleIC_ComparisonOperator); size_t _la = 0; #if __cplusplus > 201703L @@ -15508,7 +15611,7 @@ CypherParser::IC_ComparisonOperatorContext* CypherParser::iC_ComparisonOperator( }); try { enterOuterAlt(_localctx, 1); - setState(2473); + setState(2490); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 127040) != 0))) { @@ -15559,7 +15662,7 @@ size_t CypherParser::IC_BitwiseOrOperatorExpressionContext::getRuleIndex() const CypherParser::IC_BitwiseOrOperatorExpressionContext* CypherParser::iC_BitwiseOrOperatorExpression() { IC_BitwiseOrOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 278, CypherParser::RuleIC_BitwiseOrOperatorExpression); + enterRule(_localctx, 280, CypherParser::RuleIC_BitwiseOrOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -15572,37 +15675,37 @@ CypherParser::IC_BitwiseOrOperatorExpressionContext* CypherParser::iC_BitwiseOrO try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2475); + setState(2492); iC_BitwiseAndOperatorExpression(); - setState(2486); + setState(2503); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 402, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 406, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2477); + setState(2494); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2476); + setState(2493); match(CypherParser::SP); } - setState(2479); + setState(2496); match(CypherParser::T__10); - setState(2481); + setState(2498); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2480); + setState(2497); match(CypherParser::SP); } - setState(2483); + setState(2500); iC_BitwiseAndOperatorExpression(); } - setState(2488); + setState(2505); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 402, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 406, _ctx); } } @@ -15645,7 +15748,7 @@ size_t CypherParser::IC_BitwiseAndOperatorExpressionContext::getRuleIndex() cons CypherParser::IC_BitwiseAndOperatorExpressionContext* CypherParser::iC_BitwiseAndOperatorExpression() { IC_BitwiseAndOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 280, CypherParser::RuleIC_BitwiseAndOperatorExpression); + enterRule(_localctx, 282, CypherParser::RuleIC_BitwiseAndOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -15658,37 +15761,37 @@ CypherParser::IC_BitwiseAndOperatorExpressionContext* CypherParser::iC_BitwiseAn try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2489); + setState(2506); iC_BitShiftOperatorExpression(); - setState(2500); + setState(2517); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 405, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 409, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2491); + setState(2508); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2490); + setState(2507); match(CypherParser::SP); } - setState(2493); + setState(2510); match(CypherParser::T__16); - setState(2495); + setState(2512); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2494); + setState(2511); match(CypherParser::SP); } - setState(2497); + setState(2514); iC_BitShiftOperatorExpression(); } - setState(2502); + setState(2519); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 405, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 409, _ctx); } } @@ -15739,7 +15842,7 @@ size_t CypherParser::IC_BitShiftOperatorExpressionContext::getRuleIndex() const CypherParser::IC_BitShiftOperatorExpressionContext* CypherParser::iC_BitShiftOperatorExpression() { IC_BitShiftOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 282, CypherParser::RuleIC_BitShiftOperatorExpression); + enterRule(_localctx, 284, CypherParser::RuleIC_BitShiftOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -15752,37 +15855,37 @@ CypherParser::IC_BitShiftOperatorExpressionContext* CypherParser::iC_BitShiftOpe try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2503); + setState(2520); oC_AddOrSubtractExpression(); - setState(2515); + setState(2532); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 408, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 412, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2505); + setState(2522); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2504); + setState(2521); match(CypherParser::SP); } - setState(2507); + setState(2524); iC_BitShiftOperator(); - setState(2509); + setState(2526); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2508); + setState(2525); match(CypherParser::SP); } - setState(2511); + setState(2528); oC_AddOrSubtractExpression(); } - setState(2517); + setState(2534); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 408, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 412, _ctx); } } @@ -15809,7 +15912,7 @@ size_t CypherParser::IC_BitShiftOperatorContext::getRuleIndex() const { CypherParser::IC_BitShiftOperatorContext* CypherParser::iC_BitShiftOperator() { IC_BitShiftOperatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 284, CypherParser::RuleIC_BitShiftOperator); + enterRule(_localctx, 286, CypherParser::RuleIC_BitShiftOperator); size_t _la = 0; #if __cplusplus > 201703L @@ -15821,7 +15924,7 @@ CypherParser::IC_BitShiftOperatorContext* CypherParser::iC_BitShiftOperator() { }); try { enterOuterAlt(_localctx, 1); - setState(2518); + setState(2535); _la = _input->LA(1); if (!(_la == CypherParser::T__17 @@ -15881,7 +15984,7 @@ size_t CypherParser::OC_AddOrSubtractExpressionContext::getRuleIndex() const { CypherParser::OC_AddOrSubtractExpressionContext* CypherParser::oC_AddOrSubtractExpression() { OC_AddOrSubtractExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 286, CypherParser::RuleOC_AddOrSubtractExpression); + enterRule(_localctx, 288, CypherParser::RuleOC_AddOrSubtractExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -15894,37 +15997,37 @@ CypherParser::OC_AddOrSubtractExpressionContext* CypherParser::oC_AddOrSubtractE try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2520); + setState(2537); oC_MultiplyDivideModuloExpression(); - setState(2532); + setState(2549); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 411, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 415, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2522); + setState(2539); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2521); + setState(2538); match(CypherParser::SP); } - setState(2524); + setState(2541); iC_AddOrSubtractOperator(); - setState(2526); + setState(2543); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2525); + setState(2542); match(CypherParser::SP); } - setState(2528); + setState(2545); oC_MultiplyDivideModuloExpression(); } - setState(2534); + setState(2551); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 411, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 415, _ctx); } } @@ -15955,7 +16058,7 @@ size_t CypherParser::IC_AddOrSubtractOperatorContext::getRuleIndex() const { CypherParser::IC_AddOrSubtractOperatorContext* CypherParser::iC_AddOrSubtractOperator() { IC_AddOrSubtractOperatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 288, CypherParser::RuleIC_AddOrSubtractOperator); + enterRule(_localctx, 290, CypherParser::RuleIC_AddOrSubtractOperator); size_t _la = 0; #if __cplusplus > 201703L @@ -15967,7 +16070,7 @@ CypherParser::IC_AddOrSubtractOperatorContext* CypherParser::iC_AddOrSubtractOpe }); try { enterOuterAlt(_localctx, 1); - setState(2535); + setState(2552); _la = _input->LA(1); if (!(_la == CypherParser::T__19 || _la == CypherParser::MINUS)) { _errHandler->recoverInline(this); @@ -16025,7 +16128,7 @@ size_t CypherParser::OC_MultiplyDivideModuloExpressionContext::getRuleIndex() co CypherParser::OC_MultiplyDivideModuloExpressionContext* CypherParser::oC_MultiplyDivideModuloExpression() { OC_MultiplyDivideModuloExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 290, CypherParser::RuleOC_MultiplyDivideModuloExpression); + enterRule(_localctx, 292, CypherParser::RuleOC_MultiplyDivideModuloExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -16038,37 +16141,37 @@ CypherParser::OC_MultiplyDivideModuloExpressionContext* CypherParser::oC_Multipl try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2537); + setState(2554); oC_PowerOfExpression(); - setState(2549); + setState(2566); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 414, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 418, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2539); + setState(2556); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2538); + setState(2555); match(CypherParser::SP); } - setState(2541); + setState(2558); iC_MultiplyDivideModuloOperator(); - setState(2543); + setState(2560); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2542); + setState(2559); match(CypherParser::SP); } - setState(2545); + setState(2562); oC_PowerOfExpression(); } - setState(2551); + setState(2568); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 414, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 418, _ctx); } } @@ -16099,7 +16202,7 @@ size_t CypherParser::IC_MultiplyDivideModuloOperatorContext::getRuleIndex() cons CypherParser::IC_MultiplyDivideModuloOperatorContext* CypherParser::iC_MultiplyDivideModuloOperator() { IC_MultiplyDivideModuloOperatorContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 292, CypherParser::RuleIC_MultiplyDivideModuloOperator); + enterRule(_localctx, 294, CypherParser::RuleIC_MultiplyDivideModuloOperator); size_t _la = 0; #if __cplusplus > 201703L @@ -16111,7 +16214,7 @@ CypherParser::IC_MultiplyDivideModuloOperatorContext* CypherParser::iC_MultiplyD }); try { enterOuterAlt(_localctx, 1); - setState(2552); + setState(2569); _la = _input->LA(1); if (!(_la == CypherParser::T__20 @@ -16163,7 +16266,7 @@ size_t CypherParser::OC_PowerOfExpressionContext::getRuleIndex() const { CypherParser::OC_PowerOfExpressionContext* CypherParser::oC_PowerOfExpression() { OC_PowerOfExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 294, CypherParser::RuleOC_PowerOfExpression); + enterRule(_localctx, 296, CypherParser::RuleOC_PowerOfExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -16176,37 +16279,37 @@ CypherParser::OC_PowerOfExpressionContext* CypherParser::oC_PowerOfExpression() try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2554); + setState(2571); oC_StringListNullOperatorExpression(); - setState(2565); + setState(2582); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 417, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 421, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2556); + setState(2573); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2555); + setState(2572); match(CypherParser::SP); } - setState(2558); + setState(2575); match(CypherParser::T__22); - setState(2560); + setState(2577); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2559); + setState(2576); match(CypherParser::SP); } - setState(2562); + setState(2579); oC_StringListNullOperatorExpression(); } - setState(2567); + setState(2584); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 417, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 421, _ctx); } } @@ -16253,7 +16356,7 @@ size_t CypherParser::OC_StringListNullOperatorExpressionContext::getRuleIndex() CypherParser::OC_StringListNullOperatorExpressionContext* CypherParser::oC_StringListNullOperatorExpression() { OC_StringListNullOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 296, CypherParser::RuleOC_StringListNullOperatorExpression); + enterRule(_localctx, 298, CypherParser::RuleOC_StringListNullOperatorExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -16265,26 +16368,26 @@ CypherParser::OC_StringListNullOperatorExpressionContext* CypherParser::oC_Strin try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2568); + setState(2585); oC_UnaryAddSubtractOrFactorialExpression(); - setState(2576); + setState(2593); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 419, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 423, _ctx)) { case 1: { - setState(2569); + setState(2586); oC_StringOperatorExpression(); break; } case 2: { - setState(2571); + setState(2588); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(2570); + setState(2587); oC_ListOperatorExpression(); break; } @@ -16292,15 +16395,15 @@ CypherParser::OC_StringListNullOperatorExpressionContext* CypherParser::oC_Strin default: throw NoViableAltException(this); } - setState(2573); + setState(2590); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 418, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 422, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } case 3: { - setState(2575); + setState(2592); oC_NullOperatorExpression(); break; } @@ -16365,7 +16468,7 @@ size_t CypherParser::OC_ListOperatorExpressionContext::getRuleIndex() const { CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExpression() { OC_ListOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 298, CypherParser::RuleOC_ListOperatorExpression); + enterRule(_localctx, 300, CypherParser::RuleOC_ListOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -16376,44 +16479,44 @@ CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExp exitRule(); }); try { - setState(2597); + setState(2614); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 423, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 427, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2578); + setState(2595); match(CypherParser::SP); - setState(2579); + setState(2596); match(CypherParser::IN); - setState(2581); + setState(2598); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2580); + setState(2597); match(CypherParser::SP); } - setState(2583); + setState(2600); oC_PropertyOrLabelsExpression(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2584); + setState(2601); match(CypherParser::T__6); - setState(2585); + setState(2602); oC_Expression(); - setState(2586); + setState(2603); match(CypherParser::T__7); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(2588); + setState(2605); match(CypherParser::T__6); - setState(2590); + setState(2607); _errHandler->sync(this); _la = _input->LA(1); @@ -16421,10 +16524,10 @@ CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExp ((1ULL << _la) & -4641029784715918716) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9187924516079622947) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 351514278792481503) != 0)) { - setState(2589); + setState(2606); oC_Expression(); } - setState(2592); + setState(2609); _la = _input->LA(1); if (!(_la == CypherParser::COLON @@ -16435,7 +16538,7 @@ CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExp _errHandler->reportMatch(this); consume(); } - setState(2594); + setState(2611); _errHandler->sync(this); _la = _input->LA(1); @@ -16443,10 +16546,10 @@ CypherParser::OC_ListOperatorExpressionContext* CypherParser::oC_ListOperatorExp ((1ULL << _la) & -4641029784715918716) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9187924516079622947) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 351514278792481503) != 0)) { - setState(2593); + setState(2610); oC_Expression(); } - setState(2596); + setState(2613); match(CypherParser::T__7); break; } @@ -16511,7 +16614,7 @@ size_t CypherParser::OC_StringOperatorExpressionContext::getRuleIndex() const { CypherParser::OC_StringOperatorExpressionContext* CypherParser::oC_StringOperatorExpression() { OC_StringOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 300, CypherParser::RuleOC_StringOperatorExpression); + enterRule(_localctx, 302, CypherParser::RuleOC_StringOperatorExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -16523,43 +16626,43 @@ CypherParser::OC_StringOperatorExpressionContext* CypherParser::oC_StringOperato }); try { enterOuterAlt(_localctx, 1); - setState(2610); + setState(2627); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 424, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 428, _ctx)) { case 1: { - setState(2599); + setState(2616); oC_RegularExpression(); break; } case 2: { - setState(2600); + setState(2617); match(CypherParser::SP); - setState(2601); + setState(2618); match(CypherParser::STARTS); - setState(2602); + setState(2619); match(CypherParser::SP); - setState(2603); + setState(2620); match(CypherParser::WITH); break; } case 3: { - setState(2604); + setState(2621); match(CypherParser::SP); - setState(2605); + setState(2622); match(CypherParser::ENDS); - setState(2606); + setState(2623); match(CypherParser::SP); - setState(2607); + setState(2624); match(CypherParser::WITH); break; } case 4: { - setState(2608); + setState(2625); match(CypherParser::SP); - setState(2609); + setState(2626); match(CypherParser::CONTAINS); break; } @@ -16567,15 +16670,15 @@ CypherParser::OC_StringOperatorExpressionContext* CypherParser::oC_StringOperato default: break; } - setState(2613); + setState(2630); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2612); + setState(2629); match(CypherParser::SP); } - setState(2615); + setState(2632); oC_PropertyOrLabelsExpression(); } @@ -16606,7 +16709,7 @@ size_t CypherParser::OC_RegularExpressionContext::getRuleIndex() const { CypherParser::OC_RegularExpressionContext* CypherParser::oC_RegularExpression() { OC_RegularExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 302, CypherParser::RuleOC_RegularExpression); + enterRule(_localctx, 304, CypherParser::RuleOC_RegularExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -16618,15 +16721,15 @@ CypherParser::OC_RegularExpressionContext* CypherParser::oC_RegularExpression() }); try { enterOuterAlt(_localctx, 1); - setState(2618); + setState(2635); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2617); + setState(2634); match(CypherParser::SP); } - setState(2620); + setState(2637); match(CypherParser::T__23); } @@ -16673,7 +16776,7 @@ size_t CypherParser::OC_NullOperatorExpressionContext::getRuleIndex() const { CypherParser::OC_NullOperatorExpressionContext* CypherParser::oC_NullOperatorExpression() { OC_NullOperatorExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 304, CypherParser::RuleOC_NullOperatorExpression); + enterRule(_localctx, 306, CypherParser::RuleOC_NullOperatorExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -16683,35 +16786,35 @@ CypherParser::OC_NullOperatorExpressionContext* CypherParser::oC_NullOperatorExp exitRule(); }); try { - setState(2632); + setState(2649); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 427, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 431, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2622); + setState(2639); match(CypherParser::SP); - setState(2623); + setState(2640); match(CypherParser::IS); - setState(2624); + setState(2641); match(CypherParser::SP); - setState(2625); + setState(2642); match(CypherParser::NULL_); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2626); + setState(2643); match(CypherParser::SP); - setState(2627); + setState(2644); match(CypherParser::IS); - setState(2628); + setState(2645); match(CypherParser::SP); - setState(2629); + setState(2646); match(CypherParser::NOT); - setState(2630); + setState(2647); match(CypherParser::SP); - setState(2631); + setState(2648); match(CypherParser::NULL_); break; } @@ -16768,7 +16871,7 @@ size_t CypherParser::OC_UnaryAddSubtractOrFactorialExpressionContext::getRuleInd CypherParser::OC_UnaryAddSubtractOrFactorialExpressionContext* CypherParser::oC_UnaryAddSubtractOrFactorialExpression() { OC_UnaryAddSubtractOrFactorialExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 306, CypherParser::RuleOC_UnaryAddSubtractOrFactorialExpression); + enterRule(_localctx, 308, CypherParser::RuleOC_UnaryAddSubtractOrFactorialExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -16780,40 +16883,40 @@ CypherParser::OC_UnaryAddSubtractOrFactorialExpressionContext* CypherParser::oC_ }); try { enterOuterAlt(_localctx, 1); - setState(2640); + setState(2657); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::MINUS) { - setState(2634); + setState(2651); match(CypherParser::MINUS); - setState(2636); + setState(2653); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2635); + setState(2652); match(CypherParser::SP); } - setState(2642); + setState(2659); _errHandler->sync(this); _la = _input->LA(1); } - setState(2643); + setState(2660); oC_PropertyOrLabelsExpression(); - setState(2648); + setState(2665); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 431, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 435, _ctx)) { case 1: { - setState(2645); + setState(2662); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2644); + setState(2661); match(CypherParser::SP); } - setState(2647); + setState(2664); match(CypherParser::FACTORIAL); break; } @@ -16866,7 +16969,7 @@ size_t CypherParser::OC_PropertyOrLabelsExpressionContext::getRuleIndex() const CypherParser::OC_PropertyOrLabelsExpressionContext* CypherParser::oC_PropertyOrLabelsExpression() { OC_PropertyOrLabelsExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 308, CypherParser::RuleOC_PropertyOrLabelsExpression); + enterRule(_localctx, 310, CypherParser::RuleOC_PropertyOrLabelsExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -16879,27 +16982,27 @@ CypherParser::OC_PropertyOrLabelsExpressionContext* CypherParser::oC_PropertyOrL try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2650); + setState(2667); oC_Atom(); - setState(2657); + setState(2674); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 433, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 437, _ctx); while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { if (alt == 1) { - setState(2652); + setState(2669); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2651); + setState(2668); match(CypherParser::SP); } - setState(2654); + setState(2671); oC_PropertyLookup(); } - setState(2659); + setState(2676); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 433, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 437, _ctx); } } @@ -16962,7 +17065,7 @@ size_t CypherParser::OC_AtomContext::getRuleIndex() const { CypherParser::OC_AtomContext* CypherParser::oC_Atom() { OC_AtomContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 310, CypherParser::RuleOC_Atom); + enterRule(_localctx, 312, CypherParser::RuleOC_Atom); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -16972,68 +17075,68 @@ CypherParser::OC_AtomContext* CypherParser::oC_Atom() { exitRule(); }); try { - setState(2669); + setState(2686); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 434, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 438, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2660); + setState(2677); oC_Literal(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2661); + setState(2678); oC_Parameter(); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(2662); + setState(2679); oC_CaseExpression(); break; } case 4: { enterOuterAlt(_localctx, 4); - setState(2663); + setState(2680); oC_ParenthesizedExpression(); break; } case 5: { enterOuterAlt(_localctx, 5); - setState(2664); + setState(2681); oC_FunctionInvocation(); break; } case 6: { enterOuterAlt(_localctx, 6); - setState(2665); + setState(2682); oC_PathPatterns(); break; } case 7: { enterOuterAlt(_localctx, 7); - setState(2666); + setState(2683); oC_ExistCountSubquery(); break; } case 8: { enterOuterAlt(_localctx, 8); - setState(2667); + setState(2684); oC_Variable(); break; } case 9: { enterOuterAlt(_localctx, 9); - setState(2668); + setState(2685); oC_Quantifier(); break; } @@ -17094,7 +17197,7 @@ size_t CypherParser::OC_QuantifierContext::getRuleIndex() const { CypherParser::OC_QuantifierContext* CypherParser::oC_Quantifier() { OC_QuantifierContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 312, CypherParser::RuleOC_Quantifier); + enterRule(_localctx, 314, CypherParser::RuleOC_Quantifier); size_t _la = 0; #if __cplusplus > 201703L @@ -17105,153 +17208,153 @@ CypherParser::OC_QuantifierContext* CypherParser::oC_Quantifier() { exitRule(); }); try { - setState(2727); + setState(2744); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::ALL: { enterOuterAlt(_localctx, 1); - setState(2671); + setState(2688); match(CypherParser::ALL); - setState(2673); + setState(2690); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2672); + setState(2689); match(CypherParser::SP); } - setState(2675); + setState(2692); match(CypherParser::T__1); - setState(2677); + setState(2694); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2676); + setState(2693); match(CypherParser::SP); } - setState(2679); + setState(2696); oC_FilterExpression(); - setState(2681); + setState(2698); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2680); + setState(2697); match(CypherParser::SP); } - setState(2683); + setState(2700); match(CypherParser::T__2); break; } case CypherParser::ANY: { enterOuterAlt(_localctx, 2); - setState(2685); + setState(2702); match(CypherParser::ANY); - setState(2687); + setState(2704); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2686); + setState(2703); match(CypherParser::SP); } - setState(2689); + setState(2706); match(CypherParser::T__1); - setState(2691); + setState(2708); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2690); + setState(2707); match(CypherParser::SP); } - setState(2693); + setState(2710); oC_FilterExpression(); - setState(2695); + setState(2712); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2694); + setState(2711); match(CypherParser::SP); } - setState(2697); + setState(2714); match(CypherParser::T__2); break; } case CypherParser::NONE: { enterOuterAlt(_localctx, 3); - setState(2699); + setState(2716); match(CypherParser::NONE); - setState(2701); + setState(2718); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2700); + setState(2717); match(CypherParser::SP); } - setState(2703); + setState(2720); match(CypherParser::T__1); - setState(2705); + setState(2722); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2704); + setState(2721); match(CypherParser::SP); } - setState(2707); + setState(2724); oC_FilterExpression(); - setState(2709); + setState(2726); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2708); + setState(2725); match(CypherParser::SP); } - setState(2711); + setState(2728); match(CypherParser::T__2); break; } case CypherParser::SINGLE: { enterOuterAlt(_localctx, 4); - setState(2713); + setState(2730); match(CypherParser::SINGLE); - setState(2715); + setState(2732); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2714); + setState(2731); match(CypherParser::SP); } - setState(2717); + setState(2734); match(CypherParser::T__1); - setState(2719); + setState(2736); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2718); + setState(2735); match(CypherParser::SP); } - setState(2721); + setState(2738); oC_FilterExpression(); - setState(2723); + setState(2740); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2722); + setState(2739); match(CypherParser::SP); } - setState(2725); + setState(2742); match(CypherParser::T__2); break; } @@ -17296,7 +17399,7 @@ size_t CypherParser::OC_FilterExpressionContext::getRuleIndex() const { CypherParser::OC_FilterExpressionContext* CypherParser::oC_FilterExpression() { OC_FilterExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 314, CypherParser::RuleOC_FilterExpression); + enterRule(_localctx, 316, CypherParser::RuleOC_FilterExpression); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -17307,11 +17410,11 @@ CypherParser::OC_FilterExpressionContext* CypherParser::oC_FilterExpression() { }); try { enterOuterAlt(_localctx, 1); - setState(2729); + setState(2746); oC_IdInColl(); - setState(2730); + setState(2747); match(CypherParser::SP); - setState(2731); + setState(2748); oC_Where(); } @@ -17358,7 +17461,7 @@ size_t CypherParser::OC_IdInCollContext::getRuleIndex() const { CypherParser::OC_IdInCollContext* CypherParser::oC_IdInColl() { OC_IdInCollContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 316, CypherParser::RuleOC_IdInColl); + enterRule(_localctx, 318, CypherParser::RuleOC_IdInColl); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -17369,15 +17472,15 @@ CypherParser::OC_IdInCollContext* CypherParser::oC_IdInColl() { }); try { enterOuterAlt(_localctx, 1); - setState(2733); + setState(2750); oC_Variable(); - setState(2734); + setState(2751); match(CypherParser::SP); - setState(2735); + setState(2752); match(CypherParser::IN); - setState(2736); + setState(2753); match(CypherParser::SP); - setState(2737); + setState(2754); oC_Expression(); } @@ -17428,7 +17531,7 @@ size_t CypherParser::OC_LiteralContext::getRuleIndex() const { CypherParser::OC_LiteralContext* CypherParser::oC_Literal() { OC_LiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 318, CypherParser::RuleOC_Literal); + enterRule(_localctx, 320, CypherParser::RuleOC_Literal); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -17438,21 +17541,21 @@ CypherParser::OC_LiteralContext* CypherParser::oC_Literal() { exitRule(); }); try { - setState(2745); + setState(2762); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::DecimalInteger: case CypherParser::ExponentDecimalReal: case CypherParser::RegularDecimalReal: { enterOuterAlt(_localctx, 1); - setState(2739); + setState(2756); oC_NumberLiteral(); break; } case CypherParser::StringLiteral: { enterOuterAlt(_localctx, 2); - setState(2740); + setState(2757); match(CypherParser::StringLiteral); break; } @@ -17460,28 +17563,28 @@ CypherParser::OC_LiteralContext* CypherParser::oC_Literal() { case CypherParser::FALSE: case CypherParser::TRUE: { enterOuterAlt(_localctx, 3); - setState(2741); + setState(2758); oC_BooleanLiteral(); break; } case CypherParser::NULL_: { enterOuterAlt(_localctx, 4); - setState(2742); + setState(2759); match(CypherParser::NULL_); break; } case CypherParser::T__6: { enterOuterAlt(_localctx, 5); - setState(2743); + setState(2760); oC_ListLiteral(); break; } case CypherParser::T__8: { enterOuterAlt(_localctx, 6); - setState(2744); + setState(2761); iC_StructLiteral(); break; } @@ -17522,7 +17625,7 @@ size_t CypherParser::OC_BooleanLiteralContext::getRuleIndex() const { CypherParser::OC_BooleanLiteralContext* CypherParser::oC_BooleanLiteral() { OC_BooleanLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 320, CypherParser::RuleOC_BooleanLiteral); + enterRule(_localctx, 322, CypherParser::RuleOC_BooleanLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -17534,7 +17637,7 @@ CypherParser::OC_BooleanLiteralContext* CypherParser::oC_BooleanLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(2747); + setState(2764); _la = _input->LA(1); if (!(_la == CypherParser::FALSE @@ -17590,7 +17693,7 @@ size_t CypherParser::OC_ListLiteralContext::getRuleIndex() const { CypherParser::OC_ListLiteralContext* CypherParser::oC_ListLiteral() { OC_ListLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 322, CypherParser::RuleOC_ListLiteral); + enterRule(_localctx, 324, CypherParser::RuleOC_ListLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -17602,17 +17705,17 @@ CypherParser::OC_ListLiteralContext* CypherParser::oC_ListLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(2749); + setState(2766); match(CypherParser::T__6); - setState(2751); + setState(2768); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2750); + setState(2767); match(CypherParser::SP); } - setState(2766); + setState(2783); _errHandler->sync(this); _la = _input->LA(1); @@ -17620,36 +17723,36 @@ CypherParser::OC_ListLiteralContext* CypherParser::oC_ListLiteral() { ((1ULL << _la) & -4641029784715918716) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9187924516079622947) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 351514278792481503) != 0)) { - setState(2753); + setState(2770); oC_Expression(); - setState(2755); + setState(2772); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2754); + setState(2771); match(CypherParser::SP); } - setState(2763); + setState(2780); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(2757); + setState(2774); iC_ListEntry(); - setState(2759); + setState(2776); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2758); + setState(2775); match(CypherParser::SP); } - setState(2765); + setState(2782); _errHandler->sync(this); _la = _input->LA(1); } } - setState(2768); + setState(2785); match(CypherParser::T__7); } @@ -17684,7 +17787,7 @@ size_t CypherParser::IC_ListEntryContext::getRuleIndex() const { CypherParser::IC_ListEntryContext* CypherParser::iC_ListEntry() { IC_ListEntryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 324, CypherParser::RuleIC_ListEntry); + enterRule(_localctx, 326, CypherParser::RuleIC_ListEntry); size_t _la = 0; #if __cplusplus > 201703L @@ -17696,14 +17799,14 @@ CypherParser::IC_ListEntryContext* CypherParser::iC_ListEntry() { }); try { enterOuterAlt(_localctx, 1); - setState(2770); + setState(2787); match(CypherParser::T__3); - setState(2772); + setState(2789); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 454, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 458, _ctx)) { case 1: { - setState(2771); + setState(2788); match(CypherParser::SP); break; } @@ -17711,7 +17814,7 @@ CypherParser::IC_ListEntryContext* CypherParser::iC_ListEntry() { default: break; } - setState(2775); + setState(2792); _errHandler->sync(this); _la = _input->LA(1); @@ -17719,7 +17822,7 @@ CypherParser::IC_ListEntryContext* CypherParser::iC_ListEntry() { ((1ULL << _la) & -4641029784715918716) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9187924516079622947) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 351514278792481503) != 0)) { - setState(2774); + setState(2791); oC_Expression(); } @@ -17763,7 +17866,7 @@ size_t CypherParser::IC_StructLiteralContext::getRuleIndex() const { CypherParser::IC_StructLiteralContext* CypherParser::iC_StructLiteral() { IC_StructLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 326, CypherParser::RuleIC_StructLiteral); + enterRule(_localctx, 328, CypherParser::RuleIC_StructLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -17775,55 +17878,55 @@ CypherParser::IC_StructLiteralContext* CypherParser::iC_StructLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(2777); + setState(2794); match(CypherParser::T__8); - setState(2779); + setState(2796); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2778); + setState(2795); match(CypherParser::SP); } - setState(2781); + setState(2798); iC_StructField(); - setState(2783); + setState(2800); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2782); + setState(2799); match(CypherParser::SP); } - setState(2795); + setState(2812); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(2785); + setState(2802); match(CypherParser::T__3); - setState(2787); + setState(2804); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2786); + setState(2803); match(CypherParser::SP); } - setState(2789); + setState(2806); iC_StructField(); - setState(2791); + setState(2808); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2790); + setState(2807); match(CypherParser::SP); } - setState(2797); + setState(2814); _errHandler->sync(this); _la = _input->LA(1); } - setState(2798); + setState(2815); match(CypherParser::T__9); } @@ -17874,7 +17977,7 @@ size_t CypherParser::IC_StructFieldContext::getRuleIndex() const { CypherParser::IC_StructFieldContext* CypherParser::iC_StructField() { IC_StructFieldContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 328, CypherParser::RuleIC_StructField); + enterRule(_localctx, 330, CypherParser::RuleIC_StructField); size_t _la = 0; #if __cplusplus > 201703L @@ -17886,7 +17989,7 @@ CypherParser::IC_StructFieldContext* CypherParser::iC_StructField() { }); try { enterOuterAlt(_localctx, 1); - setState(2802); + setState(2819); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::ADD: @@ -17955,13 +18058,13 @@ CypherParser::IC_StructFieldContext* CypherParser::iC_StructField() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(2800); + setState(2817); oC_SymbolicName(); break; } case CypherParser::StringLiteral: { - setState(2801); + setState(2818); match(CypherParser::StringLiteral); break; } @@ -17969,25 +18072,25 @@ CypherParser::IC_StructFieldContext* CypherParser::iC_StructField() { default: throw NoViableAltException(this); } - setState(2805); + setState(2822); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2804); + setState(2821); match(CypherParser::SP); } - setState(2807); + setState(2824); match(CypherParser::COLON); - setState(2809); + setState(2826); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2808); + setState(2825); match(CypherParser::SP); } - setState(2811); + setState(2828); oC_Expression(); } @@ -18026,7 +18129,7 @@ size_t CypherParser::OC_ParenthesizedExpressionContext::getRuleIndex() const { CypherParser::OC_ParenthesizedExpressionContext* CypherParser::oC_ParenthesizedExpression() { OC_ParenthesizedExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 330, CypherParser::RuleOC_ParenthesizedExpression); + enterRule(_localctx, 332, CypherParser::RuleOC_ParenthesizedExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -18038,27 +18141,27 @@ CypherParser::OC_ParenthesizedExpressionContext* CypherParser::oC_ParenthesizedE }); try { enterOuterAlt(_localctx, 1); - setState(2813); + setState(2830); match(CypherParser::T__1); - setState(2815); + setState(2832); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2814); + setState(2831); match(CypherParser::SP); } - setState(2817); + setState(2834); oC_Expression(); - setState(2819); + setState(2836); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2818); + setState(2835); match(CypherParser::SP); } - setState(2821); + setState(2838); match(CypherParser::T__2); } @@ -18129,7 +18232,7 @@ size_t CypherParser::OC_FunctionInvocationContext::getRuleIndex() const { CypherParser::OC_FunctionInvocationContext* CypherParser::oC_FunctionInvocation() { OC_FunctionInvocationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 332, CypherParser::RuleOC_FunctionInvocation); + enterRule(_localctx, 334, CypherParser::RuleOC_FunctionInvocation); size_t _la = 0; #if __cplusplus > 201703L @@ -18140,109 +18243,109 @@ CypherParser::OC_FunctionInvocationContext* CypherParser::oC_FunctionInvocation( exitRule(); }); try { - setState(2900); + setState(2917); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 485, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 489, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2823); + setState(2840); match(CypherParser::COUNT); - setState(2825); + setState(2842); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2824); + setState(2841); match(CypherParser::SP); } - setState(2827); + setState(2844); match(CypherParser::T__1); - setState(2829); + setState(2846); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2828); + setState(2845); match(CypherParser::SP); } - setState(2831); + setState(2848); match(CypherParser::STAR); - setState(2833); + setState(2850); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2832); + setState(2849); match(CypherParser::SP); } - setState(2835); + setState(2852); match(CypherParser::T__2); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2836); + setState(2853); match(CypherParser::CAST); - setState(2838); + setState(2855); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2837); + setState(2854); match(CypherParser::SP); } - setState(2840); + setState(2857); match(CypherParser::T__1); - setState(2842); + setState(2859); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2841); + setState(2858); match(CypherParser::SP); } - setState(2844); + setState(2861); iC_FunctionParameter(); - setState(2846); + setState(2863); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2845); + setState(2862); match(CypherParser::SP); } - setState(2858); + setState(2875); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::AS: { - setState(2848); + setState(2865); match(CypherParser::AS); - setState(2850); + setState(2867); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2849); + setState(2866); match(CypherParser::SP); } - setState(2852); + setState(2869); iC_DataType(0); break; } case CypherParser::T__3: { - setState(2853); + setState(2870); match(CypherParser::T__3); - setState(2855); + setState(2872); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2854); + setState(2871); match(CypherParser::SP); } - setState(2857); + setState(2874); iC_FunctionParameter(); break; } @@ -18250,58 +18353,58 @@ CypherParser::OC_FunctionInvocationContext* CypherParser::oC_FunctionInvocation( default: throw NoViableAltException(this); } - setState(2861); + setState(2878); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2860); + setState(2877); match(CypherParser::SP); } - setState(2863); + setState(2880); match(CypherParser::T__2); break; } case 3: { enterOuterAlt(_localctx, 3); - setState(2865); + setState(2882); oC_FunctionName(); - setState(2867); + setState(2884); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2866); + setState(2883); match(CypherParser::SP); } - setState(2869); + setState(2886); match(CypherParser::T__1); - setState(2871); + setState(2888); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2870); + setState(2887); match(CypherParser::SP); } - setState(2877); + setState(2894); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::DISTINCT) { - setState(2873); + setState(2890); match(CypherParser::DISTINCT); - setState(2875); + setState(2892); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2874); + setState(2891); match(CypherParser::SP); } } - setState(2896); + setState(2913); _errHandler->sync(this); _la = _input->LA(1); @@ -18309,46 +18412,46 @@ CypherParser::OC_FunctionInvocationContext* CypherParser::oC_FunctionInvocation( ((1ULL << _la) & -4641029784715918716) != 0) || ((((_la - 64) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 64)) & -9187924516079622947) != 0) || ((((_la - 128) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 128)) & 351514278792481503) != 0)) { - setState(2879); + setState(2896); iC_FunctionParameter(); - setState(2881); + setState(2898); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2880); + setState(2897); match(CypherParser::SP); } - setState(2893); + setState(2910); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(2883); + setState(2900); match(CypherParser::T__3); - setState(2885); + setState(2902); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2884); + setState(2901); match(CypherParser::SP); } - setState(2887); + setState(2904); iC_FunctionParameter(); - setState(2889); + setState(2906); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2888); + setState(2905); match(CypherParser::SP); } - setState(2895); + setState(2912); _errHandler->sync(this); _la = _input->LA(1); } } - setState(2898); + setState(2915); match(CypherParser::T__2); break; } @@ -18385,7 +18488,7 @@ size_t CypherParser::OC_FunctionNameContext::getRuleIndex() const { CypherParser::OC_FunctionNameContext* CypherParser::oC_FunctionName() { OC_FunctionNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 334, CypherParser::RuleOC_FunctionName); + enterRule(_localctx, 336, CypherParser::RuleOC_FunctionName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -18396,7 +18499,7 @@ CypherParser::OC_FunctionNameContext* CypherParser::oC_FunctionName() { }); try { enterOuterAlt(_localctx, 1); - setState(2902); + setState(2919); oC_SymbolicName(); } @@ -18447,7 +18550,7 @@ size_t CypherParser::IC_FunctionParameterContext::getRuleIndex() const { CypherParser::IC_FunctionParameterContext* CypherParser::iC_FunctionParameter() { IC_FunctionParameterContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 336, CypherParser::RuleIC_FunctionParameter); + enterRule(_localctx, 338, CypherParser::RuleIC_FunctionParameter); size_t _la = 0; #if __cplusplus > 201703L @@ -18458,36 +18561,36 @@ CypherParser::IC_FunctionParameterContext* CypherParser::iC_FunctionParameter() exitRule(); }); try { - setState(2917); + setState(2934); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 489, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 493, _ctx)) { case 1: { enterOuterAlt(_localctx, 1); - setState(2913); + setState(2930); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 488, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 492, _ctx)) { case 1: { - setState(2904); + setState(2921); oC_SymbolicName(); - setState(2906); + setState(2923); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2905); + setState(2922); match(CypherParser::SP); } - setState(2908); + setState(2925); match(CypherParser::COLON); - setState(2909); + setState(2926); match(CypherParser::T__5); - setState(2911); + setState(2928); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2910); + setState(2927); match(CypherParser::SP); } break; @@ -18496,14 +18599,14 @@ CypherParser::IC_FunctionParameterContext* CypherParser::iC_FunctionParameter() default: break; } - setState(2915); + setState(2932); oC_Expression(); break; } case 2: { enterOuterAlt(_localctx, 2); - setState(2916); + setState(2933); iC_LambdaParameter(); break; } @@ -18556,7 +18659,7 @@ size_t CypherParser::IC_LambdaParameterContext::getRuleIndex() const { CypherParser::IC_LambdaParameterContext* CypherParser::iC_LambdaParameter() { IC_LambdaParameterContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 338, CypherParser::RuleIC_LambdaParameter); + enterRule(_localctx, 340, CypherParser::RuleIC_LambdaParameter); size_t _la = 0; #if __cplusplus > 201703L @@ -18568,36 +18671,36 @@ CypherParser::IC_LambdaParameterContext* CypherParser::iC_LambdaParameter() { }); try { enterOuterAlt(_localctx, 1); - setState(2919); + setState(2936); iC_LambdaVars(); - setState(2921); + setState(2938); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2920); + setState(2937); match(CypherParser::SP); } - setState(2923); + setState(2940); match(CypherParser::MINUS); - setState(2924); + setState(2941); match(CypherParser::T__14); - setState(2926); + setState(2943); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2925); + setState(2942); match(CypherParser::SP); } - setState(2928); + setState(2945); oC_Expression(); - setState(2930); + setState(2947); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 492, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 496, _ctx)) { case 1: { - setState(2929); + setState(2946); match(CypherParser::SP); break; } @@ -18646,7 +18749,7 @@ size_t CypherParser::IC_LambdaVarsContext::getRuleIndex() const { CypherParser::IC_LambdaVarsContext* CypherParser::iC_LambdaVars() { IC_LambdaVarsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 340, CypherParser::RuleIC_LambdaVars); + enterRule(_localctx, 342, CypherParser::RuleIC_LambdaVars); size_t _la = 0; #if __cplusplus > 201703L @@ -18657,7 +18760,7 @@ CypherParser::IC_LambdaVarsContext* CypherParser::iC_LambdaVars() { exitRule(); }); try { - setState(2956); + setState(2973); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::ADD: @@ -18727,62 +18830,62 @@ CypherParser::IC_LambdaVarsContext* CypherParser::iC_LambdaVars() { case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 1); - setState(2932); + setState(2949); oC_SymbolicName(); break; } case CypherParser::T__1: { enterOuterAlt(_localctx, 2); - setState(2933); + setState(2950); match(CypherParser::T__1); - setState(2935); + setState(2952); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2934); + setState(2951); match(CypherParser::SP); } - setState(2937); + setState(2954); oC_SymbolicName(); - setState(2939); + setState(2956); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2938); + setState(2955); match(CypherParser::SP); } - setState(2951); + setState(2968); _errHandler->sync(this); _la = _input->LA(1); while (_la == CypherParser::T__3) { - setState(2941); + setState(2958); match(CypherParser::T__3); - setState(2943); + setState(2960); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2942); + setState(2959); match(CypherParser::SP); } - setState(2945); + setState(2962); oC_SymbolicName(); - setState(2947); + setState(2964); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2946); + setState(2963); match(CypherParser::SP); } - setState(2953); + setState(2970); _errHandler->sync(this); _la = _input->LA(1); } - setState(2954); + setState(2971); match(CypherParser::T__2); break; } @@ -18835,7 +18938,7 @@ size_t CypherParser::OC_PathPatternsContext::getRuleIndex() const { CypherParser::OC_PathPatternsContext* CypherParser::oC_PathPatterns() { OC_PathPatternsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 342, CypherParser::RuleOC_PathPatterns); + enterRule(_localctx, 344, CypherParser::RuleOC_PathPatterns); size_t _la = 0; #if __cplusplus > 201703L @@ -18848,23 +18951,23 @@ CypherParser::OC_PathPatternsContext* CypherParser::oC_PathPatterns() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(2958); + setState(2975); oC_NodePattern(); - setState(2963); + setState(2980); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(2960); + setState(2977); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2959); + setState(2976); match(CypherParser::SP); } - setState(2962); + setState(2979); oC_PatternElementChain(); break; } @@ -18872,9 +18975,9 @@ CypherParser::OC_PathPatternsContext* CypherParser::oC_PathPatterns() { default: throw NoViableAltException(this); } - setState(2965); + setState(2982); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 500, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 504, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); } @@ -18933,7 +19036,7 @@ size_t CypherParser::OC_ExistCountSubqueryContext::getRuleIndex() const { CypherParser::OC_ExistCountSubqueryContext* CypherParser::oC_ExistCountSubquery() { OC_ExistCountSubqueryContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 344, CypherParser::RuleOC_ExistCountSubquery); + enterRule(_localctx, 346, CypherParser::RuleOC_ExistCountSubquery); size_t _la = 0; #if __cplusplus > 201703L @@ -18945,7 +19048,7 @@ CypherParser::OC_ExistCountSubqueryContext* CypherParser::oC_ExistCountSubquery( }); try { enterOuterAlt(_localctx, 1); - setState(2967); + setState(2984); _la = _input->LA(1); if (!(_la == CypherParser::COUNT @@ -18956,50 +19059,50 @@ CypherParser::OC_ExistCountSubqueryContext* CypherParser::oC_ExistCountSubquery( _errHandler->reportMatch(this); consume(); } - setState(2969); + setState(2986); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2968); + setState(2985); match(CypherParser::SP); } - setState(2971); + setState(2988); match(CypherParser::T__8); - setState(2973); + setState(2990); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2972); + setState(2989); match(CypherParser::SP); } - setState(2975); + setState(2992); match(CypherParser::MATCH); - setState(2977); + setState(2994); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2976); + setState(2993); match(CypherParser::SP); } - setState(2979); + setState(2996); oC_Pattern(); - setState(2984); + setState(3001); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 505, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 509, _ctx)) { case 1: { - setState(2981); + setState(2998); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2980); + setState(2997); match(CypherParser::SP); } - setState(2983); + setState(3000); oC_Where(); break; } @@ -19007,20 +19110,20 @@ CypherParser::OC_ExistCountSubqueryContext* CypherParser::oC_ExistCountSubquery( default: break; } - setState(2990); + setState(3007); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 507, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 511, _ctx)) { case 1: { - setState(2987); + setState(3004); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2986); + setState(3003); match(CypherParser::SP); } - setState(2989); + setState(3006); iC_Hint(); break; } @@ -19028,15 +19131,15 @@ CypherParser::OC_ExistCountSubqueryContext* CypherParser::oC_ExistCountSubquery( default: break; } - setState(2993); + setState(3010); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2992); + setState(3009); match(CypherParser::SP); } - setState(2995); + setState(3012); match(CypherParser::T__9); } @@ -19075,7 +19178,7 @@ size_t CypherParser::OC_PropertyLookupContext::getRuleIndex() const { CypherParser::OC_PropertyLookupContext* CypherParser::oC_PropertyLookup() { OC_PropertyLookupContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 346, CypherParser::RuleOC_PropertyLookup); + enterRule(_localctx, 348, CypherParser::RuleOC_PropertyLookup); size_t _la = 0; #if __cplusplus > 201703L @@ -19087,17 +19190,17 @@ CypherParser::OC_PropertyLookupContext* CypherParser::oC_PropertyLookup() { }); try { enterOuterAlt(_localctx, 1); - setState(2997); + setState(3014); match(CypherParser::T__4); - setState(2999); + setState(3016); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(2998); + setState(3015); match(CypherParser::SP); } - setState(3003); + setState(3020); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::ADD: @@ -19166,13 +19269,13 @@ CypherParser::OC_PropertyLookupContext* CypherParser::oC_PropertyLookup() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(3001); + setState(3018); oC_PropertyKeyName(); break; } case CypherParser::STAR: { - setState(3002); + setState(3019); match(CypherParser::STAR); break; } @@ -19241,7 +19344,7 @@ size_t CypherParser::OC_CaseExpressionContext::getRuleIndex() const { CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { OC_CaseExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 348, CypherParser::RuleOC_CaseExpression); + enterRule(_localctx, 350, CypherParser::RuleOC_CaseExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -19254,27 +19357,27 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { try { size_t alt; enterOuterAlt(_localctx, 1); - setState(3027); + setState(3044); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 516, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 520, _ctx)) { case 1: { - setState(3005); + setState(3022); match(CypherParser::CASE); - setState(3010); + setState(3027); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(3007); + setState(3024); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3006); + setState(3023); match(CypherParser::SP); } - setState(3009); + setState(3026); oC_CaseAlternative(); break; } @@ -19282,41 +19385,41 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: throw NoViableAltException(this); } - setState(3012); + setState(3029); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 512, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 516, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } case 2: { - setState(3014); + setState(3031); match(CypherParser::CASE); - setState(3016); + setState(3033); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3015); + setState(3032); match(CypherParser::SP); } - setState(3018); + setState(3035); oC_Expression(); - setState(3023); + setState(3040); _errHandler->sync(this); alt = 1; do { switch (alt) { case 1: { - setState(3020); + setState(3037); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3019); + setState(3036); match(CypherParser::SP); } - setState(3022); + setState(3039); oC_CaseAlternative(); break; } @@ -19324,9 +19427,9 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: throw NoViableAltException(this); } - setState(3025); + setState(3042); _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 515, _ctx); + alt = getInterpreter()->adaptivePredict(_input, 519, _ctx); } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); break; } @@ -19334,30 +19437,30 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: break; } - setState(3037); + setState(3054); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 519, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 523, _ctx)) { case 1: { - setState(3030); + setState(3047); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3029); + setState(3046); match(CypherParser::SP); } - setState(3032); + setState(3049); match(CypherParser::ELSE); - setState(3034); + setState(3051); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3033); + setState(3050); match(CypherParser::SP); } - setState(3036); + setState(3053); oC_Expression(); break; } @@ -19365,15 +19468,15 @@ CypherParser::OC_CaseExpressionContext* CypherParser::oC_CaseExpression() { default: break; } - setState(3040); + setState(3057); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3039); + setState(3056); match(CypherParser::SP); } - setState(3042); + setState(3059); match(CypherParser::END); } @@ -19424,7 +19527,7 @@ size_t CypherParser::OC_CaseAlternativeContext::getRuleIndex() const { CypherParser::OC_CaseAlternativeContext* CypherParser::oC_CaseAlternative() { OC_CaseAlternativeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 350, CypherParser::RuleOC_CaseAlternative); + enterRule(_localctx, 352, CypherParser::RuleOC_CaseAlternative); size_t _la = 0; #if __cplusplus > 201703L @@ -19436,37 +19539,37 @@ CypherParser::OC_CaseAlternativeContext* CypherParser::oC_CaseAlternative() { }); try { enterOuterAlt(_localctx, 1); - setState(3044); + setState(3061); match(CypherParser::WHEN); - setState(3046); + setState(3063); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3045); + setState(3062); match(CypherParser::SP); } - setState(3048); + setState(3065); oC_Expression(); - setState(3050); + setState(3067); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3049); + setState(3066); match(CypherParser::SP); } - setState(3052); + setState(3069); match(CypherParser::THEN); - setState(3054); + setState(3071); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3053); + setState(3070); match(CypherParser::SP); } - setState(3056); + setState(3073); oC_Expression(); } @@ -19497,7 +19600,7 @@ size_t CypherParser::OC_VariableContext::getRuleIndex() const { CypherParser::OC_VariableContext* CypherParser::oC_Variable() { OC_VariableContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 352, CypherParser::RuleOC_Variable); + enterRule(_localctx, 354, CypherParser::RuleOC_Variable); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -19508,7 +19611,7 @@ CypherParser::OC_VariableContext* CypherParser::oC_Variable() { }); try { enterOuterAlt(_localctx, 1); - setState(3058); + setState(3075); oC_SymbolicName(); } @@ -19543,7 +19646,7 @@ size_t CypherParser::OC_NumberLiteralContext::getRuleIndex() const { CypherParser::OC_NumberLiteralContext* CypherParser::oC_NumberLiteral() { OC_NumberLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 354, CypherParser::RuleOC_NumberLiteral); + enterRule(_localctx, 356, CypherParser::RuleOC_NumberLiteral); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -19553,20 +19656,20 @@ CypherParser::OC_NumberLiteralContext* CypherParser::oC_NumberLiteral() { exitRule(); }); try { - setState(3062); + setState(3079); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::ExponentDecimalReal: case CypherParser::RegularDecimalReal: { enterOuterAlt(_localctx, 1); - setState(3060); + setState(3077); oC_DoubleLiteral(); break; } case CypherParser::DecimalInteger: { enterOuterAlt(_localctx, 2); - setState(3061); + setState(3078); oC_IntegerLiteral(); break; } @@ -19607,7 +19710,7 @@ size_t CypherParser::OC_ParameterContext::getRuleIndex() const { CypherParser::OC_ParameterContext* CypherParser::oC_Parameter() { OC_ParameterContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 356, CypherParser::RuleOC_Parameter); + enterRule(_localctx, 358, CypherParser::RuleOC_Parameter); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -19618,9 +19721,9 @@ CypherParser::OC_ParameterContext* CypherParser::oC_Parameter() { }); try { enterOuterAlt(_localctx, 1); - setState(3064); + setState(3081); match(CypherParser::T__24); - setState(3067); + setState(3084); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::ADD: @@ -19689,13 +19792,13 @@ CypherParser::OC_ParameterContext* CypherParser::oC_Parameter() { case CypherParser::HexLetter: case CypherParser::UnescapedSymbolicName: case CypherParser::EscapedSymbolicName: { - setState(3065); + setState(3082); oC_SymbolicName(); break; } case CypherParser::DecimalInteger: { - setState(3066); + setState(3083); match(CypherParser::DecimalInteger); break; } @@ -19740,7 +19843,7 @@ size_t CypherParser::OC_PropertyExpressionContext::getRuleIndex() const { CypherParser::OC_PropertyExpressionContext* CypherParser::oC_PropertyExpression() { OC_PropertyExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 358, CypherParser::RuleOC_PropertyExpression); + enterRule(_localctx, 360, CypherParser::RuleOC_PropertyExpression); size_t _la = 0; #if __cplusplus > 201703L @@ -19752,17 +19855,17 @@ CypherParser::OC_PropertyExpressionContext* CypherParser::oC_PropertyExpression( }); try { enterOuterAlt(_localctx, 1); - setState(3069); + setState(3086); oC_Atom(); - setState(3071); + setState(3088); _errHandler->sync(this); _la = _input->LA(1); if (_la == CypherParser::SP) { - setState(3070); + setState(3087); match(CypherParser::SP); } - setState(3073); + setState(3090); oC_PropertyLookup(); } @@ -19793,7 +19896,7 @@ size_t CypherParser::OC_PropertyKeyNameContext::getRuleIndex() const { CypherParser::OC_PropertyKeyNameContext* CypherParser::oC_PropertyKeyName() { OC_PropertyKeyNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 360, CypherParser::RuleOC_PropertyKeyName); + enterRule(_localctx, 362, CypherParser::RuleOC_PropertyKeyName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -19804,7 +19907,7 @@ CypherParser::OC_PropertyKeyNameContext* CypherParser::oC_PropertyKeyName() { }); try { enterOuterAlt(_localctx, 1); - setState(3075); + setState(3092); oC_SymbolicName(); } @@ -19835,7 +19938,7 @@ size_t CypherParser::OC_IntegerLiteralContext::getRuleIndex() const { CypherParser::OC_IntegerLiteralContext* CypherParser::oC_IntegerLiteral() { OC_IntegerLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 362, CypherParser::RuleOC_IntegerLiteral); + enterRule(_localctx, 364, CypherParser::RuleOC_IntegerLiteral); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -19846,7 +19949,7 @@ CypherParser::OC_IntegerLiteralContext* CypherParser::oC_IntegerLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(3077); + setState(3094); match(CypherParser::DecimalInteger); } @@ -19881,7 +19984,7 @@ size_t CypherParser::OC_DoubleLiteralContext::getRuleIndex() const { CypherParser::OC_DoubleLiteralContext* CypherParser::oC_DoubleLiteral() { OC_DoubleLiteralContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 364, CypherParser::RuleOC_DoubleLiteral); + enterRule(_localctx, 366, CypherParser::RuleOC_DoubleLiteral); size_t _la = 0; #if __cplusplus > 201703L @@ -19893,7 +19996,7 @@ CypherParser::OC_DoubleLiteralContext* CypherParser::oC_DoubleLiteral() { }); try { enterOuterAlt(_localctx, 1); - setState(3079); + setState(3096); _la = _input->LA(1); if (!(_la == CypherParser::ExponentDecimalReal @@ -19937,7 +20040,7 @@ size_t CypherParser::OC_SchemaNameContext::getRuleIndex() const { CypherParser::OC_SchemaNameContext* CypherParser::oC_SchemaName() { OC_SchemaNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 366, CypherParser::RuleOC_SchemaName); + enterRule(_localctx, 368, CypherParser::RuleOC_SchemaName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -19948,16 +20051,16 @@ CypherParser::OC_SchemaNameContext* CypherParser::oC_SchemaName() { }); try { enterOuterAlt(_localctx, 1); - setState(3081); + setState(3098); oC_SymbolicName(); - setState(3084); + setState(3101); _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 527, _ctx)) { + switch (getInterpreter()->adaptivePredict(_input, 531, _ctx)) { case 1: { - setState(3082); + setState(3099); match(CypherParser::T__4); - setState(3083); + setState(3100); oC_SymbolicName(); break; } @@ -20006,7 +20109,7 @@ size_t CypherParser::OC_SymbolicNameContext::getRuleIndex() const { CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { OC_SymbolicNameContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 368, CypherParser::RuleOC_SymbolicName); + enterRule(_localctx, 370, CypherParser::RuleOC_SymbolicName); #if __cplusplus > 201703L auto onExit = finally([=, this] { @@ -20016,19 +20119,19 @@ CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { exitRule(); }); try { - setState(3091); + setState(3108); _errHandler->sync(this); switch (_input->LA(1)) { case CypherParser::UnescapedSymbolicName: { enterOuterAlt(_localctx, 1); - setState(3086); + setState(3103); match(CypherParser::UnescapedSymbolicName); break; } case CypherParser::EscapedSymbolicName: { enterOuterAlt(_localctx, 2); - setState(3087); + setState(3104); antlrcpp::downCast(_localctx)->escapedsymbolicnameToken = match(CypherParser::EscapedSymbolicName); if ((antlrcpp::downCast(_localctx)->escapedsymbolicnameToken != nullptr ? antlrcpp::downCast(_localctx)->escapedsymbolicnameToken->getText() : "") == "``") { notifyEmptyToken(antlrcpp::downCast(_localctx)->escapedsymbolicnameToken); } break; @@ -20036,7 +20139,7 @@ CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { case CypherParser::HexLetter: { enterOuterAlt(_localctx, 3); - setState(3089); + setState(3106); match(CypherParser::HexLetter); break; } @@ -20105,7 +20208,7 @@ CypherParser::OC_SymbolicNameContext* CypherParser::oC_SymbolicName() { case CypherParser::DECIMAL: case CypherParser::L_SKIP: { enterOuterAlt(_localctx, 4); - setState(3090); + setState(3107); iC_NonReservedKeywords(); break; } @@ -20390,7 +20493,7 @@ size_t CypherParser::IC_NonReservedKeywordsContext::getRuleIndex() const { CypherParser::IC_NonReservedKeywordsContext* CypherParser::iC_NonReservedKeywords() { IC_NonReservedKeywordsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 370, CypherParser::RuleIC_NonReservedKeywords); + enterRule(_localctx, 372, CypherParser::RuleIC_NonReservedKeywords); size_t _la = 0; #if __cplusplus > 201703L @@ -20402,7 +20505,7 @@ CypherParser::IC_NonReservedKeywordsContext* CypherParser::iC_NonReservedKeyword }); try { enterOuterAlt(_localctx, 1); - setState(3093); + setState(3110); _la = _input->LA(1); if (!(((((_la - 47) & ~ 0x3fULL) == 0) && ((1ULL << (_la - 47)) & -2402064702202228947) != 0) || ((((_la - 111) & ~ 0x3fULL) == 0) && @@ -20438,7 +20541,7 @@ size_t CypherParser::OC_LeftArrowHeadContext::getRuleIndex() const { CypherParser::OC_LeftArrowHeadContext* CypherParser::oC_LeftArrowHead() { OC_LeftArrowHeadContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 372, CypherParser::RuleOC_LeftArrowHead); + enterRule(_localctx, 374, CypherParser::RuleOC_LeftArrowHead); size_t _la = 0; #if __cplusplus > 201703L @@ -20450,7 +20553,7 @@ CypherParser::OC_LeftArrowHeadContext* CypherParser::oC_LeftArrowHead() { }); try { enterOuterAlt(_localctx, 1); - setState(3095); + setState(3112); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 1006641152) != 0))) { @@ -20485,7 +20588,7 @@ size_t CypherParser::OC_RightArrowHeadContext::getRuleIndex() const { CypherParser::OC_RightArrowHeadContext* CypherParser::oC_RightArrowHead() { OC_RightArrowHeadContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 374, CypherParser::RuleOC_RightArrowHead); + enterRule(_localctx, 376, CypherParser::RuleOC_RightArrowHead); size_t _la = 0; #if __cplusplus > 201703L @@ -20497,7 +20600,7 @@ CypherParser::OC_RightArrowHeadContext* CypherParser::oC_RightArrowHead() { }); try { enterOuterAlt(_localctx, 1); - setState(3097); + setState(3114); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 16106160128) != 0))) { @@ -20536,7 +20639,7 @@ size_t CypherParser::OC_DashContext::getRuleIndex() const { CypherParser::OC_DashContext* CypherParser::oC_Dash() { OC_DashContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 376, CypherParser::RuleOC_Dash); + enterRule(_localctx, 378, CypherParser::RuleOC_Dash); size_t _la = 0; #if __cplusplus > 201703L @@ -20548,7 +20651,7 @@ CypherParser::OC_DashContext* CypherParser::oC_Dash() { }); try { enterOuterAlt(_localctx, 1); - setState(3099); + setState(3116); _la = _input->LA(1); if (!((((_la & ~ 0x3fULL) == 0) && ((1ULL << _la) & 35167192219648) != 0) || _la == CypherParser::MINUS)) { @@ -20571,8 +20674,8 @@ CypherParser::OC_DashContext* CypherParser::oC_Dash() { bool CypherParser::sempred(RuleContext *context, size_t ruleIndex, size_t predicateIndex) { switch (ruleIndex) { - case 67: return iC_DataTypeSempred(antlrcpp::downCast(context), predicateIndex); - case 94: return iC_JoinNodeSempred(antlrcpp::downCast(context), predicateIndex); + case 68: return iC_DataTypeSempred(antlrcpp::downCast(context), predicateIndex); + case 95: return iC_JoinNodeSempred(antlrcpp::downCast(context), predicateIndex); default: break; diff --git a/third_party/antlr4_cypher/include/cypher_parser.h b/third_party/antlr4_cypher/include/cypher_parser.h index 2e1639a04..5c03d5e60 100644 --- a/third_party/antlr4_cypher/include/cypher_parser.h +++ b/third_party/antlr4_cypher/include/cypher_parser.h @@ -53,68 +53,68 @@ class CypherParser : public antlr4::Parser { RuleIC_Statements = 0, RuleOC_Cypher = 1, RuleOC_Statement = 2, RuleIC_CopyFrom = 3, RuleIC_ColumnNames = 4, RuleIC_ScanSource = 5, RuleIC_CopyFromByColumn = 6, RuleIC_CopyTO = 7, RuleIC_ExportDatabase = 8, RuleIC_ImportDatabase = 9, - RuleIC_AttachDatabase = 10, RuleIC_Option = 11, RuleIC_Options = 12, - RuleIC_DetachDatabase = 13, RuleIC_UseDatabase = 14, RuleIC_CreateGraph = 15, - RuleIC_UseGraph = 16, RuleIC_Analyze = 17, RuleIC_StandaloneCall = 18, - RuleIC_CommentOn = 19, RuleIC_CreateMacro = 20, RuleIC_PositionalArgs = 21, - RuleIC_DefaultArg = 22, RuleIC_FilePaths = 23, RuleIC_IfNotExists = 24, - RuleIC_CreateNodeTable = 25, RuleIC_CreateRelTable = 26, RuleIC_CreateIndex = 27, - RuleIC_IndexPattern = 28, RuleIC_IndexNodePattern = 29, RuleIC_IndexRelationshipPattern = 30, - RuleIC_IndexPropertyPattern = 31, RuleIC_CreateFromToConnections = 32, - RuleIC_CreateFromToConnection = 33, RuleIC_FromToConnections = 34, RuleIC_FromToConnection = 35, - RuleIC_CreateSequence = 36, RuleIC_CreateType = 37, RuleIC_SequenceOptions = 38, - RuleIC_WithPasswd = 39, RuleIC_CreateUser = 40, RuleIC_CreateRole = 41, - RuleIC_IncrementBy = 42, RuleIC_MinValue = 43, RuleIC_MaxValue = 44, - RuleIC_StartWith = 45, RuleIC_Cycle = 46, RuleIC_IfExists = 47, RuleIC_Drop = 48, - RuleIC_AlterTable = 49, RuleIC_AlterOptions = 50, RuleIC_AddProperty = 51, - RuleIC_Default = 52, RuleIC_DropProperty = 53, RuleIC_RenameTable = 54, - RuleIC_RenameProperty = 55, RuleIC_AddFromToConnection = 56, RuleIC_DropFromToConnection = 57, - RuleIC_ColumnDefinitions = 58, RuleIC_ColumnDefinition = 59, RuleIC_PropertyDefinitions = 60, - RuleIC_PropertyDefinition = 61, RuleIC_CreateNodeConstraint = 62, RuleIC_UnionType = 63, - RuleIC_StructType = 64, RuleIC_MapType = 65, RuleIC_DecimalType = 66, - RuleIC_DataType = 67, RuleIC_ListIdentifiers = 68, RuleIC_ListIdentifier = 69, - RuleOC_AnyCypherOption = 70, RuleOC_Explain = 71, RuleOC_Profile = 72, - RuleIC_Transaction = 73, RuleIC_Extension = 74, RuleIC_LoadExtension = 75, - RuleIC_InstallExtension = 76, RuleIC_UninstallExtension = 77, RuleIC_UpdateExtension = 78, - RuleOC_Query = 79, RuleOC_RegularQuery = 80, RuleOC_Union = 81, RuleOC_SingleQuery = 82, - RuleOC_SinglePartQuery = 83, RuleOC_MultiPartQuery = 84, RuleIC_QueryPart = 85, - RuleOC_UpdatingClause = 86, RuleOC_ReadingClause = 87, RuleIC_LoadFrom = 88, - RuleOC_YieldItem = 89, RuleOC_YieldItems = 90, RuleIC_InQueryCall = 91, - RuleOC_Match = 92, RuleIC_Hint = 93, RuleIC_JoinNode = 94, RuleOC_Unwind = 95, - RuleOC_Create = 96, RuleOC_Merge = 97, RuleOC_MergeAction = 98, RuleOC_Set = 99, - RuleOC_SetItem = 100, RuleOC_Delete = 101, RuleOC_With = 102, RuleOC_Return = 103, - RuleOC_ProjectionBody = 104, RuleOC_ProjectionItems = 105, RuleOC_ProjectionItem = 106, - RuleOC_Order = 107, RuleOC_Skip = 108, RuleOC_Limit = 109, RuleOC_SortItem = 110, - RuleOC_Where = 111, RuleOC_Pattern = 112, RuleOC_PatternPart = 113, - RuleOC_AnonymousPatternPart = 114, RuleOC_PatternElement = 115, RuleOC_NodePattern = 116, - RuleOC_PatternElementChain = 117, RuleOC_RelationshipPattern = 118, - RuleOC_RelationshipDetail = 119, RuleIC_Properties = 120, RuleOC_RelationshipTypes = 121, - RuleOC_NodeLabels = 122, RuleIC_RecursiveDetail = 123, RuleIC_RecursiveType = 124, - RuleOC_RangeLiteral = 125, RuleIC_RecursiveComprehension = 126, RuleIC_RecursiveProjectionItems = 127, - RuleOC_LowerBound = 128, RuleOC_UpperBound = 129, RuleOC_LabelName = 130, - RuleOC_RelTypeName = 131, RuleOC_Expression = 132, RuleOC_OrExpression = 133, - RuleOC_XorExpression = 134, RuleOC_AndExpression = 135, RuleOC_NotExpression = 136, - RuleOC_ComparisonExpression = 137, RuleIC_ComparisonOperator = 138, - RuleIC_BitwiseOrOperatorExpression = 139, RuleIC_BitwiseAndOperatorExpression = 140, - RuleIC_BitShiftOperatorExpression = 141, RuleIC_BitShiftOperator = 142, - RuleOC_AddOrSubtractExpression = 143, RuleIC_AddOrSubtractOperator = 144, - RuleOC_MultiplyDivideModuloExpression = 145, RuleIC_MultiplyDivideModuloOperator = 146, - RuleOC_PowerOfExpression = 147, RuleOC_StringListNullOperatorExpression = 148, - RuleOC_ListOperatorExpression = 149, RuleOC_StringOperatorExpression = 150, - RuleOC_RegularExpression = 151, RuleOC_NullOperatorExpression = 152, - RuleOC_UnaryAddSubtractOrFactorialExpression = 153, RuleOC_PropertyOrLabelsExpression = 154, - RuleOC_Atom = 155, RuleOC_Quantifier = 156, RuleOC_FilterExpression = 157, - RuleOC_IdInColl = 158, RuleOC_Literal = 159, RuleOC_BooleanLiteral = 160, - RuleOC_ListLiteral = 161, RuleIC_ListEntry = 162, RuleIC_StructLiteral = 163, - RuleIC_StructField = 164, RuleOC_ParenthesizedExpression = 165, RuleOC_FunctionInvocation = 166, - RuleOC_FunctionName = 167, RuleIC_FunctionParameter = 168, RuleIC_LambdaParameter = 169, - RuleIC_LambdaVars = 170, RuleOC_PathPatterns = 171, RuleOC_ExistCountSubquery = 172, - RuleOC_PropertyLookup = 173, RuleOC_CaseExpression = 174, RuleOC_CaseAlternative = 175, - RuleOC_Variable = 176, RuleOC_NumberLiteral = 177, RuleOC_Parameter = 178, - RuleOC_PropertyExpression = 179, RuleOC_PropertyKeyName = 180, RuleOC_IntegerLiteral = 181, - RuleOC_DoubleLiteral = 182, RuleOC_SchemaName = 183, RuleOC_SymbolicName = 184, - RuleIC_NonReservedKeywords = 185, RuleOC_LeftArrowHead = 186, RuleOC_RightArrowHead = 187, - RuleOC_Dash = 188 + RuleIC_AttachDatabase = 10, RuleIC_Option = 11, RuleIC_OptionQualifier = 12, + RuleIC_Options = 13, RuleIC_DetachDatabase = 14, RuleIC_UseDatabase = 15, + RuleIC_CreateGraph = 16, RuleIC_UseGraph = 17, RuleIC_Analyze = 18, + RuleIC_StandaloneCall = 19, RuleIC_CommentOn = 20, RuleIC_CreateMacro = 21, + RuleIC_PositionalArgs = 22, RuleIC_DefaultArg = 23, RuleIC_FilePaths = 24, + RuleIC_IfNotExists = 25, RuleIC_CreateNodeTable = 26, RuleIC_CreateRelTable = 27, + RuleIC_CreateIndex = 28, RuleIC_IndexPattern = 29, RuleIC_IndexNodePattern = 30, + RuleIC_IndexRelationshipPattern = 31, RuleIC_IndexPropertyPattern = 32, + RuleIC_CreateFromToConnections = 33, RuleIC_CreateFromToConnection = 34, + RuleIC_FromToConnections = 35, RuleIC_FromToConnection = 36, RuleIC_CreateSequence = 37, + RuleIC_CreateType = 38, RuleIC_SequenceOptions = 39, RuleIC_WithPasswd = 40, + RuleIC_CreateUser = 41, RuleIC_CreateRole = 42, RuleIC_IncrementBy = 43, + RuleIC_MinValue = 44, RuleIC_MaxValue = 45, RuleIC_StartWith = 46, RuleIC_Cycle = 47, + RuleIC_IfExists = 48, RuleIC_Drop = 49, RuleIC_AlterTable = 50, RuleIC_AlterOptions = 51, + RuleIC_AddProperty = 52, RuleIC_Default = 53, RuleIC_DropProperty = 54, + RuleIC_RenameTable = 55, RuleIC_RenameProperty = 56, RuleIC_AddFromToConnection = 57, + RuleIC_DropFromToConnection = 58, RuleIC_ColumnDefinitions = 59, RuleIC_ColumnDefinition = 60, + RuleIC_PropertyDefinitions = 61, RuleIC_PropertyDefinition = 62, RuleIC_CreateNodeConstraint = 63, + RuleIC_UnionType = 64, RuleIC_StructType = 65, RuleIC_MapType = 66, + RuleIC_DecimalType = 67, RuleIC_DataType = 68, RuleIC_ListIdentifiers = 69, + RuleIC_ListIdentifier = 70, RuleOC_AnyCypherOption = 71, RuleOC_Explain = 72, + RuleOC_Profile = 73, RuleIC_Transaction = 74, RuleIC_Extension = 75, + RuleIC_LoadExtension = 76, RuleIC_InstallExtension = 77, RuleIC_UninstallExtension = 78, + RuleIC_UpdateExtension = 79, RuleOC_Query = 80, RuleOC_RegularQuery = 81, + RuleOC_Union = 82, RuleOC_SingleQuery = 83, RuleOC_SinglePartQuery = 84, + RuleOC_MultiPartQuery = 85, RuleIC_QueryPart = 86, RuleOC_UpdatingClause = 87, + RuleOC_ReadingClause = 88, RuleIC_LoadFrom = 89, RuleOC_YieldItem = 90, + RuleOC_YieldItems = 91, RuleIC_InQueryCall = 92, RuleOC_Match = 93, + RuleIC_Hint = 94, RuleIC_JoinNode = 95, RuleOC_Unwind = 96, RuleOC_Create = 97, + RuleOC_Merge = 98, RuleOC_MergeAction = 99, RuleOC_Set = 100, RuleOC_SetItem = 101, + RuleOC_Delete = 102, RuleOC_With = 103, RuleOC_Return = 104, RuleOC_ProjectionBody = 105, + RuleOC_ProjectionItems = 106, RuleOC_ProjectionItem = 107, RuleOC_Order = 108, + RuleOC_Skip = 109, RuleOC_Limit = 110, RuleOC_SortItem = 111, RuleOC_Where = 112, + RuleOC_Pattern = 113, RuleOC_PatternPart = 114, RuleOC_AnonymousPatternPart = 115, + RuleOC_PatternElement = 116, RuleOC_NodePattern = 117, RuleOC_PatternElementChain = 118, + RuleOC_RelationshipPattern = 119, RuleOC_RelationshipDetail = 120, RuleIC_Properties = 121, + RuleOC_RelationshipTypes = 122, RuleOC_NodeLabels = 123, RuleIC_RecursiveDetail = 124, + RuleIC_RecursiveType = 125, RuleOC_RangeLiteral = 126, RuleIC_RecursiveComprehension = 127, + RuleIC_RecursiveProjectionItems = 128, RuleOC_LowerBound = 129, RuleOC_UpperBound = 130, + RuleOC_LabelName = 131, RuleOC_RelTypeName = 132, RuleOC_Expression = 133, + RuleOC_OrExpression = 134, RuleOC_XorExpression = 135, RuleOC_AndExpression = 136, + RuleOC_NotExpression = 137, RuleOC_ComparisonExpression = 138, RuleIC_ComparisonOperator = 139, + RuleIC_BitwiseOrOperatorExpression = 140, RuleIC_BitwiseAndOperatorExpression = 141, + RuleIC_BitShiftOperatorExpression = 142, RuleIC_BitShiftOperator = 143, + RuleOC_AddOrSubtractExpression = 144, RuleIC_AddOrSubtractOperator = 145, + RuleOC_MultiplyDivideModuloExpression = 146, RuleIC_MultiplyDivideModuloOperator = 147, + RuleOC_PowerOfExpression = 148, RuleOC_StringListNullOperatorExpression = 149, + RuleOC_ListOperatorExpression = 150, RuleOC_StringOperatorExpression = 151, + RuleOC_RegularExpression = 152, RuleOC_NullOperatorExpression = 153, + RuleOC_UnaryAddSubtractOrFactorialExpression = 154, RuleOC_PropertyOrLabelsExpression = 155, + RuleOC_Atom = 156, RuleOC_Quantifier = 157, RuleOC_FilterExpression = 158, + RuleOC_IdInColl = 159, RuleOC_Literal = 160, RuleOC_BooleanLiteral = 161, + RuleOC_ListLiteral = 162, RuleIC_ListEntry = 163, RuleIC_StructLiteral = 164, + RuleIC_StructField = 165, RuleOC_ParenthesizedExpression = 166, RuleOC_FunctionInvocation = 167, + RuleOC_FunctionName = 168, RuleIC_FunctionParameter = 169, RuleIC_LambdaParameter = 170, + RuleIC_LambdaVars = 171, RuleOC_PathPatterns = 172, RuleOC_ExistCountSubquery = 173, + RuleOC_PropertyLookup = 174, RuleOC_CaseExpression = 175, RuleOC_CaseAlternative = 176, + RuleOC_Variable = 177, RuleOC_NumberLiteral = 178, RuleOC_Parameter = 179, + RuleOC_PropertyExpression = 180, RuleOC_PropertyKeyName = 181, RuleOC_IntegerLiteral = 182, + RuleOC_DoubleLiteral = 183, RuleOC_SchemaName = 184, RuleOC_SymbolicName = 185, + RuleIC_NonReservedKeywords = 186, RuleOC_LeftArrowHead = 187, RuleOC_RightArrowHead = 188, + RuleOC_Dash = 189 }; explicit CypherParser(antlr4::TokenStream *input); @@ -146,6 +146,7 @@ class CypherParser : public antlr4::Parser { class IC_ImportDatabaseContext; class IC_AttachDatabaseContext; class IC_OptionContext; + class IC_OptionQualifierContext; class IC_OptionsContext; class IC_DetachDatabaseContext; class IC_UseDatabaseContext; @@ -531,6 +532,7 @@ class CypherParser : public antlr4::Parser { virtual size_t getRuleIndex() const override; OC_SymbolicNameContext *oC_SymbolicName(); OC_LiteralContext *oC_Literal(); + IC_OptionQualifierContext *iC_OptionQualifier(); std::vector SP(); antlr4::tree::TerminalNode* SP(size_t i); @@ -539,6 +541,19 @@ class CypherParser : public antlr4::Parser { IC_OptionContext* iC_Option(); + class IC_OptionQualifierContext : public antlr4::ParserRuleContext { + public: + IC_OptionQualifierContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + OC_SymbolicNameContext *oC_SymbolicName(); + std::vector SP(); + antlr4::tree::TerminalNode* SP(size_t i); + + + }; + + IC_OptionQualifierContext* iC_OptionQualifier(); + class IC_OptionsContext : public antlr4::ParserRuleContext { public: IC_OptionsContext(antlr4::ParserRuleContext *parent, size_t invokingState);